From f1cd2ae78cb300114fabab19d7590b90f97799cb Mon Sep 17 00:00:00 2001 From: adryserage <17680194+adryserage@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:06:07 -0500 Subject: [PATCH] feat: add Fizzy template blueprint Fizzy is a Kanban-style issue and idea tracker by 37signals (Basecamp). - docker-compose with SQLite storage volume - template.toml with SMTP, VAPID, and Rails configuration - SVG logo and meta.json entry Ref: https://github.com/basecamp/fizzy --- blueprints/fizzy/docker-compose.yml | 35 +++++++++++++++++++++++++++++ blueprints/fizzy/fizzy.svg | 15 +++++++++++++ blueprints/fizzy/template.toml | 33 +++++++++++++++++++++++++++ meta.json | 19 ++++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 blueprints/fizzy/docker-compose.yml create mode 100644 blueprints/fizzy/fizzy.svg create mode 100644 blueprints/fizzy/template.toml diff --git a/blueprints/fizzy/docker-compose.yml b/blueprints/fizzy/docker-compose.yml new file mode 100644 index 00000000..e9c3c04d --- /dev/null +++ b/blueprints/fizzy/docker-compose.yml @@ -0,0 +1,35 @@ +services: + web: + image: ghcr.io/basecamp/fizzy:main + restart: unless-stopped + + environment: + # Rails + RAILS_ENV: production + RAILS_LOG_TO_STDOUT: "1" + + # Secrets + SECRET_KEY_BASE: ${SECRET_KEY_BASE:?set SECRET_KEY_BASE} + VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY:?set VAPID_PUBLIC_KEY} + VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY:?set VAPID_PRIVATE_KEY} + + # Mail + MAILER_FROM_ADDRESS: ${MAILER_FROM_ADDRESS:?set MAILER_FROM_ADDRESS} + SMTP_ADDRESS: ${SMTP_ADDRESS:?set SMTP_ADDRESS} + SMTP_PORT: ${SMTP_PORT:-2525} + SMTP_USERNAME: ${SMTP_USERNAME:-} + SMTP_PASSWORD: ${SMTP_PASSWORD:-} + + # Fizzy behavior + MULTI_TENANT: ${MULTI_TENANT:-false} + SOLID_QUEUE_IN_PUMA: ${SOLID_QUEUE_IN_PUMA:-true} + + volumes: + # Contains SQLite DB + ActiveStorage + - fizzy_storage:/rails/storage + + expose: + - "3000" + +volumes: + fizzy_storage: diff --git a/blueprints/fizzy/fizzy.svg b/blueprints/fizzy/fizzy.svg new file mode 100644 index 00000000..d85afdf6 --- /dev/null +++ b/blueprints/fizzy/fizzy.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/blueprints/fizzy/template.toml b/blueprints/fizzy/template.toml new file mode 100644 index 00000000..5faaef00 --- /dev/null +++ b/blueprints/fizzy/template.toml @@ -0,0 +1,33 @@ +[variables] +main_domain = "${domain}" +secret_key_base = "${base64:64}" +vapid_public_key = "${base64:64}" +vapid_private_key = "${base64:64}" +mailer_from_address = "fizzy@${main_domain}" +smtp_address = "smtp.example.com" +smtp_port = "2525" +smtp_username = "" +smtp_password = "" +multi_tenant = "false" +solid_queue_in_puma = "true" + +[config] +mounts = [] + +env = [ + "SECRET_KEY_BASE=${secret_key_base}", + "VAPID_PUBLIC_KEY=${vapid_public_key}", + "VAPID_PRIVATE_KEY=${vapid_private_key}", + "MAILER_FROM_ADDRESS=${mailer_from_address}", + "SMTP_ADDRESS=${smtp_address}", + "SMTP_PORT=${smtp_port}", + "SMTP_USERNAME=${smtp_username}", + "SMTP_PASSWORD=${smtp_password}", + "MULTI_TENANT=${multi_tenant}", + "SOLID_QUEUE_IN_PUMA=${solid_queue_in_puma}", +] + +[[config.domains]] +serviceName = "web" +port = 3_000 +host = "${main_domain}" diff --git a/meta.json b/meta.json index f9736908..1de1ee06 100644 --- a/meta.json +++ b/meta.json @@ -2345,6 +2345,25 @@ "multiplayer", "server" ] + }, + { + "id": "fizzy", + "name": "Fizzy", + "version": "main", + "description": "Fizzy is a Kanban-style tracker for issues and ideas from 37signals.", + "logo": "fizzy.svg", + "links": { + "github": "https://github.com/basecamp/fizzy", + "website": "https://fizzy.do/", + "docs": "https://github.com/basecamp/fizzy" + }, + "tags": [ + "kanban", + "project-management", + "issues", + "ideas", + "self-hosted" + ] }, { "id": "flagsmith",