Self-hosted project manager with a Spring Boot API, PostgreSQL database, and Vite/React frontend.
backend/ Spring Boot API
frontend/ React frontend served by nginx
cd backend
./mvnw test
cd ../frontend
npm run lint
npm run build- Copy
.env.exampleto.env. - Replace all passwords.
- Start the stack:
docker compose up -d --buildThe frontend listens on localhost:3001 and proxies /api plus /actuator/health to the backend container.
For your Cloudflare Tunnel, point projectmanager.patreek.no to:
service: http://localhost:3001Deploy updates with:
./deploy.sh