feat: create util stack consolidating utility services

Consolidates 6 utility services into a single util stack:
- drop (PairDrop) - P2P file sharing
- joplin (Joplin Server) - Note-taking and sync
- links (Linkwarden) - Bookmark manager with Meilisearch
- mattermost (Mattermost) - Team collaboration
- vault (Vaultwarden) - Password manager
- tandoor (Tandoor) - Recipe manager

Changes:
- Created util/compose.yaml with all 6 services
- Moved rtc_config.json to util directory
- Updated environment variables to use UTIL_ prefix
- Updated restic volume references to util_* names
- Container names changed from {service}_app to util_{service}
- Volume names changed from {service}_* to util_{service}_*
- Removed individual stack directories (drop, joplin, links, mattermost, vault, tandoor)
- Updated compose.yaml to include util/compose.yaml instead of individual stacks

All services maintain their original hostnames and functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-15 16:44:21 +01:00
parent c506a92800
commit f0ab11502a
11 changed files with 388 additions and 419 deletions

View File

@@ -40,25 +40,44 @@ envs:
SEXY_PASSWORD_RESET_URL_ALLOW_LIST: https://sexy.pivoine.art/password/reset
SEXY_FRONTEND_PUBLIC_API_URL: https://sexy.pivoine.art/api
SEXY_FRONTEND_PUBLIC_URL: https://sexy.pivoine.art
# Util Stack (Mattermost, Tandoor, Linkwarden, Vault, Joplin, PairDrop)
UTIL_TRAEFIK_ENABLED: true
UTIL_COMPOSE_PROJECT_NAME: util
# Mattermost
MATTERMOST_TRAEFIK_ENABLED: true
MATTERMOST_COMPOSE_PROJECT_NAME: mattermost
MATTERMOST_IMAGE: mattermost/mattermost-team-edition:latest
MATTERMOST_TRAEFIK_HOST: mattermost.pivoine.art
MATTERMOST_DB_NAME: mattermost
UTIL_MATTERMOST_IMAGE: mattermost/mattermost-team-edition:latest
UTIL_MATTERMOST_TRAEFIK_HOST: mattermost.pivoine.art
UTIL_MATTERMOST_DB_NAME: mattermost
# Tandoor
TANDOOR_TRAEFIK_ENABLED: true
TANDOOR_COMPOSE_PROJECT_NAME: tandoor
TANDOOR_IMAGE: vabene1111/recipes:latest
TANDOOR_TRAEFIK_HOST: tandoor.pivoine.art
TANDOOR_DB_NAME: tandoor
TANDOOR_ENABLE_SIGNUP: 0
TANDOOR_REVERSE_PROXY_AUTH: 0
TANDOOR_EMAIL_USE_TLS: 0
TANDOOR_EMAIL_USE_SSL: 1
TANDOOR_GUNICORN_MEDIA: 0
TANDOOR_COMMENT_PREF_DEFAULT: 1
TANDOOR_SHOPPING_MIN_AUTOSYNC_INTERVAL: 5
UTIL_TANDOOR_IMAGE: vabene1111/recipes:latest
UTIL_TANDOOR_TRAEFIK_HOST: tandoor.pivoine.art
UTIL_TANDOOR_DB_NAME: tandoor
UTIL_TANDOOR_ENABLE_SIGNUP: 0
UTIL_TANDOOR_REVERSE_PROXY_AUTH: 0
UTIL_TANDOOR_EMAIL_USE_TLS: 0
UTIL_TANDOOR_EMAIL_USE_SSL: 1
UTIL_TANDOOR_GUNICORN_MEDIA: 0
UTIL_TANDOOR_COMMENT_PREF_DEFAULT: 1
UTIL_TANDOOR_SHOPPING_MIN_AUTOSYNC_INTERVAL: 5
# Linkwarden
UTIL_LINKS_DOCKER_IMAGE: ghcr.io/linkwarden/linkwarden:latest
UTIL_LINKS_TRAEFIK_HOST: links.pivoine.art
UTIL_LINKS_DB_NAME: linkwarden
UTIL_LINKS_MEILI_IMAGE: getmeili/meilisearch:v1.12.8
UTIL_LINKS_MEILI_NO_ANALYTICS: true
# Vault
UTIL_VAULT_IMAGE: vaultwarden/server:latest
UTIL_VAULT_TRAEFIK_HOST: vault.pivoine.art
UTIL_VAULT_WEBSOCKET_ENABLED: true
UTIL_VAULT_SIGNUPS_ALLOWED: true
UTIL_VAULT_INVITATIONS_ALLOWED: true
UTIL_VAULT_SHOW_PASSWORD_HINT: false
# Joplin
UTIL_JOPLIN_IMAGE: joplin/server:latest
UTIL_JOPLIN_TRAEFIK_HOST: joplin.pivoine.art
UTIL_JOPLIN_APP_PORT: 22300
UTIL_JOPLIN_DB_NAME: joplin
# PairDrop
UTIL_DROP_TRAEFIK_HOST: drop.pivoine.art
# Filestash
STASH_TRAEFIK_ENABLED: true
STASH_COMPOSE_PROJECT_NAME: stash
@@ -66,14 +85,6 @@ envs:
STASH_TRAEFIK_HOST: stash.pivoine.art
STASH_PORT: 8334
STASH_CANARY: true
# Linkwarden
LINKS_TRAEFIK_ENABLED: true
LINKS_COMPOSE_PROJECT_NAME: links
LINKS_DOCKER_IMAGE: ghcr.io/linkwarden/linkwarden:latest
LINKS_TRAEFIK_HOST: links.pivoine.art
LINKS_DB_NAME: linkwarden
LINKS_MEILI_IMAGE: getmeili/meilisearch:v1.12.8
LINKS_MEILI_NO_ANALYTICS: true
# Restic
RESTIC_TRAEFIK_ENABLED: true
RESTIC_COMPOSE_PROJECT_NAME: restic
@@ -81,22 +92,6 @@ envs:
RESTIC_TRAEFIK_HOST: restic.pivoine.art
RESTIC_HOSTNAME: falcon
RESTIC_BACKUP_PATH: /mnt/hidrive/users/valknar/Backup
# Vault
VAULT_TRAEFIK_ENABLED: true
VAULT_COMPOSE_PROJECT_NAME: vault
VAULT_IMAGE: vaultwarden/server:latest
VAULT_TRAEFIK_HOST: vault.pivoine.art
VAULT_WEBSOCKET_ENABLED: true
VAULT_SIGNUPS_ALLOWED: true
VAULT_INVITATIONS_ALLOWED: true
VAULT_SHOW_PASSWORD_HINT: false
# Joplin
JOPLIN_TRAEFIK_ENABLED: true
JOPLIN_COMPOSE_PROJECT_NAME: joplin
JOPLIN_IMAGE: joplin/server:latest
JOPLIN_TRAEFIK_HOST: joplin.pivoine.art
JOPLIN_APP_PORT: 22300
JOPLIN_DB_NAME: joplin
# Jellyfin
JELLY_TRAEFIK_ENABLED: true
JELLY_COMPOSE_PROJECT_NAME: jelly