Wdróż aplikację SparkyFitness na Pethost jednym kliknięciem
Dziennik posiłków, treningów, wody i pomiarów ciała, alternatywa dla MyFitnessPal
Co się dzieje
- Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
- Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
- Okno „Nowy projekt” otwiera się na tej aplikacji, a ty klikasz „Utwórz projekt”.
- Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
- To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.
Pierwsze kroki
Otwórz adres projektu i zarejestruj się: pierwsze konto jest kontem administratora. Potem dodaj DISABLE_SIGNUP=true do pliku .env projektu i wdróż go ponownie, żeby nikt inny nie mógł się zarejestrować.
Co uruchamia
Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.
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:
