Installation
Streaklet is distributed as a Docker container for easy deployment.
Prerequisites
- Docker and Docker Compose installed
- (Optional) Fitbit Developer Application for Fitbit integration
Installation Methods
1. Clone the Repository
2. Create Environment File
Edit .env and configure:
APP_TIMEZONE=America/Chicago
DB_PATH=/data/app.db
PORT=8080
# For Fitbit integration (optional)
FITBIT_CLIENT_ID=your_client_id
FITBIT_CLIENT_SECRET=your_client_secret
FITBIT_CALLBACK_URL=http://localhost:8080/api/fitbit/callback
APP_SECRET_KEY=your_32_byte_secret_key
3. Start the Application
Access at: http://localhost:8080
Pull Pre-Built Image
Run Container
Verify Installation
Check that the container is healthy:
Expected response:
First Launch
- Navigate to
http://localhost:8080 - You'll be redirected to the Profiles page
- A default profile is automatically created
- Start adding tasks and tracking your streaks!
Updating
Docker Compose
Docker CLI
docker pull ghcr.io/ptmetcalf/streaklet:latest
docker stop streaklet
docker rm streaklet
docker run -d --name streaklet [... same options as above ...]
Troubleshooting
Permission Errors
If you see "readonly database" errors, fix data directory permissions:
The hardened Docker image runs as a non-root user (uid 1000) for security.
Port Already in Use
Change the port mapping in docker-compose.yml or use a different port:
Database Migrations Failed
Manually run migrations:
Next Steps
- Configuration Guide - Environment variables and settings
- Quick Start Tutorial - Learn the basics
- Fitbit Setup - Connect your Fitbit device