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
This commit is contained in:
adryserage
2026-02-20 03:06:07 -05:00
parent 38e417b194
commit f1cd2ae78c
4 changed files with 102 additions and 0 deletions

View File

@@ -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:

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160" role="img" aria-label="Fizzy logo">
<defs>
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#4b9cff"/>
<stop offset="100%" stop-color="#6dd5fa"/>
</linearGradient>
</defs>
<rect width="160" height="160" rx="28" fill="url(#g)"/>
<circle cx="52" cy="68" r="12" fill="#ffffff" opacity="0.9"/>
<circle cx="88" cy="52" r="10" fill="#ffffff" opacity="0.85"/>
<circle cx="112" cy="82" r="14" fill="#ffffff" opacity="0.9"/>
<path d="M46 110c18-18 44-18 68-4" fill="none" stroke="#ffffff" stroke-width="10" stroke-linecap="round"/>
<path d="M54 104c2-20 14-40 32-48" fill="none" stroke="#ffffff" stroke-width="9" stroke-linecap="round" opacity="0.85"/>
<path d="M70 108l-22 12" fill="none" stroke="#ffffff" stroke-width="9" stroke-linecap="round" opacity="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 902 B

View File

@@ -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}"

View File

@@ -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",