This guide covers common issues and their solutions for the Stats for Strava Configuration Tool.
Q: Will this tool work with my existing Stats for Strava setup?
A: Yes! Just mount your config directory and point the tool to your config files.
Q: Can I run this without Docker?
A: Yes, but Docker is easier. See Installation Guide for standalone instructions.
Q: Do I need to keep this running all the time?
A: No! Only run it when you want to edit configuration. Stop the container when done.
Q: What happens if I make a mistake?
A: The tool validates all inputs before saving. Automatic backups are also created before each save, so you can restore from backups if needed.
Q: Does this replace the Stats for Strava app?
A: No! This is just a configuration editor. You still need Statistics for Strava to import and display your data.
Q: Why do I need two .env files?
A: Docker Compose expands ${VARIABLE} syntax which breaks bcrypt password hashes (they contain $2b$ prefixes). Keeping authentication variables in .env.config-tool and mounting it directly avoids this issue.
Q: How do I reset my password if I forgot it?
A: Generate a reset token and add it to .env.config-tool, then use the reset password page. See AUTHENTICATION.md for detailed instructions.
Q: Can I disable authentication?
A: No, authentication is required for security. This tool modifies your Stats for Strava configuration, so unauthorized access could break your setup.
Q: How long do sessions last?
A: Default is 7 days (604800 seconds). Configure with SESSION_MAX_AGE in .env.config-tool.
Q: Can multiple people use this at once?
A: Not recommended - the tool is designed for single-user access and doesn't have conflict resolution.
Q: Where are my configuration files stored?
A: In your Stats for Strava config directory, mounted via Docker volumes at /data/config.
Q: Where are backup files saved?
A: In <config-path>/backups/ folder (auto-created). Example: /data/config/backups/config-20260116-143025.yaml
Causes:
- Wrong config path in Settings
- File doesn't exist
- Permission issues
Solutions:
- Check your config path in Settings > Files
- For Docker: Use container path (e.g.,
/data/config), not host path - Verify the file exists:
docker exec stats-for-strava-config-tool ls -la /data/config - Check file permissions
Solutions:
- Required fields must be filled (marked with *)
- Check value formats (dates must be YYYY-MM-DD, etc.)
- Hover over field descriptions for format requirements
Solutions:
- Click the main Save button (individual edits are held in memory)
- Check file path in Settings > Files
- Verify write permissions on the settings directory
Solutions:
- Restart your Stats for Strava containers after saving
- Verify you're editing the correct config file
- Check Stats for Strava logs for configuration errors
Causes:
- Container doesn't have write access to volumes
- File/directory permissions incorrect on host
- UID/GID mismatch
Solutions:
- Ensure the container has write access to mounted volumes
- Check file/directory permissions on the host:
ls -la ./config
- For
.env.config-tool: Verify UID/GID 1000 can write to the file - Fix ownership:
sudo chown -R 1000:1000 ./config
Causes:
.env.config-toolfile not writable- Password hash not saved
- Container can't write to env file
Solutions:
- Check
.env.config-toolfile is writable by the container - Verify
ADMIN_PASSWORD_HASHwas written to.env.config-tool - Check container logs:
docker logs stats-for-strava-config-tool - On Windows: Ensure file isn't read-only
Causes:
- SESSION_SECRET not set or changed
- Session expired (default 7 days)
Solutions:
- Verify
SESSION_SECRETis set in.env.config-tool(not the default placeholder) - Don't change
SESSION_SECRETafter users are logged in (invalidates existing sessions) - Check
SESSION_MAX_AGEvalue (default: 604800 seconds = 7 days)
Solutions:
- Generate a reset token: See AUTHENTICATION.md for instructions
- Verify
.env.config-toolis writable soPASSWORD_RESET_TOKENcan be saved - Check container logs for permission errors
Causes:
- Port conflict
- Missing volumes
- Missing env file
Solutions:
- Check port 8092 isn't already in use:
Change to
netstat -an | grep 80928093:80if needed - Verify volume paths exist on your host system
- Check Docker logs:
docker logs stats-for-strava-config-tool - Ensure
.env.config-toolexists (copy from.env.config-tool.example)
Solutions:
- Check container logs:
docker logs stats-for-strava-config-tool - Verify network connectivity
- Ensure all required environment variables are set
Causes:
- Container not running
- Wrong proxy_pass address
- Network issues
Solutions:
- Verify container is running:
docker ps | grep config-tool - Check container accessibility:
curl http://localhost:8092 - Verify proxy_pass IP address is correct
- Check nginx error logs:
sudo tail -f /var/log/nginx/strava-config-tool-error.log
Solutions:
- Ensure domain points to your server IP
- Verify certificates exist:
sudo ls -la /etc/letsencrypt/live/your-domain.com/
- Check certificate expiration:
sudo certbot certificates - Renew if needed:
sudo certbot renew
Solutions:
- Increase timeout values in nginx config
- Check firewall rules for ports 80, 443, and 8092
- Verify docker network allows external access
See SFS Console Setup Guide for console-specific troubleshooting.
- Enable in Settings > User Interface Settings
- Check runner service is running
- Verify runner container is healthy
- Check
STATS_CMD_RUNNER_URLenvironment variable
- Check helper container logs
- Verify target container name is correct
- Ensure Statistics for Strava container is running
This appears in runner or helper container logs when LOG_FILE is not set and the server tries to create its default log directory (/var/log/strava-runner/ or /var/log/strava-helper/) under /var/log/, which is owned by root.
Solution: Add LOG_FILE to the environment section of each service, pointing to a path inside an already-mounted volume:
stats-cmd-runner:
environment:
- LOG_FILE=/var/log/stats-cmd-runner/runner.log # volume: ./stats-cmd-runner-logs
stats-cmd-helper:
environment:
- LOG_FILE=/var/log/stats-cmd/helper.log # volume: ./stats-cmd-logs (parent dir)Command execution logs (per-run .log files) are unaffected — those use COMMAND_LOGS_DIR which is set correctly already.
Docker logs are your first stop for debugging:
# Config Tool logs
docker logs stats-for-strava-config-tool
# Runner logs (if using SFS Console)
docker logs stats-cmd-runner
# Helper logs (if using SFS Console)
docker logs stats-cmd-helperAdd to your .env.config-tool:
NEXT_PUBLIC_ENABLE_DEBUG_LOGS=true
Restart the container to enable verbose logging.
If you can't resolve an issue:
- Check existing issues: GitHub Issues
- Include in your report:
- Version you're running
- Docker logs
- Steps to reproduce
- Expected vs actual behavior
- Installation Guide - Setup instructions
- Features Guide - Learn about all features
- SFS Console Setup - Console troubleshooting
- Authentication Guide - Auth-specific help