
beaverhabits
Open-source, private, and portable Habit Tracker with charts & streaks.
beaverhabits
daya0576/beaverhabits:latest
Just deployed
/app/.user
Beaver Habit Tracker
Created by: @daya0576 - Henry Zhu. Thank you!
A self-hosted habit tracking app. Features:
- Easily export & import data via JSON
- See past performance on streaks
- See detailed streak & frequency information
- Leave per-day notes which are intelligently grouped and displayed per-habit
- Unlimited habits
- Private, offline data
- Dark mode
- Ability to Restrict deployment to a single user
- Ability to remove login flow entirely
- Great PWA support for iOS devices
Github Repo: https://github.com/daya0576/beaverhabits/
Website (Cloud version available for 9.90/lifetime): https://beaverhabits.com/
Deploy and Host
Clone the template. Env variables are already configured. Launch, assign a domain, and create a user account.
About Hosting
?
Why Deploy
? dude who made this template
Common Use Cases
Tracking how many time you cheat on your wife
Dependencies for
Cheating on your wife
Deployment Dependencies
Wife
Getting Started
Cloud
- Demo: https://beaverhabits.com/demo
- Login: https://beaverhabits.com
Self-Hosting
Unraid
Simply search for "Beaver Habit Tracker" in the Community Apps store!
Ship with Docker
docker run -d --name beaverhabits \
-u $(id -u):$(id -g) \
-e HABITS_STORAGE=USER_DISK \
-v ./beaver/:/app/.user/ \
-p 8080:8080 \
daya0576/beaverhabits:latest
Or Docker Compose:
services:
beaverhabits:
container_name: beaverhabits
user: 1000:1000 # User permissions of your docker or default user.
environment:
# See the note below to find all the environment variables
- HABITS_STORAGE=USER_DISK # DATABASE stores in a single SQLite database named habits.db. USER_DISK option saves in a local json file.
- [email protected] # Skip authentication
- INDEX_HABIT_DATE_COLUMNS=5 # Customize the date columns for the index page.
- ENABLE_IOS_STANDALONE=true
volumes:
- ./beaver/:/app/.user/ # Change directory to match your docker file scheme.
ports:
- 8080:8080
restart: unless-stopped
image: daya0576/beaverhabits:latest
P.S. The container starts as nobody to increase the security and make it OpenShift compatible. To avoid permission issues, ensure that the UID owning the host folder aligns with the UID of the user inside the container.
Options
Name | Description |
---|---|
HABITS_STORAGE(str) | The DATABASE option stores everything in a single SQLite database file named habits.db. On the other hand, the USER_DISK option saves habits and records in a local json file. |
FIRST_DAY_OF_WEEK(int) | By default, the first day of the week is set as Monday. To change it to Sunday, you can set it as 6 . |
MAX_USER_COUNT(int) | By setting it to 1 , you can prevent others from signing up in the future. |
ENABLE_IOS_STANDALONE(bool) | Experiential feature to enable standalone mode on iOS. The default setting is true . |
INDEX_SHOW_HABIT_COUNT(bool) | To display total completed count along with the habit name on the index page. The default setting is false . |
INDEX_HABIT_NAME_COLUMNS(int) | Customize the habit name column size to display for the index page. The default value is 5 . |
INDEX_HABIT_DATE_COLUMNS(int) | Customize the displayed dates for the index page. The default value is 5 . |
TRUSTED_EMAIL_HEADER(str) | Delegate authentication to an authenticating reverse proxy that passes in the user's details in HTTP headers, e.g. Cf-Access-Authenticated-User-Email . An existing account is required. |
TRUSTED_LOCAL_EMAIL(str) | Disables login page entirely. A new account with the specified email will be created if it does not exist. |
INDEX_HABIT_DATE_REVERSE(bool) | Reverse the order of dates to display (default value is false). |
UMAMI_ANALYTICS_ID(str) | Umami analytics tracking id. If left empty (default) no tracking snippet will be injected. |
DARK_MODE(bool) | Default: None for "auto" mode. |
Development
BeaverHabits favors uv as package management tool. Here is how to set up the development environment:
# Install uv and all the dependencies
uv venv && uv sync
# Start the server
./start.sh dev
Features
Checkout the wiki page for a full list of features, and vote on your most wanted feature.
Extensibility
- RESTful APIs
- Export & Import
- PWA for iOS & Android
Habit Management
- Daily notes/descriptions
- Reorder habits (manually or automatic)
- Organize Habits by Tag
- Periodic habits
- Measurable habits (WIP)
- Multiple states
Authentication
- Trusted Header SSO
- Bypass login page
Here are my table tennis training sessions over the past year ^^
Sponsor
Template Content
beaverhabits
daya0576/beaverhabits:latest