mirror of
https://github.com/Cccc-owo/CheckInApp.git
synced 2026-06-17 05:56:29 +00:00
fdc725b893
backend & frontend
101 lines
2.8 KiB
Plaintext
101 lines
2.8 KiB
Plaintext
# ==============================================================================
|
|
# CheckIn App V2 - Systemd Service File Example
|
|
# ==============================================================================
|
|
#
|
|
# This file defines a systemd service for running the CheckIn App backend
|
|
#
|
|
# Installation:
|
|
# 1. Copy this file: sudo cp checkin-app.service.example /etc/systemd/system/checkin-app.service
|
|
# 2. Edit the file and replace placeholders with your actual values
|
|
# 3. Reload systemd: sudo systemctl daemon-reload
|
|
# 4. Enable service: sudo systemctl enable checkin-app.service
|
|
# 5. Start service: sudo systemctl start checkin-app.service
|
|
# 6. Check status: sudo systemctl status checkin-app.service
|
|
#
|
|
# Management Commands:
|
|
# Start: sudo systemctl start checkin-app
|
|
# Stop: sudo systemctl stop checkin-app
|
|
# Restart: sudo systemctl restart checkin-app
|
|
# Status: sudo systemctl status checkin-app
|
|
# Logs: sudo journalctl -u checkin-app -f
|
|
#
|
|
# ==============================================================================
|
|
|
|
[Unit]
|
|
# Service description
|
|
Description=CheckIn App V2 - Backend API Service
|
|
Documentation=https://github.com/your-repo/checkin-app
|
|
|
|
# Start after network and database are available
|
|
After=network.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
# Service type
|
|
Type=simple
|
|
|
|
# User and Group
|
|
# IMPORTANT: Replace 'www-data' with your actual user
|
|
# Create a dedicated user: sudo useradd -r -s /bin/false checkin
|
|
User=www-data
|
|
Group=www-data
|
|
|
|
# Working directory
|
|
# IMPORTANT: Replace with your actual installation path
|
|
WorkingDirectory=/opt/checkin-app
|
|
|
|
# Environment variables
|
|
Environment="PATH=/opt/checkin-app/venv/bin:/usr/local/bin:/usr/bin:/bin"
|
|
Environment="PYTHONPATH=/opt/checkin-app"
|
|
|
|
# Load environment variables from .env file (optional)
|
|
EnvironmentFile=-/opt/checkin-app/.env
|
|
|
|
# Command to start the service
|
|
# Using uvicorn directly for production
|
|
ExecStart=/opt/checkin-app/venv/bin/python /opt/checkin-app/run_daemon.py
|
|
|
|
# Alternative: Using uvicorn directly with more control
|
|
# ExecStart=/opt/checkin-app/venv/bin/uvicorn backend.main:app \
|
|
# --host 0.0.0.0 \
|
|
# --port 8000 \
|
|
# --workers 4 \
|
|
# --log-level info \
|
|
# --access-log \
|
|
# --proxy-headers
|
|
|
|
# Restart policy
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
# Kill signal
|
|
KillSignal=SIGTERM
|
|
KillMode=mixed
|
|
|
|
# Timeout settings
|
|
TimeoutStartSec=60
|
|
TimeoutStopSec=30
|
|
|
|
# Resource limits (optional)
|
|
LimitNOFILE=65535
|
|
# LimitNPROC=4096
|
|
# MemoryLimit=2G
|
|
# CPUQuota=200%
|
|
|
|
# Security settings (optional but recommended)
|
|
# Restrict access to the filesystem
|
|
# ReadWritePaths=/opt/checkin-app/data /opt/checkin-app/logs /opt/checkin-app/sessions
|
|
# ReadOnlyPaths=/opt/checkin-app
|
|
|
|
# Prevent privilege escalation
|
|
NoNewPrivileges=true
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=checkin-app
|
|
|
|
[Install]
|
|
# Start on boot
|
|
WantedBy=multi-user.target
|