cdf21682d6
AES-256-GCM encryption for credential storage, YAML seed config parser with validation, and transactional import into SQLite. Credentials (registry tokens, NPM password) encrypted before storage.
79 lines
2.1 KiB
YAML
79 lines
2.1 KiB
YAML
# Docker Watcher — Seed Configuration
|
|
#
|
|
# This file is read ONCE on first launch to populate the SQLite database.
|
|
# After import, all configuration is managed via the Web UI.
|
|
# The only required env var is ENCRYPTION_KEY (used to encrypt credentials in DB).
|
|
#
|
|
# Place this file as ./docker-watcher.yaml (or set SEED_FILE env var)
|
|
# and start Docker Watcher. Once imported, the file is never read again.
|
|
|
|
global:
|
|
# Your base domain — must have a Cloudflare wildcard DNS record (*.domain)
|
|
domain: example.com
|
|
|
|
# The IP address of your Docker host
|
|
server_ip: 192.168.1.100
|
|
|
|
# Docker network that containers will be attached to
|
|
network: staging-net
|
|
|
|
# Pattern for generating subdomains. Available placeholders: {stage}, {project}
|
|
subdomain_pattern: "stage-{stage}-{project}"
|
|
|
|
# Webhook URL for deploy notifications (optional)
|
|
notification_url: https://notify.example.com/webhook
|
|
|
|
# Nginx Proxy Manager connection
|
|
npm:
|
|
url: http://npm:81
|
|
email: admin@example.com
|
|
password: "your-npm-password-here"
|
|
|
|
# Container registries — referenced by name in project definitions
|
|
registries:
|
|
gitea:
|
|
url: https://git.example.com
|
|
type: gitea
|
|
token: "your-registry-token-here"
|
|
|
|
# github:
|
|
# url: https://ghcr.io
|
|
# type: github
|
|
# token: "ghp_your-github-token-here"
|
|
|
|
# Projects to deploy — each project has an image and one or more stages
|
|
projects:
|
|
my-web-app:
|
|
registry: gitea
|
|
image: git.example.com/org/my-web-app
|
|
port: 3000
|
|
healthcheck: /api/health
|
|
|
|
# Environment variables passed to the container
|
|
env:
|
|
NODE_ENV: production
|
|
|
|
# Volume mounts (host:container)
|
|
# volumes:
|
|
# /data/uploads: /app/uploads
|
|
|
|
stages:
|
|
dev:
|
|
tag_pattern: "dev-*"
|
|
auto_deploy: true
|
|
max_instances: 5
|
|
|
|
rel:
|
|
tag_pattern: "v*"
|
|
auto_deploy: false
|
|
max_instances: 2
|
|
|
|
prod:
|
|
tag_pattern: "v*"
|
|
auto_deploy: false
|
|
confirm: true
|
|
promote_from: rel
|
|
max_instances: 2
|
|
# Custom subdomain (instead of the pattern-generated one)
|
|
subdomain: my-app
|