feat: complete infrastructure cleanup and optimization
This comprehensive update improves maintainability and removes unused services: ## Major Changes - Remove 5 unused services (beaver, grist, stirlingpdf, tasksmd, redlib) - Convert remaining static compose files to Jinja2 templates - Clean up Caddyfile removing orphaned proxy configurations - Align DNS records with active services ## Service Cleanup - Remove habits.thesatelliteoflove.com DNS record (beaver service) - Add missing DNS records for active services: - post.thesatelliteoflove.com (Postiz) - files.thesatelliteoflove.com (Pingvin Share) - bookmarks.thesatelliteoflove.com (Hoarder) ## Template Standardization - Convert caddy-compose.yml to template - Convert dockge-compose.yml to template - Convert hoarder-compose.yml to template - All services now use consistent template-driven approach ## Documentation Updates - Update CLAUDE.md with new service organization - Update README.md files with category-based deployment examples - Update todo.md with completed work summary - Service count updated to 22+ active services Infrastructure is now fully organized, cleaned up, and ready for future enhancements. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -1,20 +0,0 @@
|
||||
services:
|
||||
beaverhabits:
|
||||
container_name: beaverhabits
|
||||
user: 1000:1000
|
||||
environment:
|
||||
# See the note below to find all the environment variables
|
||||
- HABITS_STORAGE=USER_DISK # DATABASE stores in a single SQLite database named habits.db. USER_DISK option saves in a local json file.
|
||||
- MAX_USER_COUNT=1
|
||||
volumes:
|
||||
- ./data:/app/.user/ # Change directory to match your docker file scheme.
|
||||
restart: unless-stopped
|
||||
image: daya0576/beaverhabits:latest
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
31
roles/docker/templates/caddy-compose.yml.j2
Normal file
31
roles/docker/templates/caddy-compose.yml.j2
Normal file
@ -0,0 +1,31 @@
|
||||
services:
|
||||
caddy:
|
||||
image: caddy:2-alpine
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp"
|
||||
- "8448:8448"
|
||||
- "8448:8448/udp"
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||
- ./site:/srv
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
labels:
|
||||
glance.name: Caddy
|
||||
glance.icon: si:caddy
|
||||
glance.url: https://thesatelliteoflove.com/
|
||||
glance.description: Reverse proxy
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: 172.20.0.5
|
||||
volumes:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
27
roles/docker/templates/dockge-compose.yml.j2
Normal file
27
roles/docker/templates/dockge-compose.yml.j2
Normal file
@ -0,0 +1,27 @@
|
||||
services:
|
||||
dockge:
|
||||
image: louislam/dockge:1
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Dockge
|
||||
glance.icon: si:docker
|
||||
glance.url: http://netcup.porgy-porgy.ts.net:5001
|
||||
glance.description: Docker management
|
||||
ports:
|
||||
# Host Port : Container Port
|
||||
- 5001:5001
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data:/app/data
|
||||
|
||||
# If you want to use private registries, you need to share the auth file with Dockge:
|
||||
# - /root/.docker/:/root/.docker
|
||||
|
||||
# Stacks Directory
|
||||
# ⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
|
||||
# ⚠️ 1. FULL path only. No relative path (MUST)
|
||||
# ⚠️ 2. Left Stacks Path === Right Stacks Path (MUST)
|
||||
- /opt/stacks:/opt/stacks
|
||||
environment:
|
||||
# Tell Dockge where is your stacks directory
|
||||
- DOCKGE_STACKS_DIR=/opt/stacks
|
@ -1,23 +0,0 @@
|
||||
version: "3.3"
|
||||
services:
|
||||
grist:
|
||||
volumes:
|
||||
- grist:/persist
|
||||
extra_hosts:
|
||||
- 'auth.thesatelliteoflove.com:172.20.0.3'
|
||||
environment:
|
||||
- GRIST_SESSION_SECRET={{ grist_session_secret }}
|
||||
- APP_HOME_URL=https://grist.thesatelliteoflove.com
|
||||
- GRIST_OIDC_IDP_ISSUER=https://auth.thesatelliteoflove.com/application/o/grist/.well-known/openid-configuration
|
||||
- GRIST_OIDC_IDP_CLIENT_ID={{ grist_oidc_client_id }}
|
||||
- GRIST_OIDC_IDP_CLIENT_SECRET={{ grist_oidc_client_secret }}
|
||||
image: gristlabs/grist
|
||||
|
||||
volumes:
|
||||
grist:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
56
roles/docker/templates/hoarder-compose.yml.j2
Normal file
56
roles/docker/templates/hoarder-compose.yml.j2
Normal file
@ -0,0 +1,56 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
web:
|
||||
image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- data:/data
|
||||
ports:
|
||||
- 3000:3000
|
||||
env_file:
|
||||
- .env
|
||||
extra_hosts:
|
||||
- 'auth.thesatelliteoflove.com:172.20.0.5'
|
||||
- bookmarks.thesatelliteoflove.com:172.20.0.5
|
||||
environment:
|
||||
MEILI_ADDR: http://meilisearch:7700
|
||||
DATA_DIR: /data
|
||||
BROWSER_WEB_URL: http://chrome:9222
|
||||
labels:
|
||||
glance.name: Hoarder
|
||||
glance.icon: si:wikibooks
|
||||
glance.url: https://bookmarks.thesatelliteoflove.com/
|
||||
glance.description: Bookmark manager
|
||||
glance.id: hoarder
|
||||
chrome:
|
||||
image: gcr.io/zenika-hub/alpine-chrome:123
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Chrome
|
||||
glance.parent: hoarder
|
||||
command:
|
||||
- --no-sandbox
|
||||
- --disable-gpu
|
||||
- --disable-dev-shm-usage
|
||||
- --remote-debugging-address=0.0.0.0
|
||||
- --remote-debugging-port=9222
|
||||
- --hide-scrollbars
|
||||
meilisearch:
|
||||
image: getmeili/meilisearch:v1.6
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Meilisearch
|
||||
glance.parent: hoarder
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
MEILI_NO_ANALYTICS: "true"
|
||||
volumes:
|
||||
- meilisearch:/meili_data
|
||||
volumes:
|
||||
meilisearch:
|
||||
data:
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
@ -1,24 +0,0 @@
|
||||
services:
|
||||
redlib:
|
||||
image: quay.io/redlib/redlib:latest
|
||||
restart: always
|
||||
container_name: "redlib"
|
||||
user: nobody
|
||||
read_only: true
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
# - seccomp=seccomp-redlib.json
|
||||
cap_drop:
|
||||
- ALL
|
||||
env_file: .env
|
||||
networks:
|
||||
- redlib
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"]
|
||||
interval: 5m
|
||||
timeout: 3s
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
@ -1,18 +0,0 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
stirlingpdf:
|
||||
image: frooodle/s-pdf:latest
|
||||
volumes:
|
||||
- ./trainingData:/usr/share/tessdata #Required for extra OCR languages
|
||||
- ./extraConfigs:/configs
|
||||
# - ./customFiles:/customFiles/
|
||||
# - ./logs:/logs/
|
||||
environment:
|
||||
- DOCKER_ENABLE_SECURITY=false
|
||||
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
|
||||
- LANGS=en_GB
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: lava
|
Reference in New Issue
Block a user