Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added templates/habittrove/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added templates/habittrove/assets/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions templates/habittrove/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { Output, randomString, Services } from "~templates-utils";
import { Input } from "./meta";

export function generate(input: Input): Output {
const services: Services = [];
const authSecret = randomString(32);

services.push({
type: "app",
data: {
serviceName: input.appServiceName,
source: {
type: "image",
image: input.appServiceImage,
},
env: [`AUTH_SECRET=${authSecret}`].join("\n"),
domains: [
{
host: "$(EASYPANEL_DOMAIN)",
port: 3000,
},
],
mounts: [
{
type: "volume",
name: "data",
mountPath: "/app/data",
},
{
type: "volume",
name: "backups",
mountPath: "/app/backups",
},
],
},
});

return { services };
}
69 changes: 69 additions & 0 deletions templates/habittrove/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: HabitTrove
description:
HabitTrove is a self-hosted habit and chore tracker that pays out virtual
coins for completed habits, which can then be redeemed against a wishlist you
define. It supports multiple household members with their own PINs, tracks
streaks and completion history, and stores everything in flat JSON files
rather than a database, so there is nothing extra to provision.
instructions:
Open the app URL and pick the "admin" user from the first-run user picker (no
password is required until you set one). From Settings you can add more
household members, set up habits and the coin wishlist, and secure each
profile with its own password.
changeLog:
- date: 2026-07-13
description: first release
links:
- label: GitHub
url: https://github.com/dohsimpson/HabitTrove
contributors:
- name: Ahson Shaikh
url: https://github.com/Ahson-Shaikh
schema:
type: object
required:
- appServiceName
- appServiceImage
properties:
appServiceName:
type: string
title: App Service Name
default: habittrove
appServiceImage:
type: string
title: App Service Image
default: dohsimpson/habittrove:v0.2.31
benefits:
- title: Coin-Based Rewards
description:
Completing a habit pays out coins that can be redeemed against a wishlist,
turning habit-building into a small game instead of a bare checklist.
- title: No Database to Manage
description:
All data is stored in flat JSON files inside a single data volume, so
there is no separate database service to provision or back up.
- title: Built for Households
description:
Multiple family members can each have their own PIN-protected profile,
habits, and wishlist under one shared instance.
features:
- title: Streaks and History
description:
Every habit tracks its completion history and current streak, so progress
is visible at a glance.
- title: Wishlist Redemption
description:
Define rewards with a coin cost and redeem earned coins against them
directly from the app.
- title: Automatic Backups
description:
A daily backup of the JSON data store is written to a separate backups
volume automatically.
- title: Multi-Language UI
description:
The interface is available in multiple languages, selectable per user.
tags:
- Habit Tracker
- Productivity
- Self-Hosted
- Household