Giter Club home page Giter Club logo

soulteary / docker-cronicle Goto Github PK

View Code? Open in Web Editor NEW
160.0 4.0 26.0 3.38 MB

Best Cron Docker Self-Hosted, Simple, lightweight, beautiful webui Cronjob / Scheduled task docker solution.

Home Page: https://soulteary.com/2022/11/17/use-docker-and-traefik-to-build-a-lightweight-and-beautiful-scheduled-task-tool.html

License: MIT License

Dockerfile 31.13% JavaScript 68.87%
docker cron cronicle cronjob cronjob-scheduler scheduler scheduler-job traefik schedule

docker-cronicle's Introduction

Docker Cronicle

Docker Build Docker Image

ENGLISH | 中文文档

Simple and lightweight Cronicle Docker solution, support x86, ARM64, ARMv7.

Main Screenshot

Say goodbye to troublesome configuration and installation, and start your Scheduled Task Center with One-Click.

Get Latest Docker Images

# use the latest version on DockerHub
docker pull soulteary/cronicle
# or specified version
docker pull soulteary/cronicle:0.9.46
# Use GHCR mirror instead
docker pull ghcr.io/soulteary/cronicle:latest

Supported Versions

DockerHub: https://hub.docker.com/r/soulteary/cronicle

Default Account

default account and password:

  • username: admin
  • password: admin

Docker

It is very simple to use, only one command is needed:

you can start a container that persists data and log files locally through Docker.

docker run \
        -v /etc/localtime:/etc/localtime:ro \
        -v /etc/timezone:/etc/timezone:ro \
        -v `pwd`/data/data:/opt/cronicle/data:rw \
        -v `pwd`/data/logs:/opt/cronicle/logs:rw \
        -v `pwd`/data/plugins:/opt/cronicle/plugins:rw \
        -p 3012:3012 \
        --hostname cronicle \
        --name cronicle \
        soulteary/cronicle

When the service is started, we can access the service in the browser: http://localhost:3012

Docker Compose

Using compose to start our service also requires only one command:

docker-compose down && docker-compose up -d

When the service is started, we can access the service in the browser: http://localhost:3012

With Traefik

You can refer to the configuration in docker-compose.traefik.yml file.

Snapshots

Home

Home Tab Screenshot

Schedule

Schedule Screenshot

Event

Edit Event Screenshot

Event Timing Screenshot

Resource Limits Screenshot

Event History Screenshot

Event Stats Screenshot

Graphs Screenshot

Completed Jobs Screenshot

Job In Progress Screenshot

Job Success Screenshot

Job Failed Screenshot

My Account Screenshot

Activity Log Screenshot

API Keys Screenshot

Editing API Key Screenshot

Categories Screenshot

Edit Category Screenshot

Plugins Screenshot

docker-cronicle's People

Contributors

soulteary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

docker-cronicle's Issues

Persistent Server Issue

I seem to be having an issue where everytime restart the container all the servers seem to dissapear except for the main server.

i have my volumes setup as below. I can see json populating the server data but then after i restart it reverts. Any ideas?

  - /mnt/docker-share/cronicle/data:/opt/cronicle/data:rw
  - /mnt/docker-share/cronicle/logs:/opt/cronicle/logs:rw
  - /mnt/docker-share/cronicle/plugins:/opt/cronicle/plugins:rw
  - /mnt/docker-share/cronicle/conf/config.json:/opt/cronicle/conf/config.json:rw

有arm64的版本吗

docker run
-v /etc/localtime:/etc/localtime:ro
-v /etc/timezone:/etc/timezone:ro
-v pwd/media/docker/cronicle/data:/opt/cronicle/data:rw
-v pwd/media/docker/cronicle/logs:/opt/cronicle/logs:rw
-v pwd/media/docker/cronicle/plugins:/opt/cronicle/plugins:rw
-p 3012:3012
--hostname cronicle
--name cronicle
soulteary/cronicle:arm64

哪里写错了吗 下载不了

It doesn't show cron jobs already created

I installed cronicle as a docker container via the yml file

The problem is that the webGUi doesn't show cron jobs I had already created before installing cronicle.

Can it be fixed somehow?

Thanks

ARM version

Hi!

Thank you for your work. The container is running great for me. I've found that arm version of the container can be built without any changes in the Dockerfile, so can I ask you to push arm container to a docker hub?

Workers support

Hi! Thanks for your work on this, looks great, especially having ARM support!

Motivation

I would like to run a single primary with multiple workers. I don't want the workers to be able to configure new jobs on other servers, edit existing configurations or add new servers. Cronicle itself supports this, but it seems like this project does not.

This is somewhat related to this issue.

Description

If you see this page on the cronicle docs, it says bin/control.sh setup should not be run on worker nodes.

It is running that in the Dockerfile for this project. Unfortunately it isn't as simple as just creating a separate Dockerfile (or build stage) for this as the command run at start (entrypoint) seems to be specific for the master node as well.

Job failed with error: Script failed: No such file or directory

I am trying my hand at running your image and my first test when using the shell script plugin was to run a simple ping 5x and it works.

Now I am trying to run a slightly more complex script and it fails with this error:

# Job failed with error: Script failed: No such file or directory (spawn /tmp/cronicle-script-temp-jlgi3hay503.sh ENOENT)
# 1 retries remain (1 min delay)

All I can find when googling that is this, but I am not sure how to fix it or if it is my script at fault:
jhuckaby/Cronicle#587
jhuckaby/Cronicle#133

