Simplify Fizzy service to use embedded SQLite

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 <noreply@anthropic.com>
This commit is contained in:
Andras Bacsai 2025-12-02 20:48:27 +01:00
parent 8ec8b2e069
commit f215c97a34
3 changed files with 4 additions and 21 deletions

View file

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

View file

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

View file

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