Repolode
flohoss

flohoss/gocron

YAMLで定期実行するシェルジョブを定義し、Web UIで実行を管理できるセルフホスト型のcronスタイルタスクスケジューラー。

代替できる製品:Windows Task Scheduler

スター
627
フォーク
23
未解決の Issue
2
最終コミット
15 日前

これは何?

GoCronは、cronスケジュールに従ってシェルコマンドを実行します。ジョブ、スケジュール、環境変数、タイムアウト、リトライは1つのYAMLファイルにまとめて定義でき、コンテナを再起動しなくてもファイルの変更が反映されます。各ジョブは独自の環境を持ち、コマンド内では${VAR}を展開できます。また、ジョブごとの値は共通のデフォルト値より優先されます。

Vue.js製のWeb UIでは、ジョブの確認、手動実行、ログの閲覧、サンドボックス化されたターミナルの利用ができます。実行履歴とログはSQLiteに保存され、実行時の出力はServer-Sent Eventsでブラウザーにストリーミングされます。オプション機能として、ジョブの開始・終了・失敗時に呼び出すHTTPヘルスチェックコールバック、IPごとのレート制限、信頼するリバースプロキシの処理、OIDCシングルサインオンを利用できます。

Dockerイメージは、Debianベースのイメージで起動時にrestic、rclone、borgbackup、rsyncなどの一般的なバックアップ・コンテナツールをインストールできます。

主な機能

  • 01ジョブ、cronスケジュール、環境変数を1つのYAMLファイルに定義。
  • 02標準的な5フィールドのcron式に対応し、ジョブ間でデフォルト値を継承。
  • 03コマンドごとのタイムアウトとリトライに対応し、失敗時に処理を続行する設定も可能。
  • 04ジョブの確認、実行、ログ閲覧ができるWeb UI。
  • 05保持期間を設定でき、実行履歴をSQLiteに保存。
  • 06ジョブの開始・終了・失敗時に呼び出すHTTPヘルスチェックコールバック。
  • 07オプションでOIDCシングルサインオンとIPごとのレート制限に対応。

ユースケース

  • Dockerホスト上でrestic、rclone、borgbackupを使った夜間バックアップをスケジュール実行する。
  • ブラウザーでログを確認しながら、ホームサーバーで定期的なメンテナンススクリプトを実行する。
  • 監視サービスにハートビートを送信し、実行漏れがあった場合にアラートを発生させる。

クイックスタート

  1. 1

    Dockerでコンテナを起動します(初回起動時にデフォルト設定が作成されます)

    docker run -it --rm --name gocron -p 8156:8156 -v ./config/:/app/config/ ghcr.io/flohoss/gocron:latest
  2. 2

    ブラウザーで http://localhost:8156 を開くと、ジョブとログを確認できます

  3. 3

    または、用意されているサービス定義を使ってDocker Composeを利用します

使う前に知っておきたいこと

  • softwareブロックを使ったソフトウェアのインストールはDebian限定です。

収録されている特集

トピック

よくある質問

gocron とは?
YAMLで定期実行するシェルジョブを定義し、Web UIで実行を管理できるセルフホスト型のcronスタイルタスクスケジューラー。 GoCronは、cronスケジュールに従ってシェルコマンドを実行します。ジョブ、スケジュール、環境変数、タイムアウト、リトライは1つのYAMLファイルにまとめて定義でき、コンテナを再起動しなくてもファイルの変更が反映されます。各ジョブは独自の環境を持ち、コマンド内では${VAR}を展開できます。また、ジョブごとの値は共通のデフォルト値より優先されます。
gocron は無料で使えますか?ライセンスは?
gocron は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
gocron は今もメンテナンスされていますか?
活発にメンテナンス中。gocron の最終コミットは 2026年10月23日 です。
gocron は何に使えますか?
Dockerホスト上でrestic、rclone、borgbackupを使った夜間バックアップをスケジュール実行する。 ブラウザーでログを確認しながら、ホームサーバーで定期的なメンテナンススクリプトを実行する。 監視サービスにハートビートを送信し、実行漏れがあった場合にアラートを発生させる。
gocron のインストール方法は?
Dockerでコンテナを起動します(初回起動時にデフォルト設定が作成されます): docker run -it --rm --name gocron -p 8156:8156 -v ./config/:/app/config/ ghcr.io/flohoss/gocron:latest ブラウザーで http://localhost:8156 を開くと、ジョブとログを確認できます または、用意されているサービス定義を使ってDocker Composeを利用します
gocron はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/flohoss/gocron

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

URL、ブックマーク、フィードをHTML、PDF、スクリーンショット、WARC、メディアなどのシンプルで長期保存しやすい形式で保存するセルフホスト型Webアーカイバー。

生産性・アプリ#web-archiving#self-hosted#backup
2.9万+66 今週1630PythonMIT更新 4 日前