From a7a275d012f0152e7c5c59a8382a90b58003c621 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:25:25 +0100 Subject: [PATCH 1/8] Add Fizzy one-click service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- public/svgs/fizzy.svg | 27 +++++++++++++++ templates/compose/fizzy.yaml | 45 +++++++++++++++++++++++++ templates/service-templates-latest.json | 18 ++++++++++ templates/service-templates.json | 18 ++++++++++ 4 files changed, 108 insertions(+) create mode 100644 public/svgs/fizzy.svg create mode 100644 templates/compose/fizzy.yaml diff --git a/public/svgs/fizzy.svg b/public/svgs/fizzy.svg new file mode 100644 index 000000000..0ad6a3294 --- /dev/null +++ b/public/svgs/fizzy.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml new file mode 100644 index 000000000..848af8674 --- /dev/null +++ b/templates/compose/fizzy.yaml @@ -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 diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index 063556a14..d2bb3274c 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -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.", diff --git a/templates/service-templates.json b/templates/service-templates.json index 398a23e42..a213366dc 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -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.", From 65d8bc6feb633efe4dc0b455a6595b6eb2d1fe44 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:26:32 +0100 Subject: [PATCH 2/8] Update Fizzy logo with official SVG from repository MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace custom logo with official Fizzy equalizer/bar chart design from the basecamp/fizzy repository. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- public/svgs/fizzy.svg | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/public/svgs/fizzy.svg b/public/svgs/fizzy.svg index 0ad6a3294..fd9f5f8bf 100644 --- a/public/svgs/fizzy.svg +++ b/public/svgs/fizzy.svg @@ -1,27 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + From 0cb3327df1052ed9f03af70e4941bd5b4a16811b Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:39:45 +0100 Subject: [PATCH 3/8] Switch Fizzy from PostgreSQL to MariaDB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fizzy uses MySQL/MariaDB, not PostgreSQL. Update the service template to use: - MariaDB 11 instead of PostgreSQL - mysql2:// protocol in DATABASE_URL - Proper MariaDB environment variables and health checks 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- templates/compose/fizzy.yaml | 23 ++++++++++++----------- templates/service-templates-latest.json | 2 +- templates/service-templates.json | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml index 848af8674..df7d5ea5c 100644 --- a/templates/compose/fizzy.yaml +++ b/templates/compose/fizzy.yaml @@ -15,11 +15,11 @@ services: - 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 + - DATABASE_URL=mysql2://$SERVICE_USER_MARIADB:$SERVICE_PASSWORD_MARIADB@mariadb:3306/fizzy + - VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY + - VAPID_PUBLIC_KEY=$VAPID_PUBLIC_KEY depends_on: - postgres: + mariadb: condition: service_healthy volumes: - fizzy-storage:/rails/storage @@ -30,16 +30,17 @@ services: retries: 5 start_period: 30s - postgres: - image: postgres:16-alpine + mariadb: + image: mariadb:11 environment: - - POSTGRES_DB=fizzy - - POSTGRES_USER=$SERVICE_USER_POSTGRES - - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES + - MARIADB_DATABASE=fizzy + - MARIADB_USER=$SERVICE_USER_MARIADB + - MARIADB_PASSWORD=$SERVICE_PASSWORD_MARIADB + - MARIADB_ROOT_PASSWORD=$SERVICE_PASSWORD_MARIADB_ROOT volumes: - - postgres-data:/var/lib/postgresql/data + - mariadb-data:/var/lib/mysql healthcheck: - test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 5s timeout: 5s retries: 10 diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index d2bb3274c..ff97a0d0f 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9cG9zdGdyZXNxbDovLyRTRVJWSUNFX1VTRVJfUE9TVEdSRVM6JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNAcG9zdGdyZXM6NTQzMi9maXp6eScKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9WQVBJRFBSSVZBVEUKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRTRVJWSUNFX1BBU1NXT1JEXzY0X1ZBUElEUFVCTElDCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3JlczoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgdm9sdW1lczoKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCiAgcG9zdGdyZXM6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCPWZpenp5CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9NQVJJQURCX1JPT1QKICAgIHZvbHVtZXM6CiAgICAgIC0gJ21hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", "tags": [ "kanban", "project management", diff --git a/templates/service-templates.json b/templates/service-templates.json index a213366dc..b091a4632 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9cG9zdGdyZXNxbDovLyRTRVJWSUNFX1VTRVJfUE9TVEdSRVM6JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNAcG9zdGdyZXM6NTQzMi9maXp6eScKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kU0VSVklDRV9QQVNTV09SRF82NF9WQVBJRFBSSVZBVEUKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRTRVJWSUNFX1BBU1NXT1JEXzY0X1ZBUElEUFVCTElDCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3JlczoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgdm9sdW1lczoKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCiAgcG9zdGdyZXM6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCPWZpenp5CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9NQVJJQURCX1JPT1QKICAgIHZvbHVtZXM6CiAgICAgIC0gJ21hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", "tags": [ "kanban", "project management", From 8ec8b2e069346d29a18cd7e23495661cc4caed66 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:43:49 +0100 Subject: [PATCH 4/8] Fix Fizzy MariaDB root password environment variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed MARIADB_ROOT_PASSWORD from $SERVICE_PASSWORD_MARIADB_ROOT to $SERVICE_PASSWORD_ROOT to match Coolify's standard naming convention for root passwords. This fixes the MariaDB initialization error. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- templates/compose/fizzy.yaml | 2 +- templates/service-templates-latest.json | 2 +- templates/service-templates.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml index df7d5ea5c..795f08bd1 100644 --- a/templates/compose/fizzy.yaml +++ b/templates/compose/fizzy.yaml @@ -36,7 +36,7 @@ services: - MARIADB_DATABASE=fizzy - MARIADB_USER=$SERVICE_USER_MARIADB - MARIADB_PASSWORD=$SERVICE_PASSWORD_MARIADB - - MARIADB_ROOT_PASSWORD=$SERVICE_PASSWORD_MARIADB_ROOT + - MARIADB_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT volumes: - mariadb-data:/var/lib/mysql healthcheck: diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index ff97a0d0f..2856ef9e5 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9NQVJJQURCX1JPT1QKICAgIHZvbHVtZXM6CiAgICAgIC0gJ21hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9ST09UCiAgICB2b2x1bWVzOgogICAgICAtICdtYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAo=", "tags": [ "kanban", "project management", diff --git a/templates/service-templates.json b/templates/service-templates.json index b091a4632..de2002dcc 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9NQVJJQURCX1JPT1QKICAgIHZvbHVtZXM6CiAgICAgIC0gJ21hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9ST09UCiAgICB2b2x1bWVzOgogICAgICAtICdtYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAo=", "tags": [ "kanban", "project management", From f215c97a34859af1eb7a8248e52819dd77adc139 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:48:27 +0100 Subject: [PATCH 5/8] Simplify Fizzy service to use embedded SQLite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove MariaDB dependency and use Fizzy's default SQLite database. This simplifies deployment by: - Removing external database container - Using DATABASE_ADAPTER=sqlite3 environment variable - Mounting /rails/db volume for SQLite database persistence - Reducing resource requirements and startup time Fizzy supports SQLite by default and it's the recommended setup for single-instance deployments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- templates/compose/fizzy.yaml | 21 ++------------------- templates/service-templates-latest.json | 2 +- templates/service-templates.json | 2 +- 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml index 795f08bd1..f1617672f 100644 --- a/templates/compose/fizzy.yaml +++ b/templates/compose/fizzy.yaml @@ -15,13 +15,11 @@ services: - RAILS_ENV=production - RAILS_LOG_TO_STDOUT=true - RAILS_SERVE_STATIC_FILES=true - - DATABASE_URL=mysql2://$SERVICE_USER_MARIADB:$SERVICE_PASSWORD_MARIADB@mariadb:3306/fizzy + - DATABASE_ADAPTER=sqlite3 - VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY - VAPID_PUBLIC_KEY=$VAPID_PUBLIC_KEY - depends_on: - mariadb: - condition: service_healthy volumes: + - fizzy-data:/rails/db - fizzy-storage:/rails/storage healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:80/up"] @@ -29,18 +27,3 @@ services: timeout: 5s retries: 5 start_period: 30s - - mariadb: - image: mariadb:11 - environment: - - MARIADB_DATABASE=fizzy - - MARIADB_USER=$SERVICE_USER_MARIADB - - MARIADB_PASSWORD=$SERVICE_PASSWORD_MARIADB - - MARIADB_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT - volumes: - - mariadb-data:/var/lib/mysql - healthcheck: - test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] - interval: 5s - timeout: 5s - retries: 10 diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index 2856ef9e5..eb5bdb1eb 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9ST09UCiAgICB2b2x1bWVzOgogICAgICAtICdtYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAo=", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlMwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LWRhdGE6L3JhaWxzL2RiJwogICAgICAtICdmaXp6eS1zdG9yYWdlOi9yYWlscy9zdG9yYWdlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL3VwJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDUKICAgICAgc3RhcnRfcGVyaW9kOiAzMHMK", "tags": [ "kanban", "project management", diff --git a/templates/service-templates.json b/templates/service-templates.json index de2002dcc..a170105d9 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtICdEQVRBQkFTRV9VUkw9bXlzcWwyOi8vJFNFUlZJQ0VfVVNFUl9NQVJJQURCOiRTRVJWSUNFX1BBU1NXT1JEX01BUklBREJAbWFyaWFkYjozMzA2L2Zpenp5JwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LXN0b3JhZ2U6L3JhaWxzL3N0b3JhZ2UnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvdXAnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogNQogICAgICBzdGFydF9wZXJpb2Q6IDMwcwogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNQVJJQURCX0RBVEFCQVNFPWZpenp5CiAgICAgIC0gTUFSSUFEQl9VU0VSPSRTRVJWSUNFX1VTRVJfTUFSSUFEQgogICAgICAtIE1BUklBREJfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfTUFSSUFEQgogICAgICAtIE1BUklBREJfUk9PVF9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9ST09UCiAgICB2b2x1bWVzOgogICAgICAtICdtYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiAxMAo=", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlMwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LWRhdGE6L3JhaWxzL2RiJwogICAgICAtICdmaXp6eS1zdG9yYWdlOi9yYWlscy9zdG9yYWdlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL3VwJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDUKICAgICAgc3RhcnRfcGVyaW9kOiAzMHMK", "tags": [ "kanban", "project management", From b758b1dcf3b4a076c72062b27c3caf6b10308519 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 2 Dec 2025 21:02:29 +0100 Subject: [PATCH 6/8] Configure Fizzy to use single SQLite database for queue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add SOLID_QUEUE_CONNECTS_TO=false environment variable to tell Solid Queue to use the primary SQLite database instead of looking for a separate queue database. This fixes the ActiveRecord adapter error about missing queue database configuration. With this setting, Fizzy will use a single SQLite database for both the application data and Solid Queue job processing, which is the recommended approach for single-instance deployments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- templates/compose/fizzy.yaml | 3 ++- templates/service-templates-latest.json | 2 +- templates/service-templates.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml index f1617672f..59e18512c 100644 --- a/templates/compose/fizzy.yaml +++ b/templates/compose/fizzy.yaml @@ -15,7 +15,8 @@ services: - RAILS_ENV=production - RAILS_LOG_TO_STDOUT=true - RAILS_SERVE_STATIC_FILES=true - - DATABASE_ADAPTER=sqlite3 + - DATABASE_ADAPTER=sqlite + - SOLID_QUEUE_CONNECTS_TO=false - VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY - VAPID_PUBLIC_KEY=$VAPID_PUBLIC_KEY volumes: diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index eb5bdb1eb..8831d139b 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlMwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LWRhdGE6L3JhaWxzL2RiJwogICAgICAtICdmaXp6eS1zdG9yYWdlOi9yYWlscy9zdG9yYWdlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL3VwJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDUKICAgICAgc3RhcnRfcGVyaW9kOiAzMHMK", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlCiAgICAgIC0gU09MSURfUVVFVUVfQ09OTkVDVFNfVE89ZmFsc2UKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kVkFQSURfUFJJVkFURV9LRVkKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRWQVBJRF9QVUJMSUNfS0VZCiAgICB2b2x1bWVzOgogICAgICAtICdmaXp6eS1kYXRhOi9yYWlscy9kYicKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCg==", "tags": [ "kanban", "project management", diff --git a/templates/service-templates.json b/templates/service-templates.json index a170105d9..43451d95c 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -1149,7 +1149,7 @@ "fizzy": { "documentation": "https://github.com/basecamp/fizzy?utm_source=coolify.io", "slogan": "Kanban tracking tool for issues and ideas by 37signals", - "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlMwogICAgICAtIFZBUElEX1BSSVZBVEVfS0VZPSRWQVBJRF9QUklWQVRFX0tFWQogICAgICAtIFZBUElEX1BVQkxJQ19LRVk9JFZBUElEX1BVQkxJQ19LRVkKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zpenp5LWRhdGE6L3JhaWxzL2RiJwogICAgICAtICdmaXp6eS1zdG9yYWdlOi9yYWlscy9zdG9yYWdlJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL3VwJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDVzCiAgICAgIHJldHJpZXM6IDUKICAgICAgc3RhcnRfcGVyaW9kOiAzMHMK", + "compose": "c2VydmljZXM6CiAgZml6enk6CiAgICBpbWFnZTogJ2doY3IuaW8vYmFzZWNhbXAvZml6enk6bWFpbicKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSVpaWV84MAogICAgICAtIFNFQ1JFVF9LRVlfQkFTRT0kU0VSVklDRV9QQVNTV09SRF9GSVpaWQogICAgICAtIFJBSUxTX01BU1RFUl9LRVk9JFNFUlZJQ0VfUEFTU1dPUkRfNjRfTUFTVEVSS0VZCiAgICAgIC0gUkFJTFNfRU5WPXByb2R1Y3Rpb24KICAgICAgLSBSQUlMU19MT0dfVE9fU1RET1VUPXRydWUKICAgICAgLSBSQUlMU19TRVJWRV9TVEFUSUNfRklMRVM9dHJ1ZQogICAgICAtIERBVEFCQVNFX0FEQVBURVI9c3FsaXRlCiAgICAgIC0gU09MSURfUVVFVUVfQ09OTkVDVFNfVE89ZmFsc2UKICAgICAgLSBWQVBJRF9QUklWQVRFX0tFWT0kVkFQSURfUFJJVkFURV9LRVkKICAgICAgLSBWQVBJRF9QVUJMSUNfS0VZPSRWQVBJRF9QVUJMSUNfS0VZCiAgICB2b2x1bWVzOgogICAgICAtICdmaXp6eS1kYXRhOi9yYWlscy9kYicKICAgICAgLSAnZml6enktc3RvcmFnZTovcmFpbHMvc3RvcmFnZScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC91cCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiA1cwogICAgICByZXRyaWVzOiA1CiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzCg==", "tags": [ "kanban", "project management", From 8659ca5b0f797b4928cecc9bf789d6a4128d5a6f Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Wed, 3 Dec 2025 09:32:48 +0100 Subject: [PATCH 7/8] Update Fizzy logo with official PNG from repository MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace custom SVG with the official app-icon.png (512x512) from the Fizzy repository. This ensures brand consistency and uses the authentic Fizzy branding. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- public/svgs/fizzy.png | Bin 0 -> 69177 bytes templates/compose/fizzy.yaml | 2 +- templates/service-templates-latest.json | 2 +- templates/service-templates.json | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 public/svgs/fizzy.png diff --git a/public/svgs/fizzy.png b/public/svgs/fizzy.png new file mode 100644 index 0000000000000000000000000000000000000000..44efbd781c5c19860bc63c8f17aecf4067ef08b7 GIT binary patch literal 69177 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

