Faça o deploy de SparkyFitness no Pethost com um clique
Registre alimentação, exercícios, água e medidas corporais, uma alternativa ao MyFitnessPal
O que acontece
- Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
- Ainda não tem máquina? Você escolhe um plano, e nós preparamos uma para você. O link espera no seu navegador até ela ficar pronta.
- Novo projeto abre no app, e você clica em Criar projeto.
- Em um ou dois minutos o app está no ar no próprio endereço com HTTPS. Os segredos dele são gerados ao acaso, e os dados vão para o backup noturno.
- É um projeto como qualquer outro: o compose.yaml, o .env, os logs e um terminal ficam no painel, e seu agente pode alterá-lo, fazer rollback ou restaurá-lo.
Primeiros passos
Abra o endereço e cadastre-se: a primeira conta é a de administrador. Depois adicione DISABLE_SIGNUP=true ao .env do projeto e faça o deploy de novo, para que mais ninguém possa se cadastrar.
O que roda
O template é este compose.yaml e as variáveis que ele grava no .env do projeto. O Pethost roda o arquivo exatamente como está escrito.
services:
# The web app; its nginx sends /api and /uploads to the server.
sparkyfitness-frontend:
image: codewithcj/sparkyfitness:v1.8.0
restart: unless-stopped
environment:
SPARKY_FITNESS_FRONTEND_URL: ${URL}
SPARKY_FITNESS_SERVER_HOST: sparkyfitness-server
SPARKY_FITNESS_SERVER_PORT: 3010
depends_on:
- sparkyfitness-server
sparkyfitness-server:
image: codewithcj/sparkyfitness_server:v1.8.0
restart: unless-stopped
environment:
SPARKY_FITNESS_DB_HOST: sparkyfitness-db
SPARKY_FITNESS_DB_PORT: 5432
SPARKY_FITNESS_DB_NAME: sparkyfitness_db
SPARKY_FITNESS_DB_USER: sparky
SPARKY_FITNESS_DB_PASSWORD: ${DB_PASSWORD}
SPARKY_FITNESS_APP_DB_USER: sparky_app
SPARKY_FITNESS_APP_DB_PASSWORD: ${APP_DB_PASSWORD}
# Better Auth's address, trusted origins and secure cookies.
SPARKY_FITNESS_FRONTEND_URL: ${URL}
SPARKY_FITNESS_API_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
BETTER_AUTH_SECRET: ${AUTH_SECRET}
NODE_ENV: production
SPARKY_FITNESS_LOG_LEVEL: ERROR
SPARKY_FITNESS_SERVER_PORT: 3010
# The project's proxy and the web app's nginx.
SPARKY_FITNESS_TRUSTED_PROXY_HOPS: 2
# Open until the first account is made; the notes say how to close it.
SPARKY_FITNESS_DISABLE_SIGNUP: ${DISABLE_SIGNUP:-false}
volumes:
- backup:/app/SparkyFitnessServer/backup
- uploads:/app/SparkyFitnessServer/uploads
depends_on:
sparkyfitness-db:
condition: service_healthy
sparkyfitness-db:
image: postgres:18.3-alpine
restart: unless-stopped
environment:
POSTGRES_DB: sparkyfitness_db
POSTGRES_USER: sparky
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sparky -d sparkyfitness_db"]
interval: 5s
timeout: 5s
retries: 20
volumes:
backup:
uploads:
db:
