platform-deployments/systemd/devops.service

43 lines
1.6 KiB
Desktop File

# DevOps Infrastructure - Auto-start on boot
# =============================================================================
# Manages development infrastructure via docker-compose:
# - forgejo (git forge at forge.nasty.sh)
# - forgejo-db (postgres)
# - forgejo-nginx (reverse proxy for forge + npm)
# - forgejo-runner (CI/CD runner)
# - verdaccio (npm cache at npm.nasty.sh)
# - restic-rest-server (workstation backups)
#
# Deploy: sudo cp this file to /etc/systemd/system/devops.service
# sudo systemctl daemon-reload
# sudo systemctl enable devops
# =============================================================================
[Unit]
Description=DevOps Infrastructure (Git Forge + CI/CD + NPM Cache + Backups)
Documentation=https://forgejo.org/docs/latest/admin/
Requires=docker.service
After=docker.service network-online.target
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/bigdisk/forgejo
# Start all stacks
ExecStart=/usr/bin/docker-compose -f /bigdisk/forgejo/docker-compose.yml up -d
ExecStart=/usr/bin/docker-compose -f /bigdisk/restic/docker-compose.yml up -d
# Stop all stacks (reverse order)
ExecStop=/usr/bin/docker-compose -f /bigdisk/restic/docker-compose.yml down
ExecStop=/usr/bin/docker-compose -f /bigdisk/forgejo/docker-compose.yml down
# Reload all stacks
ExecReload=/usr/bin/docker-compose -f /bigdisk/forgejo/docker-compose.yml up -d --force-recreate
ExecReload=/usr/bin/docker-compose -f /bigdisk/restic/docker-compose.yml up -d --force-recreate
TimeoutStartSec=300
[Install]
WantedBy=multi-user.target