A self hosted habit tracker app to track your fleeting life.
![](https://private-user-images.githubusercontent.com/6239652/331492565-0418fa41-8985-46ef-b623-333b62b2f92e.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwOTAwMzAsIm5iZiI6MTczOTA4OTczMCwicGF0aCI6Ii82MjM5NjUyLzMzMTQ5MjU2NS0wNDE4ZmE0MS04OTg1LTQ2ZWYtYjYyMy0zMzNiNjJiMmY5MmUuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDgyODUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDNkZGE3YjlhZDYyMWFmMGIwYTk0NThkZmZhZjc0ODcwNGExNmE3NjE4ZDIyZTAzYzVjMjk5MWY2NTk2NmMyMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.v4sErNdF6rhLbiJaLe1NodvcueduxN5j8V_2T3-yRzk)
![](https://private-user-images.githubusercontent.com/6239652/331492564-c0ce98cf-5a44-4bbc-8cd3-c7afb20af671.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwOTAwMzAsIm5iZiI6MTczOTA4OTczMCwicGF0aCI6Ii82MjM5NjUyLzMzMTQ5MjU2NC1jMGNlOThjZi01YTQ0LTRiYmMtOGNkMy1jN2FmYjIwYWY2NzEuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDgyODUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTk5YWY1NTc2NTFkNjNmZjg3NTQ0MGZiOWY1M2Y4NjU5NDNiNjYxMWIzMDEwNDk0YmJiMWUxNjA4ODllNDY4MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.yCb7ggkTBCP-n0Xby9TBchOdCjrnOirHSUqGq0TVYpM)
![](https://private-user-images.githubusercontent.com/6239652/331492575-516c19ca-9f55-4c21-9e6d-c8f0361a5eb2.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwOTAwMzAsIm5iZiI6MTczOTA4OTczMCwicGF0aCI6Ii82MjM5NjUyLzMzMTQ5MjU3NS01MTZjMTljYS05ZjU1LTRjMjEtOWU2ZC1jOGYwMzYxYTVlYjIuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDgyODUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTI2ZmRmMmQwYWRlMzJmYjk5Mjg2MWM1YjI3MmU5ZmRlNmMwZjFkZGUzZmMzOGM5ZGRjMmZhZDU4MDY2ZDljNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.GWPfFI0DjzHSVw3NmxxCOrQ2g_ZUOegvTvj-fnD8Lts)
- Demo: https://beaverhabits.com/demo
- Login: https://beaverhabits.com
Example:
docker run -d --name beaverhabits \
-e FIRST_DAY_OF_WEEK=0 \
-e HABITS_STORAGE=USER_DISK \
-e MAX_USER_COUNT=1 \
-v /path/to/host/directory:/app/.user/ \
-p 8080:8080 \
--restart unless-stopped \
daya0576/beaverhabits:latest
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. |
- Pages
- Index page
- Habit list page
- Habit detail page
- Last three months
- Calendar heatmap over years
- Storage:
- Session-based disk storage
- User-based disk storage
- User-based sqlite storage
- CICD:
- Custom domain
- Self-hosting option
- Unit tests & deployment pipeline
- Others:
- Export
- Import
- User management
- User timezone
- Native mobile app
- Habit calendar template, e.g. vacations