Configuration¶
Configure Tempo for your environment using configuration files or environment variables.
Configuration Methods¶
Tempo can be configured via:
- Configuration files (
appsettings.json) - For local development - Environment variables - For Docker deployments and production
Database Connection¶
Local Development (appsettings.json)¶
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=tempo;Username=postgres;Password=postgres"
}
}
Docker (Environment Variable)¶
ConnectionStrings__DefaultConnection="Host=postgres;Port=5432;Database=tempo;Username=postgres;Password=postgres"
Note: In Docker, use double underscores (__) for nested configuration keys.
Media Storage¶
Local Development (appsettings.json)¶
Docker (Environment Variables)¶
Elevation Calculation¶
Configure elevation smoothing thresholds:
Or via environment variables:
CORS Configuration¶
Allow specific origins for API access:
In Docker:
JWT Authentication¶
Important: Before deploying to production, you must set the JWT secret key.
Generate a Secure JWT Secret Key¶
Set in Docker Compose¶
JWT Configuration Options¶
JWT__SecretKey- JWT signing key (REQUIRED in production, minimum 32 characters)JWT__Issuer- JWT issuer (default: "Tempo")JWT__Audience- JWT audience (default: "Tempo")JWT__ExpirationDays- Token expiration in days (default: 7)
Security Requirements¶
- The JWT secret key should be at least 32 characters and cryptographically random
- Use HTTPS in production (required for secure cookie transmission)
- Change the default database password in production
- Store the JWT secret key securely (environment variables, secrets manager, etc.)
Environment Variables Reference¶
All configuration can be set via environment variables using the double underscore (__) notation for nested keys:
| Configuration Key | Environment Variable | Default |
|---|---|---|
ConnectionStrings:DefaultConnection |
ConnectionStrings__DefaultConnection |
- |
MediaStorage:RootPath |
MediaStorage__RootPath |
./media |
MediaStorage:MaxFileSizeBytes |
MediaStorage__MaxFileSizeBytes |
52428800 |
ElevationCalculation:NoiseThresholdMeters |
ElevationCalculation__NoiseThresholdMeters |
2.0 |
ElevationCalculation:MinDistanceMeters |
ElevationCalculation__MinDistanceMeters |
10.0 |
CORS:AllowedOrigins |
CORS__AllowedOrigins |
- |
JWT:SecretKey |
JWT__SecretKey |
- (REQUIRED in production) |
JWT:Issuer |
JWT__Issuer |
Tempo |
JWT:Audience |
JWT__Audience |
Tempo |
JWT:ExpirationDays |
JWT__ExpirationDays |
7 |
Next Steps¶
- Import your first workout
- Learn about production deployment