4kz%C6}V_-Qx8|LJt6 znSM})=38oHp%&)wVjgLIE)IAJiynZD0g(O8m=MH9!4UI76NT#*`7s!oIaaYWSoZLm zZH)Lqp`=LU+ZI3EuoYvD2tPKWx0CN_BYu+r^D+7RmKJSlY5C2f^}a2jVA4_050?_L zmRdWWBL?vUZq;Hm>u<$(7EIgFBXzF|%aEKwcn@?Kh0CO4b`EWhfz>fGindP$WUF&e;_; z@S(XELv5B&YKse)13@E9Mzi*KHwKubUoeJq${^Fy{%TueeAazZi|Mo{4(+Q#(w6zFHX~l{(GWa)6a#36!OMUlST@)T6}8> zhUoD=QB`w=9c$Ucn1=g8-!RKwj;Qdd^>rWE1hFJiERUN|44527bn~6C_N;ksY=WzF zSGw3=#)XHsJ`(RfMcX%Yf3<_ylomcJghm~&wxbv=vJ2B)wO z@S`i**140-!R=~I7Zv&ns(&1=4GzI{6|8a|bcjQ7?O(@*JU_xe#1>j!N2Paw)0MIU zoG;U@d#`m^sV=o`)zU(6hE9O;-IyohlSdC@A9q5h>E(#H{F7B`o%aocRc8Dq2J5Q6 z*#@>^8R*H`soT+J^LvofMx|9{a$r7ek%P%+Ux?I-o~ zBj|=89MC8Qd)Ch8vvvP=`o8}rz@3A~{cA^rbb|gf`cDo(X&zXM415hgnjK>6@;tE_ zqWJIwUvxYIWZ#y4$z2JWP-Z>`omZ;XtiY88{?_KaLwT*v+k_K0e=yS0;%_d(+^w7= zIBV2-J%!i-jSWFovsS5vq!k~Vpf*$ZK&Q{eU1s4+m5}~ly$E9n5n_iMimp*YGZvMe zB?uOO>FFc5_#B}l!HTC#x$S&SRdu_(DHJL}-hlqGxlmN~si0E2=s|!TC=GRBGRXA4 zctlQDM2;&OeSH4L8W1DQSNP}StA?iF)#aPKk$+RC)~mAMy~^)4Zm`BA67W_=E-U}* z5nSroFsxw7t2PCjwjOQ;$2nxoFi^p*>>}zOI7SI>>aCA_yv=<-J6SNXUY>%%+&bEP z0lf;_2ZrVd3F;giB#F{Lu$nz87k1M^n@51ip2#-%M|Nt3}^Po-YRF zi64$dTa%=_U-=pA`#)j%adDAruPC`@_)x0APN4tVmo|(Pr^nXWHSlLSTnLARp&@Px zpP9`JZKM|Y*Szw+nYQ6v_H^<$ME`R%U!|t+D%)n6)kCA9W_@tm29k=s2yvweM(jx?AX+l=0E&|Khcc4`vM<@Z$esQ%8t6rR(lisj>896_p(SyK+JQK_+`(l0sU6gFlZ-mj_+Ui1Z9($)XkNw5U zy*clB?p?casG~IC)dwZW+*q&|Vs0r&n8{C(jxOchjp_sCnkb_mSoN`&vB}GqyyJP5 z_+jh%=xSU9aGddMVDy$XQw~D3_FyR#N&I2Z8o6`_t#ILop(m}Cl{`2(1c^ny_HueO z7SE)~yUxQE$JWv&t)8DSQnXG)AJQAn+Fv2RxXbufuLmD}?Rk6gu^otd^)?m(c2$9{ zTraXjFI+FCZJviwz#5CS@$)z@51s%j{|_{W_Udm48kfq$zG`n(x*~9(vjL^( z87IA<>0HOy*;JhtRwDfJx8=cV`mjtGz@gvZk$v9V>5v9Gdz}oW;ky}MC#=r5q3a7) z&}~fbKA9*pz7R`ZLE7Jo3Q-?;kq5Zj zG6jh@Tt+Q=Dk!0Nlpn*iUz;cGU>WD^8^wlQJ#s5J28SRFfmv$AqPBzp#PXXfa_DQO z4PGj3t83wh55OO=J#g}lKc5V+4Zxf;J2xgcY|vp!uzT_Sz&jD&##(}U6tDhhGvp~ zFlV6x{F$8ey$+4pGR5~q==m%aS(Q9Y$ zWarjuZIHU{(ii8UB-J6%x%V1m8kRqQ&-%l-#m0oswT&|$LI2(4ihak-M<0jmMf)ov z6_R~X+7~o$)yJFw3{e;Kj{Elg&FRDlDv)0m zdWBWhD8=2WUN%^X41xea)1dS??MtqGb~tIaHo%g*^q71iOF{rdsi#{&CVt(RNL0t~ zC&+!6kNZ)s7(_!8OhM3)kh^031KA_pBeYTo-kEOQV>8F&hQ#Oo{ciTc-gnIABBkS$ z_hH<=8Mdm^hS^B3@B>1Q1u`lbI2?5};aPI`{i?|Kp;`1Jis+L~@kV#?1XO2?A$&GE z63Cm`cX0w;r2(6NTT*oKnJx(R!j1W774Io+-=?}Bg%l&`X924V^d#aai+*GhFtN)z z&vdfx6+my|0Zk>hoNd-X2)aiRq zF!#kvaP39Wz5zmx_nqrS_Ps%ng?Fqxh3wXuv_^`2XQ(vv=O}i0Et+P|X#dDjK6f*>qO9lNCz4O>Y z&5tp1BCB&Fe6j(Hp#10U&rSD&uhG33fJ$NRPcZsnf{2wdmv0k7o)a&Q7{E;-qjk3? zhJlIxgnE#<%cK3c*eN2X-SEn?Q5JIL8GePqnJFTQP>TmF48gt2Opp>F9jN|YF8+4_ ze-A4YpBk?Qg1sY#o4ef2-}J?P=l)lW<~*F$_v^}`n$?z1AJ9inD8CG3#f;2N7A6FU zJV$d-ug|i_{C-8rTOo3*8ASXMcjevP$}uKf-FZdn#}CNhgh|`Xc~brLHyZ&c5l2?F z`>4ezvJT74L;1-L0KuiBW~kkR0XJ@P@QH>W%aPZ%qK7n>DwHkn=?{bK41Vb4SA?L5 z`2ENWZZ@Stkg%p?=@0#jR}rIZJ3eZ^lM!;T>U_@lz~2GcVD~tS;;^|z+vIV`g$mP; zXy3JF4&$CBh~l0DB5m8uZrw~!&I~1}>}P!AE6$~jjSl84$OM@}MhYj)skiVlRDJM| zcp7L=Y`A&S%^ArnFoz`Eyz!5vddYRwrZgB`$d9cZSgbJx;!1KtUkM06E~g0{jxv%^ zzIpMlOIhRvtC)ily3jj{!9{a=Y01dGgB^&~{gpTN#vv4K`Z4|MU0 zTc}vCmJe$SNE*eA)j56Y5P)1BYl&un9XtMAmF~A8r-o_CZu*?|(RF1u3}77m<1tZC zSxqj60LT%M0>4s%yxOILw+qF2b<%;$)Z49Co(#0)8l5Z-Kw9A&V$aX<6eS0wZ!Z-} z(!*o{c;L4MLUog8sSjp#mem&%Q8$L7@Wc~q9@UFH<8!Sf{cDb-a+8z`mhYKDu{G~3%xUcI8;ItCv<`!HfQ5zv>;1e{3OOV{*!K<~BAuO`xvhc7=_K%KZP z*tf$}P%ysVtaaW<11p|17cYqjE!1o_RI%QgV_zGLf=t|JV$Pr}0ot*bd?j46Zy^uj zB-2}Vwkq?yNNJQzR>BQAHc`aH{Cw=1M|tpD2dt^1Z(@Yk*K9vD+Ml(DL{$uS{8J4I zI?w96Qp+j#C>t{WUP_*<*%B`%#60@dvQ0>}vIZ{Q#S}>1^raOopWDNJhg?@3bhM3x zT`7%x4AXC27)=6t?p38VF7|wvY4#T}$M33s1x$po#qWw_umc>aI-@N(&VMaWHDcw> zmtWD{opfxGJ@O*W%MYe82=7&`+w0$V_)(l@=&8j?6(Px}22l3r(DIo_3JO;4iH`ex zbcj!cYP7%443bZw^G*IPG^2EG(n}j@h2K^}sFDXLvvHyoyf_z%Dsiohz89@_0p zY!e~ZibOT>6=|;G$318N<>{vy3wtTnjzHlB9h*2FjW0UE4CI7kVRFN|373Gx9fKcz zT4yJt;V4h_n(AB(#t=Phx^47RT1Rs?gslkT$oGOB4?X;Eqg~abvSBravAy?|ggzSE z+r*z3R9!K_nGbpF3yhPqc*kb+^FRUZ@=PM!hy7$R)YnhY^80Fc1jpX$18Ljd0N~*# zm@Hh5(1>)LGr^E^Pf+7a$LvcFKZ3;7%sG2}0CK3x^Qlw7q%a_=%SFpAF2ffunu5sgoP5@RZB#Jg-3-W)673yeSh!JS^{UBa6<-o)ToH+mcz zt(8HCn-j2E0&#SkOHA~d{&yUaI0UJS(p5=eY2-njByDzsSC-u>9QpBE_w?{v=-|tn zZk0<6Q@8Ryx1z)*2a`EXX_w?&v%Hue?+f_1LruM zZA~&OW7*+9GKl<%P&AE==3v~RCXHn>B1zm-U@b$eFoU|D7Hl)I2XxaDC1{cJ=j3MX z<8@CZmTGe+z2*M_xFU<^_77RwhJ~mzK4#L_^igh?VV*L60WFK|?J@*nTho3VFMjxa zSVIyxitoTQHwA2&U2K)jkryuba4nW4BO@C)#=v>zx+169g;QE+Se5Ql7(P*Gl!1~z z-w~Kb|Cj;?DFb|Q3=cgIo;s}|mQgU@5ScW2CH1|HTe(XiwxWojI581rzUqUgAoDYt z&duT1j-l8{P=Ut&6u|iqe1u=DH7*k(7i8p5G3U1dGihaWFiE3xF4|6MR_ME1DA=g%Qdq&6)4*-`%Ptqz9iljPQ~$HTFLZKWwyelKjp zu}Ns_B@*@KGV#h$x3#3O2F0xcgkJpY<{KyVyK+ZW?6*C4QdC$i{1my6Ot_Yn^64eH z=`nW1>1{fs=`z&P5XkC#g1t&eJgGe+^=Ykz5oF>%n;Mf3@5AN145PGpoo2h+8t3?3MTXIFq+>~zAIldlKjO*TPAr3G#`G+hz?cEU*f zDukD%=p$`k?^n|Rus#Rj2>ZI=R{@sX3N&2CzD6P-=AWxFZ#-qOu=`Lm3K;Bna%@k- zWAY?5!x}N~%jNt&Auwy(d73gb|X3Jk9B?%To zONR*4*t0%{ifit|MjZugVXFf&FuY;>%ZeItP1(0M96DN}Yk+=-7uMV3z9>~Zy~jbp z*Pn^?n$}A-#g?=7p@lmI&*b@6#hgOGEu;_gjkpr3WmukMqVjq2h>Q1lYGCu%|gQPh&XOn zXoqMa*(J(^j#}d%_%Cn5U26CABCr07ry{LuVvMGz*|hj7s-B zvUJ(QC&C~}SA(daYQaS_h61W&P04BW69l8^uXc9RvN8A|JmP7{4mP_h>w9bOa=-0n z|F<33M;rUz;~}T%D754OfnyD@Xkq;7n8WaVnadhvf>4CX=tZ=^v=a0Px917Szk2U0 zi|Jt(di?D&R=fslgCGi%zafL-$`Q~Z1^X6a?P0($zuJ94GZx3dIFMYsZe=9QevF$7 z2T7%nqf2JyE1xYCJONDEZ=#@^_WT7;Z0bZ*KkVI{l0dE0)Z$9OM!0qqUN5FL|GtY91maXHqH7=TPc z!&PC#lQe3@v0q(UZ;L%VYRLd<(O5OjfV0H|l3X;1H5MLh-W{BD<#x_KsiZ*V@Pyja z1%uCDFT6K4zZHl3=Lb_kTO(G!3~A@gH98{Z{x~Jyp$;;rOkv2WowHs z>@aE!^`9LLbj5V0RT&|70LxMcUt?CprX7ibG2v5BGpBeC|4?c0xW2#p{k8U4gZ5rb z{l#lkv}6T}B&5lJ(f1T7Y#;)T1m_LX=Cp058+?3W;BzwYWlz)&Fd+iq1^eXc)KT>R ztShXRol>%fW+6Yh*RV6c?XjB&!sPbw;oTM8@~mop&Vtw=YXv>dnCoN~!nJZax6RTx zSQ@zJjmVf@1CRHZuB1SltxAj@uko$Ow0BIzp6{>rfi*cH&}2V;zy1C`Ic%Ve&f^Wp z@5#~4tequih0H=qdgpz(?tFLOpk^0IWIG>S{;3H!0~ojCM^;J(=wtCQF3E2{99)QC zdBisXh~Qa$DB`4c{f|q?AvqzMS@MTdB|Z(=?@%@1s=?sK_b1hX4lTa*`-g$e)-_R2 zXf`-0^r>Gd51?TzOm;xO7s>NC0jPpwL!P_Pj~$}u&&$N(6AJ}}FYg=YJnyrk$pTvI3=sn1WiiWG0tiSd9(va!(j(walt3`kWS z!s$;JQ@beCZTWPTp$R3xzc%dn#9C0}8~DBBJUpgX@V)aq@H4we#?NP3I_SgRN2uQ9 ztp`vN1_#qyIIhezdG%~g;(OxF{Z2i>=Ca@ObJA5Y=6z22`>ceHjbrJyxB{vk7lk+A z7eyFQ%;$=KUIKUe-OcUuaP%)@yDmbH zyVDR@p_e1>3;XvIgJ96jWL3B^H97)nAmJXt9|XH#3ej@&LWBFu1HUTS{FfC8Jm-^^?8LxfvFFU~ld$`c%W=+nFmh}jQu3H=-0jEFXjGRG!X3K={5f|5H+8TQfGMP2 zCZAcky)Ls5{`q0049ccI@x#Y49EaPXIG8q67O>y_W9Z(*y4S06m%*ER2TaH1D9pux zQaj#S%RQY(@1AS*;_|2f3_^j$M$)O2$K8h1!&dj-i{@kHu2#`EKaZUv3nRO#v9t%N zzurh^WZSP8qtw_(A&mxqd&T=-qr{y_XlgSfcUPNSn$~O(!vRdm5|(7)z~oQb;t=o@ z`g%M}`$ugCTa<4$tKsMjFe}TeW)ec^cUYH!%~q2HY<{xc#9;UJd+~wl((;gRs%}Ts ze%MSr;2)E2`t|K)jYWp#wK{3IUe!iN)*D4z74*}6H0?yKyo`lxIU5_dxZ~@H9iXu>75df9r%?QE~I}D++jOwPVhs{ag`V+g7nYHoUQ-2OHV zB!h{FTS@Njxz1j)8Yh;tnWZ^4Na8b^(Ht5xd4<7R>Pq{&zf~cP(Y2tdlkB;LU@sH< zXyNbnGH$vJJu}K3M}58bS&^^vG0y2!Sppe}L1YrM$DS33ynl+zSP+v2E3aWWf;wCG zA2e3yn)CB&Ca;x+92o7w>3RsfKAs2YEL3R(bqeqVkKbyy*1f%xTzhSX)77^F;&@6sWI1FGyQHJZw@HOf-&@?J0c~<>f!jOK0zEeoa0t11K$A$onXHQ{&|DPEh6d zV$ve^of$`NCk_jx7gq2{?4N;TzVKZ0uIBU`cO&@LB!a1}_9hV0uZq1go?DTyQrXUw9PP(J{4UcaAYJ})P=W_R)S&S%h_>c} zS7t{nIobrNo7?nIa7X=SN;egUJbtk0;bLGNgYb}K*J7L4My3mav*OLw{`*iAm}~qD zt_K$5YU#gugNw~1MAT@W#MB!pmPu?cdvU^)07Ot}3hvPs+QAcZB9H!?6@UaAkRT3~ z?|v?ea3%RY+R~OS;`bg^6_4^Z_>aF{>?XDpBUsS#b_en^`G_J;gaE8{C~04jO+vOq zhJ9lz3j(NAOTt2P3$*`fpc*{!z=ip}t^(M3b4+vg&r>?gNcGT`tG3ckMyIE_tfE#M zma0mvD}kLbx`VTwo)*Hfur<A$0M>?o46Gp~v54;{^4S zsKU6c)y{QU_3W5Kqhg9Ec$xwwkzLVMxc{M6jBK)6FX$8r`ibWO8aJdc+v-(ZD7oX{ zdsi`7O*!Zwx;&G$6H@UyHh}MO6ki}L)QUpm#(HGl=_-$zTcE5x&G_3TrR)!_CEB|J zt-}O7ss#s-03+l(wX1>1!VVPp>Vn?*O(&cq z{Tb3-0J(^22dd4>VfNew-=H;u=+Hfm`u^NKhnx{Ztwvf508i0N5cZ#a3GJX097^X- z2_oKDL}NiNeaP?t4D3xzqC>9P&?VTSaIiw)LcL`C%G8wAoGSZ2tu72$5gN5&OW7)% zx;i7ZuA|woaL}g--U$`j&N3x3&4#m68A@aod#{x3NZFR0ilGrRkU}EzM|S*i|B=2u zFv7&SL!l%+bmHgN@3wzXleRZPMLs3o8PETh(G63c33$%h-t0(~nJ1f#*UaX%?zM0n zrmcnW+;X-$H0yD6P|)+`#vnm8xzkBb^l4M{1O!1QPUEOFR_IA~IFme46%pkj zW_x9Q4DcqVp_3P_Qyo&A3kUuei&>_f?lgddNpbuaCmCr``TS|Z8Umelnb63W0H&=z zA@E&idQxB)7Rlr0n-$4^(c;v^Am8>$_a50ex+CQwi$AvU*$6HpOGdU&xLgIsyqhuo zs$7c52{`@`VB}9`dWLbT*O8h3m*3AtUm*gESpi@zduai_&P!f?w*|gMFMpH~@!#p?Gg3|Q^ zcn(eHdTw%5st$IITqJb%Op_lXM#7Swo1SSruF!gSIxehP>$ir=RWnS9p>?k@ z2Xn%9ZK4w&kCy_0k&IY$2o!9zWIbk-f6-(_Rh+SY4HQM~Q{RHf;1YaD1hY{Wd#T|+ zA(asPSGBs8i80wSlIJ`%p!3?y1DFpg%cI+8%zPd`Rg7gJK!=t&rOe7BUC4wdh28=p z+MkPjW(H1H-ErFAb4QSMt+-30E*nX6abk<{VE~WV-#)CB$$zqjP+?}NBDj7GeWdXh z!n-Cj%?kRUvM`@|g+M#Gf8Sn40Ei7Yi68V(8(@uW(>6M%rGet2hECck_T8BN5ak7! zuJW;*8E{2s()dL@WD>$B_K|IBHiJSpjs7neub{QWzn|B>6@shgvl1p`P(%m9%Etv9 ziEZiunCK_Z$FDO7wMTEMS4LbwF#eR1p4BP3o@Kzhi%{9z1$xYFiNWyvPezG1U#6CT zz}J_3+)$w43+qiswAa6w2e{!VbY0!JxYW2B*9+}Q#jewxDh@L%(cD__nWp%o=~124 zyj9_Pc4Bd_DApU}R7b2zYnD(P?tAe89CG$=i2su1>NS%UGQZ~IE4)$R0;nTm0f~^l zEU@qd-lE;4fsg-{t$-otvD+t>q=2g>oxnLSu6`>&&zgBkX^|OB;67d+ofWX9xLe`$ z*rZ9l?Y+(J)i7G9+HLzR|B>52T}_Y{k+0}tbgVBEah2XULt%r!EUt~Y8{7ZC6L5z~ zWOTW2G3&M*hao6Hc6p2=gkS7+gPVS08^buPuSe@i1`wIFA@-l`cM=<1~pp@d!&sT!^M{)W}?J697NmMrGZhCg( zj1Fk!)tUBTkQYX#u&Of?%o)A3_0R0lq46C)+BULhr43h`K4e72ykF#p6VskgcKQ+% zdi0*?M0%rUt%gnhsU*ZHJ6ii6WW=G`DvoatUvyrI`CLK7w5==+#bU;e=T;{f2%CD+ z*1fvH#vb+%o}PF*^^5#FNDPMx%R-Cd?=+h&oTS=&vCkIEx0saS9C*FQc}TX)gus0* z32@WARaFgF(k+&N3Z^-S+P~wtrs?}+r2&iaeWWJ?do7Vy)M2^r zN=~wx5mzR%kkcW17p8|cMN1K#^Ov?Mu)La+}-JH$_YbyWg9C)=`j2Ql_XX2?2J6|{h|5IOn0#Q!a zz%?a^wm9D=;r}AX>s_WZMUI){T@Js_XW4PBg4GHlb`^AlY+CT)r;-l9X&6ORwOvi> zvTZC=N&-sw5Pyb64auuulZU zr**nLuueteg9ZVb7xi%F{G4mTl9b9MPZu$8olxvbF(ZzSmY)ZYb2PI9rMM(Z%Nf0&P42j-@7Rw1NC6uMM-P zxe}5%TrpZCbX2|2vb6F?UQzWZLk92SoF8d&7)Teb{&Qj4P2XB#qpYX5RM%=3HCHm= z{>B==PSf?(YdRdd!#D)bEm5;zY=>%| z)QS^6g49blxV?biii0$-ySQm#z28g5r_pJ=WB`jCny?8tj1>~6^}VtXG8bMihlAYm z&~lbFs`2&F_A-toZHl`-%<3mGO6E!=j>Bd2rSzyu+siPTNM+{0Ik2^&IAGKRzEUiH z=T9F6h-Jx=BwkR05LwQ%sCqCHTJN#(KTHANGV_-0+{vG(jov6Pp%Gf4FLasuyQ=wo zT%LSx79-j&Uw@U2#*GKu1w#SR1{e#)p*`#}B1mcpL@o)mi}3;fG9v zxLiXumzfYHfHmCFN4`;9-=W#|I#T7on3_X*L~xkevfffx8vt3vT&c#!CI~%xvP&j* zQZaFdEdD16b!rJ@@9leoTp09@Eu}47g;_ZG@+I+Z`3K@qN{|D?Z8rc9^0=)1bEV>P zMp|d+83iT0p`(&k4fpIV@-Sq#9t(&RBM>P8>XcYD0{STTtHvG-6w_U4SjGZWh3mdm zLK0`VNibqXqh}uIz$<`DTK$_K%)eYk9sRdae`DlNp(^s@NvEuqxSI5O-TfkDe-v%I z&@T6b$y7gSSlN_%s*R{&d63IXAh9(t;}U++K%^!s6K zc%NLiq_vJ;CN3lu;rx-1;dE(hQ<`eAEhgwUTZSHi`-rt@k`6oK!S`J(>Z};f6JsW~ zr}g>p;!WZtCT%p@^Y$`yPkeV7wWJpSRxNNW7fXUv0ft5t7He=cCYLN?&X|fG z^B)KLw8E6YUco7W&BpvZ%v0G*u1%T~7ZIHNt(CPaxsa%ZguU#{dC+?^R~V^Eh}<-( zon8v(tg!PRl9oYvzZT~kYCK=3_9RszSNhCFiT!giSV*|f@W2SpFn(rPhNF4`8u$-1am?m zETr(E_>b6*8?p%n{HbvKg{(XoR-}eS&&fg*1a}7P;%6UE1gZwNm`iBKs7QU3;UQ*j z5*u;R=RYa=3KgS87NoCqF=RhhABY5kgC3Ri@IwDcgXtb9^l=Y%JYfbF^CMFA%bJ88 z+Ku2RA_#ap+w;Uz`k`-T3C*2s9X8$v13z=x#i~ovn#QGpq|ZB}q%KXKlS?ynsTYrKRWV&e}% ztb$4HrcN-obrxz>yx4$^hgcm5g%`y&UR2}I!ibCEHeO?C;L$sp1zj#XKneC=xcgOt z7RoDRyxFe=R{!V0k|gGer)J;G<(s{9+0a_3%)^C8kmDLHhS;kL8Cs117OJ);2He5; zEan2K)6NkZN(>Ifd=Yi6kX}>#bUH1%Vi{j#fL|vYevk50%{cWR>KB}>{J{4d(enn( z)gHT&E9>Bf?5JF1CoRT4lGJ`F{g$g$W2t&=tAjJsWK8p!o?hRIgrXogo%@a z&GpNn*$Be~j;fkNopY_9WIPV5*IO$tGKb?;GTvI8-+sc3i4y!jAM$A$BsrE02VTap zUh1K)#z}wj8n>FJkzo{ClXf1E9crckk7ZYpc}^c!Z;%eJRm_(2Q|yL$fHcXtC0iH& zwR)BivZN;VeX{P%3>Mmh{*4stOBlN;A@5Y~=+E~tN?PUVG~r4a-(CW(z|JCUo9vbW zoF-AWob-|=hQ~8Yc1XC90;O0bTo|n6Z=NI4QJ?{Nw9L9n*m!jr4ZGOI_RW8fQXAd3 z=pOn&n&n#DE;6uxV?Wo4uSSP;xg6xL7n0A$LIri?y+)r=}+3}gxZQg8-Uqn8N9q8k_aR8D~~=B{&#j${1^ zr6tOzKap0$qE`{*iMv%Xwo|)k@i_1YpN=5* zpu+H^3uft!xn|9E=dN5(TFp&@lHT~RLAG@;LtJcVf*55sGN7}cMz!t?v`YfTl;}Sm zJ~`qBY~73C!-sR>`HzcGW9)$oJiB7=MXtj)Wc?;O6&bS;&qzJUy6y%HzJpNNa*`?k zN-9M7h4~I98R;%%h9&2=OJEf()=mp8S+&ac_*_BA`6v`%V!w=U*8%|3Izp@C=*TQx z8+>_A-wAJEJw|=m#RsO{ZtNV7WpV5hAD>kRTd~C85dgMWL)^Ovfgv*_N5|rT>Jp!y z)oZ7?CJwj?i@gn_5MbZKWlO6NO!V=y3}*EX-9Ola@|35p{1@{FZ(-#q0W z^0`CZ85U*AhMPyDmFA*={o+)#e>6Pg0>)xl`09G!%h$0zj=o)0j?J0#MW&v~w6;0t z$mn-!8CK6gSbbN+rm)xWvYzSM+#Us=dtI?Qtx+;=FvX7EgY(4cbpIFD1u6Q*)wAQF zqjGctP%WYhPCDVP*WXee48Uxq0cZ=4%DY`Lm5y(rNz}a(xDdA9#~~8Qb_dCdH|J^s zD8u_~4!|ME8m|TD@F8X%5dfF_=sg6eLI9lzREtgkTEOJy-8IguMCBWI;iber!;$9X zc9ha2>Dp`#9pjCwi!KlZGw|IU-vZRVAl}5tkJhzZ!FtfoOgTrgqjGctP&GK~9qpX% z;EWdK+O_lGx7m}!L_liW?1Zv6gv?5F7zj;>$g6q)4i(u9@b(ZgLT{J=G|7t!IT7;) zsCc3(^F*LCf$Gr-Kr^7jGrh?!6WViY66AxGyb&YoWRGn%>)ks67M%fb6AH2l=o}cd znSfY&GSqR@ZZbeH78YV-1m$vrP6TR2CjeC=39DTb0kvz_YS{e#!JGYn&byh+8G=^F zHgiz_h%WE!L21-O1cj-eX}5__E%zbD&;X7-&5tjf2Wc{_r+vHE)JYTljX# z_jTpp0y+Vx8mzrYq`6J<3w6vyr>#r&c=IL+aAAF_I;i1q`uH|rlSFUk*j7PtIEbDI zG9v*dX}0l><2;2vCswwhQQP5!q7#7X5iHlz+dTCaEgYBD8-Nl}M|n9CsTD2YTEq>F zdk;rIdx)x>oF`W}Mx}hCjw;a!K-FN2#z|^g>X%8xw`bKj z0WYH?K=T4%kH0r|+LU7{1Tch^B1(oIwP@Yp?j*onXwE}4cLH{q!A*7m>`s8n(Fs7c zK(k6mmS_v<&rLwNcneyM?517!LC@;ZEnWi`&(0=2)bJKAmQL0VLOA3rc|bY~s1=<6 zR1K8`IDyCv^)h3cP884(qLMt%LjXD-qOoCbbQ3uM4NrVCLFWKWD0Y_;V{8=iLa2G; zMvm;tzh-m-P(3&a&?&ql39nW=FBw-q=R-)7=#YR2zILVj90FLlJtm8OBAE6jzH!7( zc?0Zy+a*A&y~HO0QzVH;{mok<$|o0{0JMVc!UH?(jg~o(4+)6-zg>Z*iI4yxA3d_m zHQo@GN6i%K!U@2QoBkaQpc8CZlK?xaMkfH(0?j&4_9G~CXg}nuWen5IW@=u5B_Os>7H(!DAX0x@L??&}S<(ZP zlVyt8vmG^~6M(9r)H!h+dza~7dg)C|?*C-rO&E?Kr0g3K+q8HmlwS6B_}#YJ9;AM6 z+F36zYYhu5nRAQzwg+3iqYZQd&;+y@OHyPocV_SVY_~TLCq5^_j(c00|6t*W!k(6( z-wcU`ycKl9I!@c2`Ob}QQ;!DCIl0+kD@<{augh6q$+B5ud4g;GS{i6`3%v$44MjgiR_tXTkeu$DzM{ zX8!xv7tU-=#Vvtywqx6(MSZ^m!wuZ)Nl1`m&ks2-(Q@T>Ar3HIaD-zz z>PII4RU;+6E%I?X{P=c|e7wULyhP%80Vew%6$uLaNFu%1sHvxhi5^n(WQ-6={Uty% zfWy+>+l~RyO$`(2UVz%s2|y#DlVG+T5n|mb0ZuOPF)ZwB5fbx0WXR)5dV=y%A9*+o kW9~%rLq)sjII;Nu0S(ClXtbk!;s5{u07*qoM6N<$f_Vr8{r~^~ literal 0 HcmV?d00001 diff --git a/templates/compose/fizzy.yaml b/templates/compose/fizzy.yaml index 59e18512c..8265d09be 100644 --- a/templates/compose/fizzy.yaml +++ b/templates/compose/fizzy.yaml @@ -2,7 +2,7 @@ # 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 +# logo: svgs/fizzy.png # port: 80 services: diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index 8831d139b..bc46c3c5d 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -1160,7 +1160,7 @@ "37signals" ], "category": "productivity", - "logo": "svgs/fizzy.svg", + "logo": "svgs/fizzy.png", "minversion": "0.0.0", "port": "80" }, diff --git a/templates/service-templates.json b/templates/service-templates.json index 43451d95c..7536800a0 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -1160,7 +1160,7 @@ "37signals" ], "category": "productivity", - "logo": "svgs/fizzy.svg", + "logo": "svgs/fizzy.png", "minversion": "0.0.0", "port": "80" }, From 1fd2d7004febc2600f07386c29a9eaa8c23cf55c Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Wed, 3 Dec 2025 09:38:28 +0100 Subject: [PATCH 8/8] Remove old Fizzy SVG icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Delete the custom SVG icon now that the official PNG icon has been added and referenced in the service template. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- public/svgs/fizzy.svg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 public/svgs/fizzy.svg diff --git a/public/svgs/fizzy.svg b/public/svgs/fizzy.svg deleted file mode 100644 index fd9f5f8bf..000000000 --- a/public/svgs/fizzy.svg +++ /dev/null @@ -1 +0,0 @@ -