beaverhabits

Open-source, private, and portable Habit Tracker with charts & streaks.

Deploy beaverhabits

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

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

NameDescription
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 ^^

image

Sponsor

Buy Me A Coffee


Template Content

More templates in this category

View Template
Bugsink
Self-hosted Error Tracking. Sentry-SDK compatible

View Template
Litlyx
Modern, developer-friendly, cookiefree analytics tool. Alternative to Umami

View Template
Superset
An open-source modern data exploration and visualization platform.