From 8b23ad129f1892c7288ac683affc5987dc35c451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jainil=20Prajapati=20=F0=9F=AA=90?= <86187588+enough-jainil@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:21:55 +0530 Subject: [PATCH] Add Habitica entry to meta.json (#228) * Add Habitica entry to meta.json - Introduced Habitica, a productivity app that gamifies habit tracking, with a detailed description, logo, and relevant links. - Updated tag formatting for consistency across entries. * Add GitLab CE entry to meta.json - Introduced GitLab Community Edition with a detailed description, logo, and relevant links. - Updated tag formatting for consistency across entries. * Refactor Habitica blueprint to use client-server architecture with MongoDB volume and simplified email configuration --- blueprints/habitica/docker-compose.yml | 33 +++++++++++++++++++++++++ blueprints/habitica/image.png | Bin 0 -> 12523 bytes blueprints/habitica/template.toml | 24 ++++++++++++++++++ meta.json | 32 ++++++++++++++++++++---- 4 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 blueprints/habitica/docker-compose.yml create mode 100644 blueprints/habitica/image.png create mode 100644 blueprints/habitica/template.toml diff --git a/blueprints/habitica/docker-compose.yml b/blueprints/habitica/docker-compose.yml new file mode 100644 index 00000000..af226516 --- /dev/null +++ b/blueprints/habitica/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.8" + +services: + server: + image: docker.io/awinterstein/habitica-server:latest + restart: unless-stopped + depends_on: + - mongo + environment: + - NODE_DB_URI=mongodb://mongo/habitica + + client: + image: docker.io/awinterstein/habitica-client:latest + restart: unless-stopped + depends_on: + - server + ports: + - "80" + + mongo: + image: docker.io/mongo:latest + restart: unless-stopped + command: ["--replSet", "rs", "--bind_ip_all", "--port", "27017"] + healthcheck: + test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet + interval: 10s + timeout: 30s + retries: 30 + volumes: + - habitica-mongo-data:/data/db + +volumes: + habitica-mongo-data: {} diff --git a/blueprints/habitica/image.png b/blueprints/habitica/image.png new file mode 100644 index 0000000000000000000000000000000000000000..46bbc6e174fc08057aec62d7a4a13c0241de06a7 GIT binary patch literal 12523 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 X+7m7ZtUdq4fFdugECu~!9Q1zx9j6gK literal 0 HcmV?d00001 diff --git a/blueprints/habitica/template.toml b/blueprints/habitica/template.toml new file mode 100644 index 00000000..3888ae24 --- /dev/null +++ b/blueprints/habitica/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" +mail_password = "${password:32}" + +[config] +[[config.domains]] +serviceName = "client" +port = 80 +host = "habitica.${main_domain}" + +[config.env] + +BASE_URL="https://habitica.${main_domain}" +INVITE_ONLY="false" +EMAIL_SERVER_URL="mail.example.com" +EMAIL_SERVER_PORT="587" +EMAIL_SERVER_AUTH_USER="mail_user" +EMAIL_SERVER_AUTH_PASSWORD="${mail_password}" + +[[config.mounts]] +serviceName = "mongo" +type = "volume" +source = "habitica-mongo-data" +target = "/data/db" \ No newline at end of file diff --git a/meta.json b/meta.json index 928546d9..c8188f3c 100644 --- a/meta.json +++ b/meta.json @@ -345,6 +345,19 @@ "project-management" ] }, + { + "id": "gitlab-ce", + "name": "GitLab CE", + "version": "latest", + "description": "GitLab Community Edition is a free and open source platform for managing Git repositories, CI/CD pipelines, and project management.", + "logo": "gitlab-ce.svg", + "links": { + "github": "https://gitlab.com/gitlab-org/gitlab-ce", + "website": "https://gitlab.com/", + "docs": "https://docs.gitlab.com/ee/" + }, + "tags": ["git", "ci-cd", "version-control", "project-management"] + }, { "id": "ghost", "name": "Ghost", @@ -1129,6 +1142,19 @@ "manager" ] }, + { + "id": "habitica", + "name": "Habitica", + "version": "latest", + "description": "Habitica is a free habit and productivity app that treats your real life like a game. With in-game rewards and punishments to motivate you and a strong social network to inspire you, Habitica can help you achieve your goals to become healthy and hard-working.", + "logo": "image.png", + "links": { + "github": "https://github.com/HabitRPG/habitica", + "website": "https://habitica.com/", + "docs": "https://habitica.fandom.com/wiki/Setting_up_Habitica_Locally" + }, + "tags": ["productivity", "gamification", "habits", "self-hosted"] + }, { "id": "hoarder", "name": "Hoarder", @@ -3448,11 +3474,7 @@ "website": "https://www.filestash.app/", "docs": "https://www.filestash.app/docs/" }, - "tags": [ - "file-manager", - "document-editor", - "self-hosted" - ] + "tags": ["file-manager", "document-editor", "self-hosted"] }, { "id": "mazanoke",