Self-hosting

Implante o Zoen na sua própria infraestrutura com Docker ou Kubernetes.

Set Up with Cursor

Requisitos

RecursoPequenoPadrãoProdução
CPU2 núcleos4 núcleos8+ núcleos
RAM12 GB16 GB32+ GB
Armazenamento20 GB SSD50 GB SSD100+ GB SSD
Docker20.10+20.10+Latest

Pequeno: Desenvolvimento, testes, usuário único (1–5 usuários) Padrão: Times (5–50 usuários), cargas moderadas Produção: Times grandes (50+ usuários), alta disponibilidade, execução pesada de workflows

Os requisitos de recursos são impulsionados pela execução de workflows (sandboxing com isolated-vm), processamento de arquivos (parsing de documentos em memória) e operações vetoriais (pgvector). A memória costuma ser o fator limitante, e não a CPU. A telemetria de produção mostra que o app principal usa 4–8 GB em média, com picos de até 12 GB sob carga pesada.

Início rápido

git clone https://github.com/ZoenSpace/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d

Abra http://localhost:3000

Opções de implantação

Arquitetura

ComponentePortaDescrição
simstudio3000Aplicação principal
realtime3002Servidor WebSocket
db5432PostgreSQL com pgvector
migrations-Migrações do banco (roda uma vez)

Common Questions

No mínimo você precisa de 2 núcleos de CPU, 12 GB de RAM, 20 GB de armazenamento SSD e Docker 20.10 ou posterior. A memória costuma ser o fator limitante por causa da execução de workflows (sandboxing com isolated-vm), processamento de arquivos e operações vetoriais (pgvector).
O Zoen usa PostgreSQL 17 com a extensão pgvector para busca por similaridade vetorial. O setup Docker usa a imagem pgvector/pgvector:pg17, que já vem com a extensão vector pré-instalada.
Três segredos são obrigatórios: BETTER_AUTH_SECRET (autenticação), ENCRYPTION_KEY (criptografia de dados) e INTERNAL_API_SECRET (auth entre serviços). Gere cada um com openssl rand -hex 32. Você também precisa definir NEXT_PUBLIC_APP_URL e BETTER_AUTH_URL com o seu domínio.
O serviço realtime é um servidor WebSocket dedicado que roda na porta 3002. Ele cuida da comunicação em tempo real para recursos como atualizações ao vivo da execução de workflows. Tem limite de 1 GB de memória e exige a própria configuração de DATABASE_URL e BETTER_AUTH_SECRET.
O container de migrations roda uma vez na inicialização (restart: no) e executa bun run db:migrate para aplicar mudanças de schema. Ele depende do banco estar saudável antes de rodar e precisa concluir com sucesso antes da aplicação principal iniciar.
Sim. O Zoen oferece suporte a Ollama para inferência local. Use docker-compose.ollama.yml em vez de docker-compose.prod.yml. Há perfis com GPU (com suporte NVIDIA) e só CPU, e ele baixa automaticamente gemma3:4b como modelo inicial.

On this page