HabitTrove is a gamified habit tracking application that helps you build and maintain positive habits by rewarding you with coins, which you can use to exchange for rewards.
Also, try TaskTrove:
Want to try HabitTrove before installing? Visit the public demo instance to experience all features without any setup required. (do not store personal info. Data on the demo instance is reset daily)
Creating Habits: Click the "Add Habit" button to create a new habit. Set a name, description, and coin reward.
Tracking Habits: Mark habits as complete on your dashboard. Each completion earns you the specified coins.
Wishlist: Add rewards to your wishlist that you can redeem with earned coins.
Statistics: View your progress through the heatmap and streak counters.
HabitTrove can be run using Docker in several ways, depending on your needs:
The easiest way to run HabitTrove is using our pre-built Docker images from DockerHub:
mkdir -p data backups
chown -R 1001:1001 data backups # Required for the nextjs user in container
# Generate a secure authentication secret
export AUTH_SECRET=$(openssl rand -base64 32)
echo $AUTH_SECRET
# Using docker-compose (recommended)
## Update the AUTH_SECRET environment variable in docker-compose.yaml
nano docker-compose.yaml
## Start the container
docker compose up -d
# Or using docker run directly
docker run -d \
-p 3000:3000 \
-v ./data:/app/data \
-v ./backups:/app/backups \ # Add this line to map the backups directory
-e AUTH_SECRET=$AUTH_SECRET \
dohsimpson/habittrove
Available image tags:
latest: Stable release version, recommended for most usersvX.Y.Z (e.g., v0.1.4): Specific version for reproducible deployments and rollbacksdev: Latest development build from the main branch, may contain unstable featuresChoose your tag based on needs:
latest for general production usev0.2.9) for reproducible deploymentsdev for testing new featuresNote on Volumes: The application stores user data in /app/data and backups in /app/backups inside the container. The examples above map ./data and ./backups from your host machine to these container directories. Ensure these host directories exist and have the correct permissions (chown -R 1001:1001 data backups).
If you want to build the image locally (useful for development):
# Build the Docker image
npm run docker-build
# Run the container
npm run docker-run
The application data will be persisted in the data directory in both cases.
To contribute to HabitTrove, you'll need to set up a development environment. Here's how to get started:
git clone https://github.com/dohsimpson/habittrove.git
cd habittrove
npm install --force
npm run setup:dev
npm run dev
Before contributing, make sure to run the test suite:
npm test
To build the project for production:
npm run build
This will create an optimized production build in the .next directory.
The project uses several tools to maintain code quality:
npm run lintnpm run typecheckRun these commands regularly during development to catch issues early.
We welcome feature requests and bug reports! Please open an issue. We do not accept pull request at the moment.
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
If you encounter any issues or have questions, please file an issue on the GitHub repository.
$ claude mcp add HabitTrove \
-- python -m otcore.mcp_server <graph>