SparkyFitness mit einem Klick auf Pethost deployen
Ernährung, Training, Wasser und Körpermaße erfassen, eine Alternative zu MyFitnessPal
Was passiert
- Du meldest dich bei Pethost an oder legst ein Konto an, mit Passkey, GitHub oder Google.
- Noch keine Maschine? Du wählst einen Tarif, und wir bereiten eine für dich vor. Der Link wartet in deinem Browser, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei der App, und du klickst auf „Projekt erstellen“.
- In ein, zwei Minuten läuft die App unter eigener Adresse mit HTTPS. Ihre Secrets werden zufällig für sie erzeugt, und ihre Daten sind im nächtlichen Backup.
- Sie ist ein Projekt wie jedes andere: compose.yaml, .env, Logs und ein Terminal findest du im Panel, und dein Agent kann sie ändern, zurückrollen oder wiederherstellen.
Erste Schritte
Öffne die Adresse und registrier dich: Das erste Konto ist Admin. Füg dann DISABLE_SIGNUP=true in die .env des Projekts ein und deploye erneut, damit sich niemand sonst registrieren kann.
Was läuft
Die Vorlage ist diese compose.yaml und die Variablen, die sie in die .env des Projekts schreibt. Pethost führt die Datei so aus, wie sie geschrieben ist.
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:
