A simple webapp to manage cronjobs
.github/issue_template | ||
assets | ||
bin | ||
config | ||
migrations | ||
public | ||
src | ||
templates | ||
translations | ||
.env.sample | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
install.sh | ||
LICENSE.md | ||
package-lock.json | ||
package.json | ||
README.md | ||
symfony.lock | ||
webpack.config.js |
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.
Known bugs
- Datepicker (Tempus dominus v6) is currently alpha-quality software. Altough the dev states it is usable
Deploying
Requirements for web-server
- php <= 8.0
- ext-openssl
- ext-pcntl (highly recommended)
- MySQL/MariaDB
- Ability to change the webroot directory
- Ability to run a script as daemon (eg. supervisor or systemd units)
Requirements for build-server
- php <= 8.0 (incl composer <= 2)
- NodeJS <= 14.0 (incl. npm <= 7)
Building
Please run following command on the build server
$ composer install --no-dev --optimize-autoloader
$ npm install
$ npx build prod
$ rm -rf node_modules # Node modules are only required for building
Configuration
All configuration can be found in .env.sample. Please copy this to file to .env and change its values
Installation
First follow the build and configuration instructions. If you don't follow them correctly Webcron Management won't work correctly
- Create your database and import the storage/database.sql file into the database
- Create a first user by inserting a first record to the users table (Password is hashed using the HASHING_METHOD in your .env)
- Set up your webhosting to use the
/public
directory as web root - Upload the repository to the webserver
- 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
The webcron interface should now work as expected.
Common pitfalls
Cronjobs are not running
Did you edit the crontab?
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