A simple webapp to manage cronjobs
Go to file
Jeroen De Meerleer 9977a93874
Refactor JobRepository to decrypt secret values in commands
This commit modifies the JobRepository class to decrypt secret values in commands. It replaces placeholders with decrypted values using the Secret::decrypt() function. This change ensures that sensitive information is not exposed in plain text within the commands.
2023-07-09 00:44:21 +02:00
.github/issue_template ENHANCEMENT: created issue_templates 2022-06-24 14:20:03 +02:00
assets BUGFIX: scheduling multiple jobs after each other with the same time did not schedule correct 2023-05-22 11:46:40 +02:00
bin ENHANCEMENT: using symfony framework 2022-04-27 17:19:54 +02:00
config Update framework to version 6.3 2023-06-27 14:40:24 +02:00
migrations NEW FEATURE: added webhooks 2023-01-16 12:45:27 +01:00
public ENHANCEMENT: using symfony framework 2022-04-27 17:19:54 +02:00
src Refactor JobRepository to decrypt secret values in commands 2023-07-09 00:44:21 +02:00
templates Update framework to version 6.3 2023-06-27 14:40:24 +02:00
translations ENHANCEMENT: added visualisation of triggered run 2023-01-17 14:10:17 +01:00
.env.sample ENHANCEMENT: added demo mode 2022-07-01 12:00:36 +02:00
.gitignore Returning to webpack 2022-08-23 13:28:30 +02:00
CHANGELOG.md Added timed scheduled runs 2023-01-10 17:21:49 +01:00
LICENSE.md First implementation of the framework 2021-04-06 19:33:26 +02:00
README.md Updated readme 2022-09-07 12:09:49 +02:00
composer.json Update framework to version 6.3 2023-06-27 14:40:24 +02:00
composer.lock Update framework to version 6.3 2023-06-27 14:40:24 +02:00
install.sh UPDATED README 2022-09-05 16:13:31 +02:00
package-lock.json Updated dependencies 2023-05-22 11:46:49 +02:00
package.json Update framework to version 6.3 2023-06-27 14:40:24 +02:00
symfony.lock Update framework to version 6.3 2023-06-27 14:40:24 +02:00
version Added timed scheduled runs 2023-01-10 17:21:49 +01:00
webpack.config.js Update framework to version 6.3 2023-06-27 14:40:24 +02:00

README.md

Webcron Management

(c) 2017-2018, 2021- Jeroen De Meerleer me@jeroened.be

Webcron management is an easy-to-use interface to manage cronjobs running on a publicly available http-location.

Building

Requirements for build-server

  • php <= 8.1 (incl composer <= 2, ext-pcntl, ext-openssl, ext-intl)
  • NodeJS <= 16.0 (incl. npm <= 8)

Building

Please run following command on the build server

$ composer install --no-dev --optimize-autoloader
$ npm install
$ npm run build
$ rm -rf node_modules # Node modules are only required for building

Installation

Requirements

  • php <= 8.1
    • ext-openssl
    • ext-intl
    • ext-pcntl (highly recommended)
  • MariaDB
  • SSH-access to the server
  • Ability to change the webroot directory
  • Ability to run a script as daemon (eg. supervisor or systemd units)

Installation

  1. Create a build yourself or download the build from the releases page

  2. Upload the build to the webserver.

  3. Set up your webhosting to use the /public directory as web root

  4. Create the .env file by copying .env.sample to .env and change the values

  5. Run php bin/console doctrine:migrations:migrate to create or migrate the database

  6. Create a first user by running php bin/console webcron:user add

  7. Set up the daemon script using systemd, supervisord or similar system

    If this is not possible running the daemon using a cronjob is still possible using below gist (Not recommended)

0 * * * * cd /path/to/webcron/ && php webcron daemon --time-limit=3600 > /dev/null 1&>2

Upgrading

Requirements

Same requirements and deploying

Procedure

  1. Remove all files except .env from the webserver
  2. Upload the new build to the webserver
  3. Run php bin/console doctrine:migrations:migrate to migrate the database

Common pitfalls

I can't do an automatic system upgrade!

Doing a system upgrade requires sudo which has a certain number security measurements. To enable running anything with sudo (eg. sudo apt dist-upgrade -y) the user needs to be able to run sudo without tty and password.

TL;DR