ImplantaçãoGuia

Self-host com Docker Compose

A edição self-hosted é o mesmo produto na sua infraestrutura. Um repositório público tem um arquivo Compose e um .env.example; cada serviço baixa uma imagem publicada, então não há nada para compilar. Preencha três valores, suba o stack e crie a primeira conta.

12 min de leitura
O que você vai aprender
  • Subir uma instância funcionando em poucos comandos
  • Servir nos seus próprios domínios com HTTPS
  • Adicionar workers em outras máquinas
  • Atualizar com segurança e saber o que guardar no backup

O que roda

O stack é um punhado de serviços. A API aplica as próprias migrações do banco quando inicia, e os workers não precisam de porta de entrada — eles só acessam o banco.

ServiçoO que fazObrigatório
uiO app web que seus usuários abremsim
apiA API HTTP; aplica as migrações ao iniciarsim
workerRoda scripts, flows, SQL e o workbench de bancosim
scraper-engineAI Scraperssó se você usar
lspAutocompletar e diagnósticos no editornão
postgresO banco de dadosa menos que você traga o seu
Com o stack no ar, cada worker se apresenta e aparece na página Workers com as linguagens e os slots.

Instale

  1. Clone o repositório de deploy

    Ele tem só arquivos de deploy: o arquivo Compose, um chart Helm e o modelo de ambiente.

  2. Preencha os três valores obrigatórios

    POSTGRES_PASSWORD, DB_CREDENTIALS_KEY e SCRAPER_ENGINE_SECRET não têm valor padrão de propósito — um padrão embutido seria o mesmo segredo em toda instalação. O .env.example traz o comando que gera cada um.

  3. Carregue o perfil AppArmor do worker, se o host exigir

    No Ubuntu, Debian ou SUSE, cat /sys/module/apparmor/parameters/enabled imprime Y quando o AppArmor está ligado. Pular o perfil nesse caso impede o worker de iniciar, com um erro que cita o perfil.

  4. Suba e crie a primeira conta

    Rode docker compose up -d e abra http://localhost:8080. A primeira conta criada num banco vazio vira admin da instância.

Shellterminal
git clone https://github.com/talissonjunior16/waiso.git
cd waiso
cp .env.example .env      # fill in the three required values

# Hosts that enforce AppArmor (Ubuntu, Debian, SUSE) — once per host:
sudo install -m 0644 apparmor/waiso-worker /etc/apparmor.d/waiso-worker
sudo apparmor_parser -r -W /etc/apparmor.d/waiso-worker

docker compose up -d

Domínios e HTTPS

Para atender pessoas em outras máquinas, o Waiso precisa de três hostnames, um por serviço que o navegador acessa: o app web (porta 8080), a API (3000) e o serviço do editor por WebSocket (3001). Crie um registro DNS para cada um, coloque na frente um proxy reverso que termina o TLS e informe os endereços ao Waiso.

Caddyfile
waiso.example.com     { reverse_proxy 127.0.0.1:8080 }
api.waiso.example.com { reverse_proxy 127.0.0.1:3000 }
lsp.waiso.example.com { reverse_proxy 127.0.0.1:3001 }

Sem o hostname lsp tudo funciona, menos o autocompletar e os diagnósticos no editor de código.

Escale, atualize, faça backup

Mais workers

Suba mais workers com o mesmo .env em qualquer máquina que alcance o banco. Cada um aparece na aba Workers. Um PostgreSQL gerenciado também funciona: defina DATABASE_URL e remova o serviço postgres embutido.

Atualize

Shellterminal
# set WAISO_VERSION in .env first, or leave it unset for this release
docker compose pull && docker compose up -d --remove-orphans

As migrações rodam sozinhas quando a API nova inicia. Faça backup do banco antes: não há caminho de volta. --remove-orphans aposenta serviços que uma versão não traz mais.

Guarde duas coisas

  1. O banco de dados — tudo o que você criou.
  2. DB_CREDENTIALS_KEY — sem ela, um banco restaurado guarda credenciais que ninguém consegue descriptografar, e a licença precisa ser aplicada de novo. Guarde num lugar diferente da máquina onde ela roda.