{"id":16162269,"url":"https://github.com/0xerr0r/crony","last_synced_at":"2025-03-18T22:30:58.479Z","repository":{"id":38309765,"uuid":"308862205","full_name":"0xERR0R/crony","owner":"0xERR0R","description":"Simple docker cron job scheduler","archived":false,"fork":false,"pushed_at":"2025-02-20T14:46:01.000Z","size":279,"stargazers_count":15,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-28T12:32:07.463Z","etag":null,"topics":["cron","cronjob-scheduler","docker"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xERR0R.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-31T11:03:23.000Z","updated_at":"2025-02-20T14:45:59.000Z","dependencies_parsed_at":"2023-10-12T15:30:12.519Z","dependency_job_id":"9e097143-ad21-465d-be80-e39b6aa0732b","html_url":"https://github.com/0xERR0R/crony","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xERR0R%2Fcrony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xERR0R%2Fcrony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xERR0R%2Fcrony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xERR0R%2Fcrony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xERR0R","download_url":"https://codeload.github.com/0xERR0R/crony/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243950927,"owners_count":20373664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cron","cronjob-scheduler","docker"],"created_at":"2024-10-10T02:29:36.550Z","updated_at":"2025-03-18T22:30:58.220Z","avatar_url":"https://github.com/0xERR0R.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build](https://github.com/0xERR0R/crony/workflows/Build/badge.svg)\n\n# crony\n\nSimple docker cron job scheduler.\n\n## Features\n\n- Start existing docker container periodically\n- Send a mail after the job execution (always, or only on failure) with stdout/stderr\n- Automatically register new containers\n- healthchecks.io integration (job start/return code, duration)\n\n## Usage\n\nStart crony with following `docker-compose.yml`\n\n```yaml\nversion: \"2.1\"\nservices:\n  crony:\n    image: ghcr.io/0xerr0r/crony:latest\n    container_name: crony\n    volumes:\n      # needs access to host docker socket to read container labels and start job containers\n      - /var/run/docker.sock:/var/run/docker.sock:ro\n      # to synchronize the time zone with host\n      - /etc/localtime:/etc/localtime:ro\n    environment:\n      # mail settings\n      - SMTP_HOST=smtp.gmail.com \n      - SMTP_PORT=587\n      - SMTP_USER=xxx@googlemail.com\n      - SMTP_PASSWORD=xxx\n      - MAIL_TO=xxx@gmail.com\n      - MAIL_FROM=CRONY \u003cxxx@googlemail.com\u003e\n      # global mail policy: always, never or onerror\n      - MAIL_POLICY=always\n      # optional: log level (one of trace, debug, info, warn, error, fatal), info is default if not set\n      - LOG_LEVEL=info\n    mem_limit: 30MB\n```\n\n\nUse following labels in your docker container which should be scheduled by crony:\n\n```yaml\n...\n      labels:\n          # cron string\n          - crony.schedule=\"*/15 6-23 * * *\"\n          # optional to override the global settings\n          - crony.mail_policy=onerror\n          # optional, use following job UUID for reporting to healthcheck.io\n          - crony.hcio_uuid=394ed711-afca-4a4f-9cdb-16b7e976418e\n...\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xerr0r%2Fcrony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xerr0r%2Fcrony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xerr0r%2Fcrony/lists"}