mirror of
https://github.com/basnijholt/compose-farm.git
synced 2026-02-03 06:03:25 +00:00
48 lines
1.7 KiB
YAML
48 lines
1.7 KiB
YAML
services:
|
|
cf:
|
|
image: ghcr.io/basnijholt/compose-farm:latest
|
|
volumes:
|
|
- ${SSH_AUTH_SOCK}:/ssh-agent:ro
|
|
# Compose directory (contains compose files AND compose-farm.yaml config)
|
|
- ${CF_COMPOSE_DIR:-/opt/stacks}:${CF_COMPOSE_DIR:-/opt/stacks}
|
|
# SSH keys for passwordless auth (generated by `cf ssh setup`)
|
|
# Option 1: Named volume (default) - managed by Docker
|
|
- cf-ssh:/root/.ssh
|
|
# Option 2: Host path - easier to backup/inspect, uncomment to use:
|
|
# - ${CF_SSH_DIR:-~/.ssh/compose-farm}:/root/.ssh
|
|
environment:
|
|
- SSH_AUTH_SOCK=/ssh-agent
|
|
# Config file path (state stored alongside it)
|
|
- CF_CONFIG=${CF_COMPOSE_DIR:-/opt/stacks}/compose-farm.yaml
|
|
|
|
web:
|
|
image: ghcr.io/basnijholt/compose-farm:latest
|
|
restart: unless-stopped
|
|
command: web --host 0.0.0.0 --port 9000
|
|
volumes:
|
|
- ${SSH_AUTH_SOCK}:/ssh-agent:ro
|
|
- ${CF_COMPOSE_DIR:-/opt/stacks}:${CF_COMPOSE_DIR:-/opt/stacks}
|
|
# SSH keys - use same option as cf service above
|
|
- cf-ssh:/root/.ssh
|
|
# - ${CF_SSH_DIR:-~/.ssh/compose-farm}:/root/.ssh
|
|
environment:
|
|
- SSH_AUTH_SOCK=/ssh-agent
|
|
- CF_CONFIG=${CF_COMPOSE_DIR:-/opt/stacks}/compose-farm.yaml
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.compose-farm.rule=Host(`compose-farm.${DOMAIN}`)
|
|
- traefik.http.routers.compose-farm.entrypoints=websecure
|
|
- traefik.http.routers.compose-farm-local.rule=Host(`compose-farm.local`)
|
|
- traefik.http.routers.compose-farm-local.entrypoints=web
|
|
- traefik.http.services.compose-farm.loadbalancer.server.port=9000
|
|
networks:
|
|
- mynetwork
|
|
|
|
networks:
|
|
mynetwork:
|
|
external: true
|
|
|
|
volumes:
|
|
cf-ssh:
|
|
# Persists SSH keys across container restarts
|