arcadiasuite/docs/archive/INSTALACAO_SERVIDOR.md

11 KiB

Manual de Instalação - Arcádia Suite

Requisitos do Servidor

Hardware Mínimo

  • CPU: 2 cores
  • RAM: 4GB
  • Disco: 40GB SSD
  • Rede: 100 Mbps

Hardware Recomendado

  • CPU: 4+ cores
  • RAM: 8GB+
  • Disco: 100GB SSD
  • Rede: 1 Gbps

Sistema Operacional

  • Ubuntu 22.04 LTS (recomendado)
  • Debian 12
  • Rocky Linux 9

1. Preparação do Servidor

1.1 Atualizar Sistema

sudo apt update && sudo apt upgrade -y

1.2 Instalar Dependências Básicas

sudo apt install -y curl wget git unzip build-essential

2. Instalar Node.js 20

# Adicionar repositório NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

# Instalar Node.js
sudo apt install -y nodejs

# Verificar instalação
node --version  # v20.x.x
npm --version   # 10.x.x

3. Instalar Python 3.11

# Instalar Python e pip
sudo apt install -y python3.11 python3.11-venv python3-pip

# Criar link simbólico (se necessário)
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1

# Verificar instalação
python3 --version  # Python 3.11.x

4. Instalar PostgreSQL 15

# Adicionar repositório oficial
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

# Instalar PostgreSQL
sudo apt install -y postgresql-15

# Iniciar e habilitar serviço
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Criar usuário e banco de dados
sudo -u postgres psql << EOF
CREATE USER arcadia WITH PASSWORD 'SuaSenhaSegura123!';
CREATE DATABASE arcadia_suite OWNER arcadia;
GRANT ALL PRIVILEGES ON DATABASE arcadia_suite TO arcadia;
\q
EOF

5. Instalar Redis (Opcional - Cache/Sessions)

sudo apt install -y redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server

# Verificar
redis-cli ping  # PONG

6. Clonar Projeto

# Criar diretório de aplicação
sudo mkdir -p /opt/arcadia
sudo chown $USER:$USER /opt/arcadia
cd /opt/arcadia

# Clonar repositório
git clone https://github.com/seu-usuario/arcadia-suite.git .

# Ou extrair arquivo ZIP
# unzip arcadia-suite.zip -d /opt/arcadia

7. Configurar Variáveis de Ambiente

7.1 Criar arquivo .env

cd /opt/arcadia
cp .env.example .env
nano .env

7.2 Conteúdo do .env

# Banco de Dados
DATABASE_URL=postgresql://arcadia:SuaSenhaSegura123!@localhost:5432/arcadia_suite
PGHOST=localhost
PGPORT=5432
PGUSER=arcadia
PGPASSWORD=SuaSenhaSegura123!
PGDATABASE=arcadia_suite

# Aplicação
NODE_ENV=production
PORT=5000
SESSION_SECRET=sua-chave-secreta-muito-longa-e-aleatoria-aqui

# OpenAI (para recursos de IA)
OPENAI_API_KEY=sk-sua-chave-openai

# ERPNext (opcional)
ERPNEXT_URL=https://seu-erpnext.com
ERPNEXT_API_KEY=sua-api-key
ERPNEXT_API_SECRET=sua-api-secret

# WhatsApp (opcional)
# Configurado via interface

# Protocolos MCP/A2A
PROTOCOL_API_KEYS=chave1,chave2,chave3

8. Instalar Dependências do Projeto

8.1 Node.js (Frontend + Backend)

cd /opt/arcadia
npm install

8.2 Python (Serviços de IA)

cd /opt/arcadia
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

9. Build da Aplicação

cd /opt/arcadia

# Build do frontend (Vite)
npm run build

# Verificar build
ls -la dist/

10. Executar Migrações do Banco

cd /opt/arcadia

# Gerar migrações (se necessário)
npm run db:generate

# Aplicar migrações
npm run db:push

11. Configurar Serviço Systemd

11.1 Criar serviço principal

sudo nano /etc/systemd/system/arcadia-suite.service
[Unit]
Description=Arcadia Suite - Office Estratégico
After=network.target postgresql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/arcadia
Environment=NODE_ENV=production
EnvironmentFile=/opt/arcadia/.env
ExecStart=/usr/bin/node dist/index.js
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

11.2 Criar serviço Python (IA/Fiscal)

sudo nano /etc/systemd/system/arcadia-python.service
[Unit]
Description=Arcadia Suite - Python Services
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/arcadia/python
Environment=PYTHONUNBUFFERED=1
EnvironmentFile=/opt/arcadia/.env
ExecStart=/opt/arcadia/venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8001
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

11.3 Ativar serviços

# Ajustar permissões
sudo chown -R www-data:www-data /opt/arcadia

# Recarregar systemd
sudo systemctl daemon-reload

# Habilitar e iniciar serviços
sudo systemctl enable arcadia-suite
sudo systemctl enable arcadia-python
sudo systemctl start arcadia-suite
sudo systemctl start arcadia-python

# Verificar status
sudo systemctl status arcadia-suite
sudo systemctl status arcadia-python

