Hospede seu SaaS num único servidor, sem a conta de uma plataforma de nuvem
Atualizado em
O Seed roda num servidor Linux que você aluga, com Docker Compose tanto em desenvolvimento quanto em produção, e um comando faz o deploy. Você prepara o servidor uma vez seguindo os passos escritos, e depois cada deploy é só esse comando.
- Traefik na frente, com certificados automáticos
- Postgres e Valkey ao lado dos apps
- Garage, um armazenamento de arquivos compatível com S3, para imagens e PDFs nas notas e para fotos de perfil. Os uploads passam por links assinados e são verificados pelo conteúdo. Fotos, inclusive HEIC, viram versões leves em AVIF e WebP, sem localização e outros metadados
- VictoriaMetrics, VictoriaLogs e Grafana, com alertas
- Um backup diário e criptografado do banco com restic, que você ativa se quiser, e um passo a passo de restauração
- Imagens de release publicadas pelo CI quando você envia uma tag de versão
O deploy copia o projeto para o servidor por SSH e o inicia com o Compose; a cada deploy, um serviço de execução única aplica as migrações do banco de dados. O Traefik fica na frente e pede ao Let's Encrypt o certificado de cada host.
Postgres, Valkey, um armazenamento de arquivos S3, métricas, logs e painéis com alertas rodam ao lado dos apps, e vários produtos podem dividir um servidor atrás do mesmo proxy.
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
Preciso de Kubernetes?
Não. O Docker Compose num único servidor roda o produto inteiro, em desenvolvimento e em produção.
Vários produtos podem dividir um servidor?
Sim. Eles dividem um proxy, e cada um mantém o próprio diretório, banco de dados e dados; só divida um servidor entre produtos em que você confia por igual.
Tem backup?
Sim. Um backup diário criptografado do banco de dados com restic, opcional, com instruções escritas de restauração.
O Seed roda no Node ou no Bun?
Ainda não. Hoje o Seed roda no Deno, e a mudança para rodar no Deno, no Node e no Bun está em andamento (#623). Veja o plano de runtimes na página de recursos.