Esecuzione su un server

Celerp gira sempre sul tuo hardware: l'app desktop trasforma il tuo computer in server con un clic. Questa guida riguarda invece l'esecuzione su un server Linux separato e sempre acceso (un VPS o un server domestico), così tutto l'ufficio può raggiungerlo 24 ore su 24. Lo stesso pip install celerp usato sul desktop funziona su qualsiasi server Linux.

Requisiti

  • Python 3.11+
  • Postgres 14+ (in esecuzione e accessibile)
  • Un utente con accesso sudo (necessario a celerp init per creare l'utente e il database Postgres)

Installazione e inizializzazione

pip install celerp
celerp init

celerp init è interattivo. Si occuperà di:

  • Chiedere un URL di connessione Postgres (o accettare il valore predefinito: postgresql+asyncpg://celerp:celerp@localhost:5432/celerp)
  • Creare l'utente e il database Postgres (tramite sudo -u postgres psql)
  • Generare un secret JWT
  • Eseguire le migrazioni
  • Scrivere un file di configurazione (~/.celerp/config.toml)

Avviare il server

celerp start

Questo avvia due processi:

  • Server API sulla porta 8000
  • Server UI sulla porta 8080

Apri http://your-server-ip:8080 in un browser per accedere a Celerp.

Eseguire come servizio systemd

Per tenere Celerp in esecuzione dopo il logout e avviarlo automaticamente al riavvio:

sudo tee /etc/systemd/system/celerp.service <<EOF
[Unit]
Description=Celerp ERP
After=network.target postgresql.service

[Service]
Type=simple
User=$USER
ExecStart=$(which celerp) start
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now celerp

Reverse Proxy (nginx + HTTPS)

Per esporre Celerp su un dominio con HTTPS, fai da proxy sia all'interfaccia sia all'API tramite nginx:

server {
    server_name erp.yourdomain.com;

    # UI
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # API
    location /api/ {
        proxy_pass http://localhost:8000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/erp.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/erp.yourdomain.com/privkey.pem;
}

Usa Certbot per ottenere un certificato SSL gratuito.

Aggiornamento

celerp upgrade

Questo comando esegue pip install --upgrade celerp e applica automaticamente le migrazioni in sospeso.

Multiutenza in LAN

Se esegui Celerp su una macchina della tua rete locale, gli altri utenti della stessa rete possono raggiungerlo dal browser su http://your-machine-ip:8080. Assicurati che il firewall consenta le connessioni in entrata sulle porte 8000 e 8080.