Per chi mastica Docker e terminale

Ospita SweatMate tu stesso

Nessun vincolo. Se vuoi tenere calendario, dati clienti e infrastruttura sotto il tuo pieno controllo, puoi far girare SweatMate sul tuo server invece che sul nostro.

SweatMate è pensato, per impostazione predefinita, come servizio ospitato — ci pensiamo noi a server, backup e aggiornamenti. Ma l'architettura è containerizzata da zero con Docker Compose proprio perché non ci piace l'idea del vendor lock-in: se un giorno vuoi gestire tu l'infrastruttura, i tuoi backup, o semplicemente tenere i dati dei tuoi clienti su un server che controlli tu, puoi farlo.

Questa pagina è una panoramica ad alto livello, pensata per capire se il self-hosting fa al caso tuo prima di metterti al lavoro. La guida completa, con tutti i passaggi, i file di configurazione e le variabili d'ambiente, vive nel repository di SweatMate.

Lo stack tecnico

Cosa gira effettivamente sotto SweatMate

Backend
Go (API core, auth, chat) + Python (billing, prenotazioni, wallet)
Frontend
Next.js — puoi ospitarlo separatamente (es. Netlify/Vercel) o insieme al resto
Database
PostgreSQL (dati principali) + MongoDB (chat)
Reverse proxy
Caddy, con certificati TLS automatici
Orchestrazione
Docker Compose

Come funziona, a grandi linee

1. Un server con Docker

Una VM economica (2 vCPU / 4GB RAM sono più che sufficienti per iniziare) con Docker e Docker Compose installati. Qualsiasi provider va bene — Hetzner, DigitalOcean, un server già tuo.

2. Clona e configura

Clona il repository, copia i file .env.example in .env per ciascun servizio (root, backend, backend-python, frontend) e imposta le tue variabili: credenziali database, JWT secret, credenziali Google OAuth se vuoi il login con Google.

3. Avvia lo stack

docker compose -f docker-compose.prod.yml up -d --build avvia PostgreSQL, MongoDB, i due backend e Caddy. Le migrazioni del database partono automaticamente al primo avvio.

4. DNS e HTTPS

Punta un record A del tuo dominio all'IP del server. Caddy si accorge che il dominio risolve e richiede automaticamente un certificato TLS — nessuna configurazione manuale di certbot o simili.

5. Aggiornamenti

Per aggiornare, esegui un git pull e ripeti la build del compose. Le migrazioni del database sono incluse nell'avvio, quindi uno schema più recente viene applicato da solo.

Il self-hosting è pensato per chi ha già dimestichezza con Docker, un server e la gestione di un dominio — non offriamo supporto operativo su istanze self-hosted allo stesso livello del servizio ospitato. Se preferisci non pensare a server e backup, resta comunque il piano gratuito ospitato: vedi i prezzi.