Add Fizzy one-click service
Add Basecamp's Fizzy Kanban tracking tool as a one-click deployable service. - Uses official Docker image: ghcr.io/basecamp/fizzy:main - PostgreSQL database with auto-generated credentials - Rails environment with SECRET_KEY_BASE and RAILS_MASTER_KEY - VAPID keys for web push notifications - Health checks on /up endpoint - Persistent storage for Rails storage directory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
afb19114cf
commit
a7a275d012
4 changed files with 108 additions and 0 deletions
27
public/svgs/fizzy.svg
Normal file
27
public/svgs/fizzy.svg
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none">
|
||||
<!-- Background circle -->
|
||||
<circle cx="50" cy="50" r="48" fill="#0EA5E9" stroke="#0284C7" stroke-width="2"/>
|
||||
|
||||
<!-- Kanban board representation -->
|
||||
<g transform="translate(20, 25)">
|
||||
<!-- First column -->
|
||||
<rect x="0" y="0" width="16" height="50" rx="2" fill="white" opacity="0.9"/>
|
||||
<rect x="2" y="4" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
<rect x="2" y="14" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
<rect x="2" y="24" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
|
||||
<!-- Second column -->
|
||||
<rect x="22" y="0" width="16" height="50" rx="2" fill="white" opacity="0.9"/>
|
||||
<rect x="24" y="4" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
<rect x="24" y="14" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
|
||||
<!-- Third column -->
|
||||
<rect x="44" y="0" width="16" height="50" rx="2" fill="white" opacity="0.9"/>
|
||||
<rect x="46" y="4" width="12" height="8" rx="1" fill="#0EA5E9"/>
|
||||
</g>
|
||||
|
||||
<!-- Sparkle/Fizzy effect -->
|
||||
<circle cx="75" cy="30" r="3" fill="#FCD34D" opacity="0.9"/>
|
||||
<circle cx="70" cy="20" r="2" fill="#FCD34D" opacity="0.7"/>
|
||||
<circle cx="80" cy="25" r="2.5" fill="#FCD34D" opacity="0.8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
45
templates/compose/fizzy.yaml
Normal file
45
templates/compose/fizzy.yaml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# documentation: https://github.com/basecamp/fizzy
|
||||
# slogan: Kanban tracking tool for issues and ideas by 37signals
|
||||
# category: productivity
|
||||
# tags: kanban, project management, issues, rails, ruby, basecamp, 37signals
|
||||
# logo: svgs/fizzy.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
fizzy:
|
||||
image: ghcr.io/basecamp/fizzy:main
|
||||
environment:
|
||||
- SERVICE_FQDN_FIZZY_80
|
||||
- SECRET_KEY_BASE=$SERVICE_PASSWORD_FIZZY
|
||||
- RAILS_MASTER_KEY=$SERVICE_PASSWORD_64_MASTERKEY
|
||||
- RAILS_ENV=production
|
||||
- RAILS_LOG_TO_STDOUT=true
|
||||
- RAILS_SERVE_STATIC_FILES=true
|
||||
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgres:5432/fizzy
|
||||
- VAPID_PRIVATE_KEY=$SERVICE_PASSWORD_64_VAPIDPRIVATE
|
||||
- VAPID_PUBLIC_KEY=$SERVICE_PASSWORD_64_VAPIDPUBLIC
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- fizzy-storage:/rails/storage
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80/up"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=fizzy
|
||||
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
|
@ -1146,6 +1146,24 @@
|
|||
"minversion": "0.0.0",
|
||||
"port": "5800"
|
||||
},
|
||||
"fizzy": {
|
||||
"documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io",
|
||||
"slogan": "Kanban tracking tool for issues and ideas by 37signals",
|
||||
"compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9cG9zdGdyZXNxbDovLyRTRVJWSUNFX1VTRVJfUE9TVEdSRVM6JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNAcG9zdGdyZXM6NTQzMi9maXp6eScKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9WQVBJRFBSSVZBVEUKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRTRVJWSUNFX1BBU1NXT1JEXzY0X1ZBUElEUFVCTElDCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3JlczoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgdm9sdW1lczoKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCiAgcG9zdGdyZXM6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCPWZpenp5CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==",
|
||||
"tags": [
|
||||
"kanban",
|
||||
"project management",
|
||||
"issues",
|
||||
"rails",
|
||||
"ruby",
|
||||
"basecamp",
|
||||
"37signals"
|
||||
],
|
||||
"category": "productivity",
|
||||
"logo": "svgs/fizzy.svg",
|
||||
"minversion": "0.0.0",
|
||||
"port": "80"
|
||||
},
|
||||
"flipt": {
|
||||
"documentation": "https://docs.flipt.io/cloud/overview?utm_source=coolify.io",
|
||||
"slogan": "Flipt is a fully managed feature flag solution that enables you to keep your feature flags and remote config next to your code in Git.",
|
||||
|
|
|
|||
|
|
@ -1146,6 +1146,24 @@
|
|||
"minversion": "0.0.0",
|
||||
"port": "5800"
|
||||
},
|
||||
"fizzy": {
|
||||
"documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io",
|
||||
"slogan": "Kanban tracking tool for issues and ideas by 37signals",
|
||||
"compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9cG9zdGdyZXNxbDovLyRTRVJWSUNFX1VTRVJfUE9TVEdSRVM6JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNAcG9zdGdyZXM6NTQzMi9maXp6eScKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9WQVBJRFBSSVZBVEUKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRTRVJWSUNFX1BBU1NXT1JEXzY0X1ZBUElEUFVCTElDCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3JlczoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgdm9sdW1lczoKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCiAgcG9zdGdyZXM6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCPWZpenp5CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==",
|
||||
"tags": [
|
||||
"kanban",
|
||||
"project management",
|
||||
"issues",
|
||||
"rails",
|
||||
"ruby",
|
||||
"basecamp",
|
||||
"37signals"
|
||||
],
|
||||
"category": "productivity",
|
||||
"logo": "svgs/fizzy.svg",
|
||||
"minversion": "0.0.0",
|
||||
"port": "80"
|
||||
},
|
||||
"flipt": {
|
||||
"documentation": "https://docs.flipt.io/cloud/overview?utm_source=coolify.io",
|
||||
"slogan": "Flipt is a fully managed feature flag solution that enables you to keep your feature flags and remote config next to your code in Git.",
|
||||
|
|
|
|||
Loading…
Reference in a new issue