Exécuter sur un serveur

Celerp s'exécute toujours sur votre propre matériel – l'application de bureau transforme votre ordinateur en serveur en un clic. Ce guide concerne plutôt son exécution sur un serveur Linux distinct et toujours allumé (un VPS ou serveur domestique), pour que tout votre bureau puisse y accéder 24h/24. Le même chemin pip install celerp utilisé sur le bureau fonctionne sur n'importe quel serveur Linux.

Prérequis

  • Python 3.11+
  • Postgres 14+ (en cours d'exécution et accessible)
  • Un utilisateur avec accès sudo (nécessaire à celerp init pour créer l'utilisateur et la base de données Postgres)

Installer et initialiser

pip install celerp
celerp init

celerp init est interactif. Il va :

  • Demander une URL de connexion Postgres (ou accepter la valeur par défaut : postgresql+asyncpg://celerp:celerp@localhost:5432/celerp)
  • Créer l'utilisateur et la base de données Postgres (via sudo -u postgres psql)
  • Générer un secret JWT
  • Exécuter les migrations
  • Écrire un fichier de configuration (~/.celerp/config.toml)

Démarrer le serveur

celerp start

Cela démarre deux processus :

  • Serveur API sur le port 8000
  • Serveur d'interface sur le port 8080

Ouvrez http://your-server-ip:8080 dans un navigateur pour accéder à Celerp.

Exécuter en tant que service systemd

Pour que Celerp continue de fonctionner après la déconnexion et démarre automatiquement au redémarrage :

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

Proxy inverse (nginx + HTTPS)

Pour exposer Celerp sur un domaine avec HTTPS, faites passer l'interface et l'API par 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;
}

Utilisez Certbot pour obtenir un certificat SSL gratuit.

Mise à niveau

celerp upgrade

Cela exécute pip install --upgrade celerp et applique automatiquement toute migration en attente.

Multi-utilisateur en réseau local

Si vous exécutez Celerp sur une machine de votre réseau local, les autres utilisateurs du même réseau peuvent y accéder depuis leur navigateur à l'adresse http://your-machine-ip:8080. Assurez-vous que votre pare-feu autorise les connexions entrantes sur les ports 8000 et 8080.