Deploying a Traggo App
Introduction
Traggo is a self-hosted time tracking tool with a clean web UI. This guide walks through containerizing Traggo, configuring credentials, persisting your data, and deploying it to Klutch.sh over HTTP.
Prerequisites
- GitHub repository containing your Traggo Dockerfile.
- Klutch.sh project ready in klutch.sh/app.
Project structure
.└── DockerfileSample Dockerfile
FROM traggo/server:latest
# Default Traggo portENV TRAGGO_PORT=3030EXPOSE 3030Required environment variables
TRAGGO_PORT– internal port (default3030).TRAGGO_USERNAME– initial admin username.TRAGGO_PASSWORD– initial admin password.TRAGGO_SECRET– secret for JWT and session signing (use a strong random string).
Optional environment variables
TRAGGO_LANGUAGE– default language (e.g.,en).TRAGGO_TIMEZONE– default timezone (e.g.,UTC).
Persistence
Store user data and entries on a volume:
- Mount path:
/opt/traggo/data - Size: match expected log and attachment growth
Networking
- Protocol: HTTP
- Internal port:
3030 - Users reach
https://example-app.klutch.shwhile Klutch.sh routes to3030in the container.
Health check (recommended)
curl -I http://localhost:3030Deployment on Klutch.sh
- Push your Dockerfile to GitHub.
- In klutch.sh/app, create a new app and choose GitHub as the source.
- Klutch.sh automatically detects the Dockerfile in the repository root.
- Select HTTP traffic and set the internal port to
3030. - Add environment variables for
TRAGGO_USERNAME,TRAGGO_PASSWORD,TRAGGO_SECRET, and any locale/timezone preferences. Mark sensitive values as secrets. - Attach a persistent volume at
/opt/traggo/datasized for your workspace. - Deploy. Sign in with the admin credentials you configured and set up your teams and projects.
Verification
-
UI: open
https://example-app.klutch.shand confirm the login screen appears. -
Quick API check (if enabled):
Terminal window curl -I https://example-app.klutch.sh
Next steps
- Rotate admin credentials after first login.
- Configure backups for the data volume.
- Set timezone and language defaults for your team.