9fdcad1c46
- Terraform: e2-micro VM (us-east1-b, free tier), static IP, SSH/web
firewall rules, IAM bindings for Firestore + GCS; imports existing
drb-calls bucket and c2-server Firestore database into state
- Gitea CI: build c2-core, discord-bot, frontend images and push to
git.vpn.cusano.net registry; SSH deploy pulls pre-built images (no
build on VM)
- Ansible: first-time setup only — git clone, env files from vault,
Caddyfile, docker login + compose pull + up; no rsync or on-VM builds
- docker-compose: add image: ${REGISTRY}/name:latest alongside build:
so local dev and CI registry both work
- gitignore: add Terraform state, lock, tfvars, ansible secrets
49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
services:
|
|
mosquitto:
|
|
image: eclipse-mosquitto:2
|
|
restart: unless-stopped
|
|
ports:
|
|
- "1883:1883"
|
|
entrypoint: ["/bin/sh", "/mosquitto/config/entrypoint.sh"]
|
|
environment:
|
|
- MQTT_C2_USER=${MQTT_C2_USER}
|
|
- MQTT_C2_PASS=${MQTT_C2_PASS}
|
|
- MQTT_NODE_USER=${MQTT_NODE_USER}
|
|
- MQTT_NODE_PASS=${MQTT_NODE_PASS}
|
|
volumes:
|
|
- ./drb-c2-core/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
|
- ./drb-c2-core/mosquitto/acl.conf:/mosquitto/config/acl.conf:ro
|
|
- ./drb-c2-core/mosquitto/entrypoint.sh:/mosquitto/config/entrypoint.sh:ro
|
|
- mosquitto_data:/mosquitto/data
|
|
|
|
c2-core:
|
|
image: ${REGISTRY}/c2-core:${TAG:-latest}
|
|
build: ./drb-c2-core
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8888:8000"
|
|
env_file: ./drb-c2-core/.env
|
|
depends_on:
|
|
- mosquitto
|
|
|
|
discord-bot:
|
|
image: ${REGISTRY}/discord-bot:${TAG:-latest}
|
|
build: ./drb-server-discord-bot
|
|
restart: unless-stopped
|
|
env_file: ./drb-server-discord-bot/.env
|
|
depends_on:
|
|
- c2-core
|
|
|
|
frontend:
|
|
image: ${REGISTRY}/frontend:${TAG:-latest}
|
|
build: ./drb-frontend
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
env_file: ./drb-frontend/.env
|
|
depends_on:
|
|
- c2-core
|
|
|
|
volumes:
|
|
mosquitto_data:
|