From 6d56faf0ed0fcb7e8a77ecabd752dde90d9ebc4d Mon Sep 17 00:00:00 2001 From: Jinjinov Date: Mon, 13 Jul 2026 23:25:21 +0200 Subject: [PATCH] Add openhabittracker blueprint --- .../openhabittracker/docker-compose.yml | 18 +++++++++++++++++ blueprints/openhabittracker/meta.json | 19 ++++++++++++++++++ .../openhabittracker/openhabittracker.png | Bin 0 -> 36538 bytes blueprints/openhabittracker/template.toml | 16 +++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 blueprints/openhabittracker/docker-compose.yml create mode 100644 blueprints/openhabittracker/meta.json create mode 100755 blueprints/openhabittracker/openhabittracker.png create mode 100644 blueprints/openhabittracker/template.toml diff --git a/blueprints/openhabittracker/docker-compose.yml b/blueprints/openhabittracker/docker-compose.yml new file mode 100644 index 000000000..31cebec51 --- /dev/null +++ b/blueprints/openhabittracker/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3" + +services: + openhabittracker: + image: jinjinov/openhabittracker:latest + ports: + - '8080' + environment: + AppSettings__UserName: ${OHT_USERNAME} + AppSettings__Email: ${OHT_EMAIL} + AppSettings__Password: ${OHT_PASSWORD} + AppSettings__JwtSecret: ${OHT_JWT_SECRET} + volumes: + - openhabittracker-data:/app/.OpenHabitTracker + restart: unless-stopped + +volumes: + openhabittracker-data: diff --git a/blueprints/openhabittracker/meta.json b/blueprints/openhabittracker/meta.json new file mode 100644 index 000000000..de635f7f6 --- /dev/null +++ b/blueprints/openhabittracker/meta.json @@ -0,0 +1,19 @@ +{ + "id": "openhabittracker", + "name": "OpenHabitTracker", + "version": "latest", + "description": "Take notes, plan tasks and track habits - free, ad-free, open source, with all data on your own server. Native apps for Windows, Linux, Android, iOS and macOS sync to it.", + "logo": "openhabittracker.png", + "links": { + "github": "https://github.com/Jinjinov/OpenHabitTracker", + "website": "https://openhabittracker.net", + "docs": "" + }, + "tags": [ + "productivity", + "notes", + "tasks", + "habits", + "self-hosted" + ] +} diff --git a/blueprints/openhabittracker/openhabittracker.png b/blueprints/openhabittracker/openhabittracker.png new file mode 100755 index 0000000000000000000000000000000000000000..92741bc1fd340f617ff0de2f4994445b2321735c GIT binary patch literal 36538 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 JP&u~!JIJ~c&k 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 S+>%7#A8mC5e2J>#t^Wt?-3n6x literal 0 HcmV?d00001 diff --git a/blueprints/openhabittracker/template.toml b/blueprints/openhabittracker/template.toml new file mode 100644 index 000000000..8aca131fa --- /dev/null +++ b/blueprints/openhabittracker/template.toml @@ -0,0 +1,16 @@ +[variables] +main_domain = "${domain}" +admin_password = "${password:24}" +jwt_secret = "${base64:48}" + +[config] +[[config.domains]] +serviceName = "openhabittracker" +port = 8_080 +host = "${main_domain}" + +[config.env] +OHT_USERNAME = "admin" +OHT_EMAIL = "admin@example.com" +OHT_PASSWORD = "${admin_password}" +OHT_JWT_SECRET = "${jwt_secret}"