Complete containerized deployment system with Docker/Podman support. Key features: - Multi-stage Dockerfile with Python 3.11-slim base - Docker Compose configurations for production and development - Nginx reverse proxy with security headers and rate limiting - Systemd service units for Docker, Podman, and docker-compose - Backup/restore scripts with integrity verification - Podman compatibility (ADR-009) All tests pass including Podman verification testing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
54 lines
1.3 KiB
Desktop File
54 lines
1.3 KiB
Desktop File
# Gondulf IndieAuth Server - systemd Unit for Docker
|
|
#
|
|
# Installation:
|
|
# 1. Copy this file to /etc/systemd/system/gondulf.service
|
|
# 2. sudo systemctl daemon-reload
|
|
# 3. sudo systemctl enable --now gondulf
|
|
#
|
|
# Management:
|
|
# sudo systemctl status gondulf
|
|
# sudo systemctl restart gondulf
|
|
# sudo systemctl stop gondulf
|
|
# sudo journalctl -u gondulf -f
|
|
#
|
|
|
|
[Unit]
|
|
Description=Gondulf IndieAuth Server (Docker)
|
|
Documentation=https://github.com/yourusername/gondulf
|
|
Requires=docker.service
|
|
After=docker.service network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
Restart=always
|
|
RestartSec=10s
|
|
TimeoutStartSec=60s
|
|
TimeoutStopSec=30s
|
|
|
|
# Working directory (adjust to your installation path)
|
|
WorkingDirectory=/opt/gondulf
|
|
|
|
# Stop and remove any existing container
|
|
ExecStartPre=-/usr/bin/docker stop gondulf
|
|
ExecStartPre=-/usr/bin/docker rm gondulf
|
|
|
|
# Start container
|
|
ExecStart=/usr/bin/docker run \
|
|
--name gondulf \
|
|
--rm \
|
|
-p 8000:8000 \
|
|
-v gondulf_data:/data \
|
|
--env-file /opt/gondulf/.env \
|
|
--health-cmd "wget --no-verbose --tries=1 --spider http://localhost:8000/health || exit 1" \
|
|
--health-interval 30s \
|
|
--health-timeout 5s \
|
|
--health-retries 3 \
|
|
gondulf:latest
|
|
|
|
# Stop container gracefully
|
|
ExecStop=/usr/bin/docker stop -t 10 gondulf
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|