Ejecutar en un servidor

Celerp siempre se ejecuta en tu propio hardware: la app de escritorio convierte tu equipo en el servidor con un solo clic. Esta guía explica cómo ejecutarlo en un servidor Linux aparte y siempre encendido (un VPS o un servidor doméstico), para que toda tu oficina pueda acceder a él a todas horas. La misma vía pip install celerp que se usa en el escritorio funciona en cualquier servidor Linux.

Requisitos

  • Python 3.11+
  • Postgres 14+ (en ejecución y accesible)
  • Un usuario con acceso sudo (necesario para que celerp init cree el usuario y la base de datos de Postgres)

Instalar e inicializar

pip install celerp
celerp init

celerp init es interactivo. Hará lo siguiente:

  • Pedir una URL de conexión a Postgres (o aceptar la predeterminada: postgresql+asyncpg://celerp:celerp@localhost:5432/celerp)
  • Crear el usuario y la base de datos de Postgres (mediante sudo -u postgres psql)
  • Generar un secreto JWT
  • Ejecutar las migraciones
  • Escribir un archivo de configuración (~/.celerp/config.toml)

Iniciar el servidor

celerp start

Esto inicia dos procesos:

  • Servidor de la API en el puerto 8000
  • Servidor de la interfaz en el puerto 8080

Abre http://your-server-ip:8080 en un navegador para acceder a Celerp.

Ejecutar como servicio de systemd

Para que Celerp siga ejecutándose tras cerrar sesión y arranque solo al reiniciar:

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 inverso (nginx + HTTPS)

Para publicar Celerp en un dominio con HTTPS, pasa tanto la interfaz como la API por 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 para obtener un certificado SSL gratuito.

Actualización

celerp upgrade

Esto ejecuta pip install --upgrade celerp y aplica automáticamente las migraciones pendientes.

Multiusuario en la red local

Si ejecutas Celerp en un equipo de tu red local, los demás usuarios de esa red pueden acceder desde su navegador en http://your-machine-ip:8080. Asegúrate de que tu cortafuegos permita conexiones entrantes en los puertos 8000 y 8080.