O que o Zelie faz
Apps, os bancos de dados que eles usam e servidores de jogos em um servidor Linux, e o que mantém tudo rodando. Cada parte em resumo; a documentação tem todos os detalhes.


Apps
Um app vem do GitHub, de uma imagem de container ou dos seus próprios arquivos para Node.js, Python, Bun, Deno ou Java.
- Conectar o GitHub cria um GitHub App na sua própria conta, com acesso só aos repositórios que você escolher
- Variáveis, comuns ou secretas; os builds as recebem sem gravá-las na imagem
- Volumes que sobrevivem aos deploys, cada um com um limite de tamanho que você pode aumentar
- Limites de memória e CPU, logs ao vivo e métricas guardadas por um dia


Builds e deploys
Um repositório com Dockerfile usa esse Dockerfile no build; sem ele, o Railpack descobre como fazer o build. Os testes de um projeto Node rodam a cada build novo, sem rede, e um teste que falha mantém a versão antiga.
- Com um domínio, a versão nova inicia ao lado da antiga e recebe tráfego depois da verificação de saúde
- Sem domínio, ou com volumes, a antiga para primeiro, para que nunca rodem duas cópias ao mesmo tempo
- As últimas cinco versões mantêm a imagem, então um rollback leva um ou dois segundos
- Depois de cinco crashes em dez minutos, um app fica parado e o painel diz o motivo


Servidores de jogos
Os servidores de jogos rodam a partir de eggs do Pterodactyl e do Pelican: Minecraft, Rust, Valheim, Palworld, Counter-Strike 2 e outros da lista, ou qualquer outro egg pelo link.
- Um console ao vivo com cores, as últimas 500 linhas, uma linha de comando com histórico, filtros e comandos rápidos
- Arquivos no navegador com editor, e os mesmos arquivos por SFTP
- Portas de um conjunto que você configura uma vez; os jogadores se conectam direto ao servidor
- Sem porta pública para um servidor atrás de um proxy; servidores no mesmo grupo de rede se alcançam pelo nome
- Agendamentos, backups, clones e atualizações da Steam quando ninguém está jogando
- Quando um servidor cai, o Zelie lê as últimas linhas dele e diz o motivo


Jogadores
Para Rust e Minecraft, e como uma lista simples para alguns outros jogos da Steam.
- Quem está online, com ping e tempo online
- Entradas e saídas guardadas por 30 dias, o chat por 7, com busca
- Kick e banimento com motivo; um banimento pode terminar sozinho
- Notas sobre jogadores e um registro do que os administradores fizeram
- Whitelist e operadores no Minecraft, owners e moderadores no Rust, e banimentos por nome, SteamID ou IP, com o servidor rodando ou parado
- No Rust: grupos, permissões e plugins do Oxide e do Carbon, e ferramentas RCON como mensagens, silenciar e teleportar
- Slots no Rust que acompanham quem está online e na fila, se você ativar


Redes privadas
Cada app e cada servidor de jogo tem uma rede própria. Um administrador pode colocar alguns deles num grupo de rede: os membros se alcançam pelo nome em todas as portas, TCP e UDP, e todo o resto continua fechado.
- Entrar ou sair vale na hora; nada reinicia
- Um servidor de jogo pode ser criado sem porta pública, e aí só o grupo dele o alcança
- O acesso a um banco de dados no host continua por app; um grupo não o abre para os outros
- Um proxy Velocity configura a cada início os servidores Paper e Purpur atrás dele: encaminhamento moderno, a lista de servidores e um segredo compartilhado
Como configurar: Network groups e Minecraft network.
Bancos de dados
PostgreSQL 18 e 17, MariaDB 11.8 e 10.11 e Redis 8, cada um no próprio container com o próprio volume. Nenhum recebe porta pública.
- Vincule um deles a um app ou a um servidor de jogo e ele recebe
DATABASE_URLouREDIS_URL - Versões de correção recebem backup e depois são trocadas; uma versão principal passa para um volume novo, e o antigo fica se algo falhar
- Uma aba Data somente leitura, com tabelas, filtros, busca e exportação em CSV
- Ferramentas de desktop como o TablePlus se conectam por um túnel SSH


Backups
Os bancos de dados recebem backup toda noite às 3:00, guardado por sete dias, a menos que você mude isso. Apps e servidores de jogos também podem ter backup em horário programado.
- Comprimidos e criptografados no servidor, com um arquivo de recuperação que permite que outro servidor os abra
- Cópias em qualquer armazenamento compatível com S3, guardadas por 30 dias por padrão
- Uma restauração primeiro faz backup do que já está lá e o coloca de volta se a restauração falhar


Domínios e HTTPS
Dê um domínio a um app e o proxy faz o roteamento. Em uma instalação com domínio, os certificados vêm do Let’s Encrypt; atrás de um Cloudflare Tunnel, a Cloudflare cuida do HTTPS. O túnel já rodou em um servidor real; o Let’s Encrypt, por enquanto, só contra um substituto de teste.
Atualizações
O Zelie se atualiza com um clique, e apps, bancos de dados e servidores de jogos continuam rodando enquanto isso. Se você quiser, uma rodada toda noite às 04:30 faz o resto, e espera enquanto um backup, build ou deploy estiver rodando.
- A versão de correção do próprio Zelie
- Versões de segurança do Node, usadas na hora e refeitas a partir do mesmo commit
- Novos builds de tags de imagem e de banco de dados que trazem uma versão, com backup antes
- Correções para pacotes vulneráveis em projetos npm, pnpm e Yarn 1, testadas em um branch e mescladas, ou abertas como pull request
- Versões principais esperam aprovação; uma atualização automática precisa ficar de pé por 60 segundos, ou a antiga volta


Fechado por padrão
- O proxy, o painel e o servidor SFTP rodam cada um com seu próprio usuário sem privilégios
- O núcleo roda como root, mas não tem porta de rede: ele só responde em um socket Unix
- Os containers usam namespaces de usuário, então o root dentro de um deles é um usuário sem privilégios no host
- Os bancos de dados nunca recebem porta pública
- Os segredos são selados no momento em que são salvos, e o painel não consegue lê-los de volta
O que um servidor envia para a Caria Core, e o que ele nunca envia: Licença e privacidade.
Subusuários
Convide alguém com um link e escolha o que a pessoa pode fazer em cada serviço. Ela entra com a própria senha e uma segunda etapa, que toda conta precisa ter.
- Permissões uma a uma, como o console, ligar e desligar, arquivos, backups e deploys, ou a partir dos modelos de leitor, moderador e administrador
- Ninguém pode dar mais do que tem, e um serviço que não foi dado a alguém nem aparece para essa pessoa
- A licença, as atualizações, as portas e as chaves ficam com os donos
- Toda mudança em um serviço fica no registro de atividades, com quem a fez
- Desativar uma conta encerra a sessão dela em todo lugar, incluindo as chaves de console e SFTP
Interface
Cinco temas, uma cor de destaque, densidade e tamanho do texto, salvos na conta para que todo dispositivo fique igual. Funciona no celular. Por enquanto, o único idioma é o inglês. Os serviços fixados ficam no topo da página inicial e do menu lateral, e Ctrl+K (Cmd+K no Mac) leva a qualquer serviço, aba ou configuração.
Ainda não
- Vários servidores gerenciados a partir de um só painel
Instalar o Zelie
O Zelie está em fase inicial de desenvolvimento, e o Free está aberto a todos: crie uma conta e instale em um servidor seu. Pro e Business vêm depois: o Pro também para um servidor seu, o Business para quem vende hospedagem.