Executar num servidor

O Celerp funciona sempre no seu próprio hardware – a app para computador transforma o seu computador em servidor com um clique. Este guia mostra como o executar, em alternativa, num servidor Linux separado e sempre ligado (um VPS ou um servidor doméstico), para que todo o escritório lhe possa aceder a qualquer hora. O mesmo pip install celerp usado no desktop funciona em qualquer servidor Linux.

Requisitos

  • Python 3.11+
  • Postgres 14+ (em execução e acessível)
  • Um utilizador com acesso sudo (necessário para o celerp init criar o utilizador e a base de dados Postgres)

Instalar e inicializar

pip install celerp
celerp init

celerp init é interativo. Irá:

  • Pedir um URL de ligação ao Postgres (ou aceitar a predefinição: postgresql+asyncpg://celerp:celerp@localhost:5432/celerp)
  • Criar o utilizador e a base de dados Postgres (via sudo -u postgres psql)
  • Gerar um segredo JWT
  • Executar as migrações
  • Escrever um ficheiro de configuração (~/.celerp/config.toml)

Iniciar o servidor

celerp start

Isto inicia dois processos:

  • Servidor de API na porta 8000
  • Servidor de interface na porta 8080

Abra http://your-server-ip:8080 num navegador para aceder ao Celerp.

Executar como serviço systemd

Para manter o Celerp em execução depois de terminar a sessão e para que arranque automaticamente no reinício:

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

Para expor o Celerp num domínio com HTTPS, faça proxy da interface e da API através do 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;
}

Use o Certbot para obter um certificado SSL gratuito.

Atualizar

celerp upgrade

Isto executa pip install --upgrade celerp e aplica automaticamente quaisquer migrações pendentes.

Multiutilizador em LAN

Se executar o Celerp numa máquina da sua rede local, os outros utilizadores da mesma rede podem aceder-lhe no navegador em http://your-machine-ip:8080. Certifique-se de que a sua firewall permite ligações de entrada nas portas 8000 e 8080.