1# The forge on slate. Publishes no ports: tailcat (inside the container)2# carries ssh and HTTP to the Fly edge over WireGuard, and accepts only the3# edge's client key. Lives at /srv/forge:4# src/ this repo (build context)5# data/ /srv/git in the container: repos, pages, sites, keys6# forge.env FORGE_OWNER_KEY, FORGE_TAILCAT_ALLOW, TYPESAFE_API_KEY, and7# FORGE_BACKUP_*, FORGE_MIRROR_* (README.md, "Backups and moving8# hosts"); keep a copy in your password manager9#10# docker compose -f /srv/forge/src/deploy/slate/compose.yaml up -d --build11# docker compose run --rm forge forge-admin restore latest (a new box, before its first up)12name: forge1314services:15 forge:16 build:17 context: ../..18 image: forge:local19 container_name: forge20 hostname: forge21 environment:22 FORGE_NAME: forge23 FORGE_DOMAIN: src.rest24 FORGE_PAGES_DOMAIN: pages.src.rest25 FORGE_OWNER: cat26 env_file: /srv/forge/forge.env27 volumes:28 - type: bind29 source: /srv/forge/data30 target: /srv/git31 bind:32 create_host_path: false33 restart: unless-stopped34 stop_grace_period: 30s