12. Configurar Nginx (Proxy Reverso)

12.1 Instalar Nginx

sudo apt install -y nginx

12.2 Configurar Virtual Host

sudo nano /etc/nginx/sites-available/arcadia
server {
    listen 80;
    server_name seu-dominio.com.br;

    # Redirect HTTP to HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name seu-dominio.com.br;

    # SSL (usar certbot para gerar)
    ssl_certificate /etc/letsencrypt/live/seu-dominio.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seu-dominio.com.br/privkey.pem;

    # SSL Settings
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;

    # Logs
    access_log /var/log/nginx/arcadia.access.log;
    error_log /var/log/nginx/arcadia.error.log;

    # Tamanho máximo de upload (para migrações)
    client_max_body_size 500M;

    # Proxy para aplicação Node.js
    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }

    # WebSocket para Socket.IO
    location /socket.io/ {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # API Python (IA/Fiscal)
    location /api/python/ {
        proxy_pass http://127.0.0.1:8001/;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

12.3 Ativar configuração

sudo ln -s /etc/nginx/sites-available/arcadia /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

13. Certificado SSL (Let's Encrypt)

# Instalar Certbot
sudo apt install -y certbot python3-certbot-nginx

# Gerar certificado
sudo certbot --nginx -d seu-dominio.com.br

# Renovação automática (já configurada)
sudo certbot renew --dry-run

14. Configurar Firewall

# Instalar UFW
sudo apt install -y ufw

# Configurar regras
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Ativar firewall
sudo ufw enable
sudo ufw status

15. Backup Automático

15.1 Script de backup

sudo nano /opt/arcadia/scripts/backup.sh
#!/bin/bash
BACKUP_DIR="/var/backups/arcadia"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR

# Backup do banco
pg_dump -h localhost -U arcadia arcadia_suite | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# Backup dos arquivos de upload
tar -czf $BACKUP_DIR/uploads_$DATE.tar.gz /opt/arcadia/uploads

# Manter últimos 7 dias
find $BACKUP_DIR -type f -mtime +7 -delete

echo "Backup concluído: $DATE"

15.2 Agendar no cron

chmod +x /opt/arcadia/scripts/backup.sh
sudo crontab -e

# Adicionar linha (backup às 3h da manhã)
0 3 * * * /opt/arcadia/scripts/backup.sh >> /var/log/arcadia-backup.log 2>&1

16. Monitoramento

16.1 Logs em tempo real

# Aplicação Node.js
sudo journalctl -u arcadia-suite -f

# Serviço Python
sudo journalctl -u arcadia-python -f

# Nginx
sudo tail -f /var/log/nginx/arcadia.access.log
sudo tail -f /var/log/nginx/arcadia.error.log

16.2 Verificar saúde

# Status dos serviços
sudo systemctl status arcadia-suite
sudo systemctl status arcadia-python
sudo systemctl status postgresql
sudo systemctl status nginx

# Uso de recursos
htop
df -h
free -m

17. Primeiro Acesso

  1. Acesse: https://seu-dominio.com.br
  2. Faça login com credenciais iniciais:
    • Email: admin@arcadia.com.br
    • Senha: admin123 (altere imediatamente!)
  3. Configure seu tenant/empresa
  4. Configure integrações (ERPNext, WhatsApp, OpenAI)

18. Comandos Úteis

# Reiniciar aplicação
sudo systemctl restart arcadia-suite

# Ver logs
sudo journalctl -u arcadia-suite -n 100

# Atualizar código
cd /opt/arcadia
git pull origin main
npm install
npm run build
sudo systemctl restart arcadia-suite

# Executar migrações
npm run db:push

# Limpar cache
redis-cli FLUSHALL

19. Solução de Problemas

Aplicação não inicia

# Verificar logs
sudo journalctl -u arcadia-suite -n 50

# Verificar permissões
ls -la /opt/arcadia

# Testar manualmente
cd /opt/arcadia
node dist/index.js

Erro de conexão com banco

# Verificar PostgreSQL
sudo systemctl status postgresql
psql -h localhost -U arcadia -d arcadia_suite

# Verificar .env
cat /opt/arcadia/.env | grep DATABASE

WebSocket não conecta

# Verificar configuração Nginx
sudo nginx -t

# Verificar porta
netstat -tlpn | grep 5000

20. Estrutura de Módulos Instalados

Categoria Módulos
Inteligência Agent, Scientist, Knowledge, Automações, MCP, A2A
Comunicação XOS Inbox, Chat, Comunidades, XOS Central, NPS
Negócios CRM, Compass, Produção, Suporte, Valuation, Fisco, Contábil, People, ERP, Financeiro, Retail, Plus, Marketplace
Analytics Insights, Central APIs
Desenvolvimento IDE, Canvas, API Hub, API Tester, DocType/Page Builder, Engineering
Educação LMS
Operações Field Ops, Quality ISO, Assistência Técnica, Suppliers
Administração Admin, Home, Migration XOS, Super Admin

Total: 40+ módulos


Suporte


Arcádia Suite - O Office Estratégico da Empresa Moderna