O que o seu repositório precisa ter
A Satela só publica código que está no GitHub (repositórios públicos ou privados).
Dockerfile
Na raiz do repositório (ou em outra pasta, informando o caminho e a pasta de contexto no painel, útil em monorepo). Sem Dockerfile, a Satela tenta reconhecer projetos Next.js, Node, Django, FastAPI, Flask e sites estáticos.
- O app deve escutar em uma única porta, a do
EXPOSEdo Dockerfile (ou a que você informar no painel). A variável de ambientePORTtambém é passada ao app. - Rode como um usuário comum, se puder.
Procfile (opcional)
web: gunicorn config.wsgi --bind :$PORT
release: python manage.py migrate
worker: python tarefas.py
websubstitui o comando padrão do Dockerfile.releaseroda uma vez antes de cada troca de versão (bom para migrações).- Qualquer outra linha (ex.:
worker) vira um processo de fundo, sem endereço na internet.
Arquivo ENV (opcional)
Linhas NOME=valor com valores padrão que não são segredos. O que você definir no painel tem prioridade. Veja variáveis e segredos. HEALTHCHECK_PATH=/saude muda a rota usada para verificar se o app está bem.
Pasta de dados
O que precisa sobreviver a novas versões (um arquivo SQLite, uploads) deve ficar em /data. Todo o resto do app é recriado a cada versão. Se o app roda com um usuário comum, a pasta /data precisa pertencer a ele no Dockerfile (por exemplo mkdir /data && chown 10001 /data).
Saúde
Depois de subir a versão nova, a Satela faz uma requisição à rota de saúde (padrão /). Respostas abaixo de 500 contam como saudável; erro 5xx ou silêncio reprovam a versão, que então não vai ao ar. A espera máxima é de 2 minutos.