# ============================================================================= # RecreaHUB API — systemd Unit File — CentOS 7 # # DIFERENÇAS vs Ubuntu: # - mysqld.service (CentOS 7) vs mysql.service (Ubuntu) # - /sbin/nologin (CentOS 7) vs /usr/sbin/nologin (Ubuntu) # - Node.js 18 LTS (Node 20+ NÃO funciona no CentOS 7 — glibc 2.17) # # INSTALAÇÃO: # sudo cp recreahub-api-centos7.service /etc/systemd/system/recreahub-api.service # sudo systemctl daemon-reload # sudo systemctl enable recreahub-api # sudo systemctl start recreahub-api # sudo systemctl status recreahub-api # # Para ver logs em tempo real: # sudo journalctl -u recreahub-api -f # # Para recarregar após mudança no .env: # sudo systemctl restart recreahub-api # # Para recarregar após atualização de código (via PM2 — preferido): # pm2 reload recreahub-api --update-env # ============================================================================= [Unit] Description=RecreaHUB API — Node.js 18 Backend Documentation=https://recreahub.com.br After=network.target mysqld.service Wants=mysqld.service [Service] Type=simple User=recreahub Group=recreahub WorkingDirectory=/opt/recreahub-api # Node.js 18 LTS — caminho padrão via NodeSource RPM no CentOS 7 ExecStart=/usr/bin/node server.js # Recarregar processo sem reiniciar (enviar SIGHUP) ExecReload=/bin/kill -HUP $MAINPID # Reiniciar automaticamente em caso de falha (não em parada manual) Restart=on-failure RestartSec=5 # Modo de encerramento: SIGTERM + SIGKILL após timeout KillMode=mixed KillSignal=SIGTERM TimeoutStopSec=30 # Logs via journald StandardOutput=journal StandardError=journal SyslogIdentifier=recreahub-api # Variáveis de ambiente base Environment=NODE_ENV=production Environment=PORT=3000 # Carregar .env se existir (o "-" ignora se o arquivo não existir) EnvironmentFile=-/opt/recreahub-api/.env # Limites de recursos do sistema LimitNOFILE=65536 LimitNPROC=4096 [Install] WantedBy=multi-user.target