Files
tiny-forge/tinyforge.example.yaml
T
alexei.dolgolyov 791cd4d6af
Build / build (push) Successful in 12m20s
feat: rename Docker Watcher to Tinyforge
Rebrand the project as Tinyforge to reflect its evolution from a Docker
container watcher into a self-hosted mini CI/deployment platform.

Rename covers: Go module path, Docker labels, DB/config filenames,
JWT issuer, Dockerfile binary, docker-compose, CI workflows, frontend
i18n, README with static sites docs, and all code comments.
2026-04-12 21:30:39 +03:00

79 lines
2.1 KiB
YAML

# Tinyforge — 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 ./tinyforge.yaml (or set SEED_FILE env var)
# and start Tinyforge. 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