Major improvements: flexible install dir, configurable compose file name for git, enhanced webhook notifications, cross-platform lock, robust rollback, and updated docs.\n\n- Install dir is now user-confirmable and dynamic\n- Added COMPOSE_FILENAME for git stacks\n- Webhook payloads now include git context and rollback events\n- Lock file age check is cross-platform\n- Rollback notifications for success/failure\n- Updated TOML example and documentation\n- Many robustness and UX improvements

This commit is contained in:
robojerk 2025-06-25 15:15:40 -07:00
parent f0dba7cc0a
commit 70486907aa
18 changed files with 3788 additions and 1767 deletions

52
config.toml.example Normal file
View file

@ -0,0 +1,52 @@
# ComposeSync TOML Configuration Example
# This file supports both global settings and per-stack configurations
[global]
# Global settings for all stacks
UPDATE_INTERVAL_SECONDS = 3600 # Check every hour
KEEP_VERSIONS = 10 # Keep 10 versions
DRY_RUN = false # Set to true for testing
NOTIFICATION_WEBHOOK_URL = "https://your-webhook-url.com/endpoint"
# Stack configurations
[immich]
URL = "https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml"
PATH = "/opt/composesync/stacks/immich"
TOOL = "wget"
INTERVAL = 3600 # Check every hour
[dev-app]
URL = "https://github.com/user/dev-app.git"
PATH = "/opt/composesync/stacks/dev-app"
TOOL = "git"
GIT_SUBPATH = "docker/docker-compose.yml"
GIT_REF = "develop"
INTERVAL = 1800 # Check every 30 minutes for dev
[production-app]
URL = "https://github.com/user/production-app.git"
PATH = "/opt/composesync/stacks/production"
TOOL = "git"
GIT_SUBPATH = "deploy/docker-compose.yml"
GIT_REF = "main"
INTERVAL = 7200 # Check every 2 hours for production
KEEP_VERSIONS = 5 # Keep fewer versions for production
# Example with multiple compose files
[complex-stack]
URL = "https://github.com/user/complex-app.git"
PATH = "/opt/composesync/stacks/complex"
TOOL = "git"
GIT_SUBPATH = "docker/docker-compose.yml"
GIT_REF = "main"
EXTRA_FILES_1 = "https://github.com/user/complex-app/raw/main/docker/network.yml"
EXTRA_FILES_2 = "https://github.com/user/complex-app/raw/main/docker/volumes.yml"
EXTRA_FILES_ORDER = "1,2" # Custom order for extra files
# Example with custom compose file name
[custom-compose]
URL = "https://github.com/user/custom-app.git"
PATH = "/opt/composesync/stacks/custom"
TOOL = "git"
GIT_REF = "main"
COMPOSE_FILENAME = "main.yml" # Use main.yml instead of docker-compose.yml