[Unit] Description=Sistema de ATLAS - API Backend Documentation=https://github.com/tuorganizacion/atlas After=network.target postgresql.service redis.service Wants=postgresql.service redis.service [Service] Type=exec User=root Group=root WorkingDirectory=/opt/atlas/backend # Cargar variables de entorno EnvironmentFile=/opt/atlas/.env # Comando de inicio # Uvicorn con multiples workers para produccion ExecStart=/opt/atlas/backend/venv/bin/uvicorn \ app.main:app \ --host 0.0.0.0 \ --port 8000 \ --workers 4 \ --loop uvloop \ --http httptools \ --proxy-headers \ --forwarded-allow-ips='*' \ --access-log \ --log-level info # Reinicio automatico Restart=always RestartSec=5 # Timeouts TimeoutStartSec=30 TimeoutStopSec=30 # Limites de recursos LimitNOFILE=65535 LimitNPROC=4096 # Seguridad NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true ReadWritePaths=/opt/atlas /var/log/atlas /tmp # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=atlas-api # Health check (systemd 253+) # WatchdogSec=30 [Install] WantedBy=multi-user.target