Generate a Docker Compose configuration for self-hosting LinuxPatch.com
services: linuxpatch-app: restart: unless-stopped pull_policy: always image: linuxpatch/appliance:latest expose: - 80 - 443 command: ["./web"] environment: - PREFIX_DIR=/app/data - CONFIG_FILE=/app/data/.env - DB_TYPE=mysql - DB_HOST=linuxpatch-db - DB_PORT=3306 - DB_USERNAME=linuxpatch - DB_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq - DB_NAME=linuxpatch - SERVER_NAME=linuxpatch.example.com - SERVER_HOST=0.0.0.0 - SERVER_PORT=80 - REDIS_HOST=linuxpatch-redis - REDIS_PORT=6379 - REDIS_DATABASE=0 - SESSION_SECRET=ymYoZC8xSE00Iq9gTvTJMEVCWsS2E0Kh - TLS_ENABLED=0 - TLS_CERT_FILE=/app/data/certs/server.crt - TLS_KEY_FILE=/app/data/certs/server.key - TLS_DOMAIN=linuxpatch.example.com - SMTP_HOST=smtp.example.com - SMTP_PORT=587 - SMTP_USERNAME=user@example.com - SMTP_PASSWORD=password - SMTP_FROM_EMAIL=noreply@linuxpatch.com - ADMIN_USERNAME=admin@linuxpatch.local - ADMIN_PASSWORD=Owt3PBU4a37AnpP3XPwMo87pXCxrEA4p volumes: - ./data:/app/data depends_on: linuxpatch-db: condition: service_healthy linuxpatch-redis: condition: service_healthy networks: - linuxpatch-app-network ports: - 80:80 - 443:443 linuxpatch-db: restart: unless-stopped image: percona/percona-server:8.0 environment: - MYSQL_ROOT_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq - MYSQL_DATABASE=linuxpatch - MYSQL_USER=linuxpatch - MYSQL_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq volumes: - linuxpatch-mysql-data:/var/lib/mysql networks: - linuxpatch-app-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 10s retries: 10 linuxpatch-redis: restart: unless-stopped image: redis:6 command: redis-server volumes: - linuxpatch-redis-data:/data networks: - linuxpatch-app-network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 10s retries: 10 volumes: linuxpatch-mysql-data: driver: local linuxpatch-redis-data: driver: local networks: linuxpatch-app-network: driver: bridge