Work/BodyTrack
Live on VPS

BodyTrack

Free weight loss tracking app supporting study participants. Self-hosted, containerized, zero downtime.

TypeFree app
StatusLive on VPS
Built bySolo
Timeline2024–present
StackNode.jsPostgreSQLDockerCaddy
The Problem

Weight loss study participants needed a simple way to log daily check-ins — weight, meals, notes. The requirement was free and reliable, with no third-party data sharing. That meant self-hosted.

What I Built
Node.js REST API handling user entries and auth
PostgreSQL database in its own container with persistent volume
Caddy reverse proxy handling HTTPS automatically via ACME/Let's Encrypt
Full Docker Compose setup — one command to deploy or restart the entire stack
Health check endpoints so monitoring knows when a container goes down
// docker-compose.yml
services:
app:
image: bodytrack_app
ports: ["3000:3000"]
db:
image: postgres:15
caddy:
image: caddy:2
Key Technical Decisions

Docker Compose was the right call for a solo-maintained VPS app — the entire stack (app + db + proxy) starts with one command and survives reboots. Caddy over Nginx because it handles TLS automatically with no cert renewal scripts to maintain.

Have a workflow that needs this kind of system?

If you want something built the same way — end to end, shipped, in production — let's talk.

Work with me →
NoctloreACWDI