feat: ship blog platform admin and deploy stack

This commit is contained in:
2026-03-31 21:48:39 +08:00
parent a9a05aa105
commit 313f174fbc
210 changed files with 25476 additions and 5803 deletions

View File

@@ -0,0 +1,88 @@
# tohka 生产部署主配置源config.yaml
# 使用方式:
# 1. cp deploy/docker/config.yaml.example deploy/docker/config.yaml
# 2. 按实际环境填写下面参数
# 3. python deploy/scripts/render_compose_env.py --input deploy/docker/config.yaml --output deploy/docker/.env
# 4. docker compose -f deploy/docker/compose.package.yml -f deploy/docker/compose.tohka.override.yml --env-file deploy/docker/.env up -d
project:
name: termi-astro
host: tohka
compose_files:
- deploy/docker/compose.package.yml
- deploy/docker/compose.tohka.override.yml
env_output: deploy/docker/.env
# 仅做文档/运维留档docker compose 实际读取 compose_env
meta:
blog_origin: https://blog.init.cool
admin_origin: https://admin.blog.init.cool
api_origin: https://api.blog.init.cool
pocket_id_issuer: https://id.example.com
pocket_id_client: admin.blog.init.cool
compose_env:
BACKEND_PORT: 5150
FRONTEND_PORT: 4321
ADMIN_PORT: 4322
APP_BASE_URL: https://admin.blog.init.cool
INTERNAL_API_BASE_URL: http://backend:5150/api
PUBLIC_API_BASE_URL: https://api.blog.init.cool
ADMIN_API_BASE_URL: https://admin.blog.init.cool
ADMIN_FRONTEND_BASE_URL: https://blog.init.cool
PUBLIC_IMAGE_ALLOWED_HOSTS: cdn.example.com,pub-xxxx.r2.dev
DATABASE_URL: postgres://termi:replace-me@postgres.internal:5432/termi_api
REDIS_URL: redis://redis.internal:6379
JWT_SECRET: replace-with-a-long-random-secret
JWT_EXPIRATION_SECONDS: 604800
RUST_LOG: info
SMTP_ENABLE: true
SMTP_HOST: smtp.resend.com
SMTP_PORT: 587
SMTP_SECURE: false
SMTP_USER: resend
SMTP_PASSWORD: replace-with-smtp-password
SMTP_HELLO_NAME: admin.blog.init.cool
TERMI_ADMIN_TRUST_PROXY_AUTH: true
TERMI_ADMIN_LOCAL_LOGIN_ENABLED: false
TERMI_ADMIN_PROXY_SHARED_SECRET: replace-with-another-long-random-secret
BACKEND_IMAGE: git.init.cool/cool/termi-astro-backend:latest
FRONTEND_IMAGE: git.init.cool/cool/termi-astro-frontend:latest
ADMIN_IMAGE: git.init.cool/cool/termi-astro-admin:latest
notifications:
ntfy:
enabled: true
base_url: https://ntfy.sh
example_topic: your-team-topic
timers:
retry_deliveries: termi-retry-deliveries.timer
weekly_digest: termi-weekly-digest.timer
monthly_digest: termi-monthly-digest.timer
backups:
offsite_target: /mnt/offsite/termi-astro-backups
local_retention_days:
postgres: 14
markdown: 14
media: 14
timers:
backup_all: termi-backup-all.timer
backup_prune: termi-backup-prune.timer
backup_offsite_sync: termi-backup-offsite-sync.timer
systemd:
repo_path: /opt/termi-astro
install_path: /etc/systemd/system
enable_timers:
- termi-retry-deliveries.timer
- termi-weekly-digest.timer
- termi-monthly-digest.timer
- termi-backup-all.timer
- termi-backup-prune.timer
- termi-backup-offsite-sync.timer