They are talking about the /tmp folder possibly being protected from code being executed, but then why would the first test wit ha simple ping work?

Working example:
image

Problematic example:

#!/bin/bash
if curl -I "https://sub1.domain.tld/login.html" 2>&1 | grep -w "200\|301" ; then
   curl "https://sub1.domain.tld/login.html" -s -o /dev/null -w "%{time_total}" | xargs -I [] curl -k -s "https://sub2.domain.tld/api/push/secret?msg=OK&ping=[]"
else
   curl -k -s "https://sub2.domain.tld/api/push/secret?status=down"
fi

I'd appreciate any pointers.

Add python and docker to the dockerfile

I run cronicle on my NAS. I would like to run python scripts and access docker (e.g. by mounting the docker socket into the container in docker-compose).

Would it be possible to install python and docker (client) into the container?

If not: do you have an alternative to make runtime environments available in cronicle? Adding a new volume and installing it there and add it to the PATH in each script?

How to Modify Configuration Settings in Docker Container

Hello,
I'm trying to modify the /opt/cronicle/conf/config.json file in a Docker container .
I'm using volumes, but I'm encountering an error. Is there an alternative method to make these modifications without entering the container and manually editing the file?
thanks you!!

Cronicle always session expired.

I download your code and run docker compose.
But when I change password it log me out of app and say "Your session has expired. Please log in again."
Now I can't change password and also Admin menu, Completed menu
Please advise.

Issue with Live Job Event Log

I used the Traefik example and am having issues with the Live Job Event Log.

I get the following when running a job:

Log Watcher: Connecting to server: https://cronicle.example.org:3013... Log Watcher: Server Connect Error: Error: websocket error (https://cronicle.example.org:3013)

My compose env section is as follows:
TZ: Europe/Dublin HOSTNAME: cronicle.example.org CRONICLE_foreground: 1 CRONICLE_echo: 1 CRONICLE_base_app_url: http://cronicle.example.org:3012 CRONICLE_web_socket_use_hostnames: 1 CRONICLE_server_comm_use_hostnames: 1 CRONICLE_WebServer__http_port: 3012 CRONICLE_WebServer__http_bind_address: 0.0.0.0 CRONICLE_WebServer__https: 0 CRONICLE_web_direct_connect: 0

My treafik config doesn't have a http section in it as I use https for everything, Is there a way to get it to run in HTTPS while using HTTP to connect to itself to display the Live Job Event Log?

Cant add server

Im using it on ubuntu env with caprover(docker swarm)

inspecting the docker network:

"7475eecaa9a5d38ae696b42098261db3d21fc7d1336c7c349957c32efcee20d6": {
"Name": "srv-captain--scheduler.1.5p5wugyf59ia1a7e0nli7ghk5",
"EndpointID": "ed511598e423ab46d998f04587116096aebc120e421722d3a66303027d0c5153",
"MacAddress": "02:42:0a:00:01:06",
"IPv4Address": "10.0.1.6/24",
"IPv6Address": ""
},
"9b43ba8864ea0a2a1f933cb0e32f12063edf095a9ad765430513775512060397": {
"Name": "srv-captain--postgres-app.1.nvgmjbh8bijry2ak8vj8qz4rn",
"EndpointID": "949f3d762f880d6b31e3d3c27eeaef7d2ce4488581f546299093f66da629053c",
"MacAddress": "02:42:0a:00:01:40",
"IPv4Address": "10.0.1.64/24",
"IPv6Address": ""
},

when i ping from the container bash Ip its OK. When I try nslookup its ok(but i need to add the deployment number which is not ok)
when i try to add the server via UI using IP/dns it says cant connect.

issue when change storage to S3

Hi!

Thanks for you docker image!

meet one issue when change storage to S3.

/opt/cronicle/node_modules/pixl-server-storage/engines/S3.js:294
                this.s3.send( new S3.GetObjectCommand(params) )
                        ^

TypeError: Cannot read properties of undefined (reading 'send')
    at constructor.get (/opt/cronicle/node_modules/pixl-server-storage/engines/S3.js:294:11)
    at __construct.get (/opt/cronicle/node_modules/pixl-server-storage/storage.js:359:15)
    at /opt/cronicle/bin/docker-entrypoint.js:44:15
    at constructor.shutdown (/opt/cronicle/node_modules/pixl-server-storage/engines/S3.js:486:3)
    at /opt/cronicle/node_modules/pixl-server-storage/storage.js:1054:34
    at __construct.waitForAllLocks (/opt/cronicle/node_modules/pixl-server-storage/storage.js:927:8)
    at /opt/cronicle/node_modules/pixl-server-storage/storage.js:1051:9
    at __construct.waitForQueueDrain (/opt/cronicle/node_modules/pixl-server-storage/storage.js:898:26)
    at __construct.shutdown (/opt/cronicle/node_modules/pixl-server-storage/storage.js:1048:8)
    at /opt/cronicle/bin/docker-entrypoint.js:42:13

Node.js v18.12.1


Tutorials, best practices, for lazy person like me

The number of projects being downloaded and used is increasing, perhaps because there are more and more lazy people like me. hhh

Some simple questions often arise in this project, including:

  • How to use common tools or best usage practices in the project.
  • And, how to quickly configure and use traefik or etc.
    • Related: #16,

Therefore, I created this post will put some related content here and update.

Tutorials: maybe need google translate, any question welcome discussion in new issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.