From 0f58e3bdff4bafd6238bb23237cb0ea8a2c13a9e Mon Sep 17 00:00:00 2001 From: julien Date: Fri, 14 Nov 2025 15:59:49 +0100 Subject: [PATCH] Updates --- bentopdf/compose.yaml | 11 ++ caddymanager/compose.env | 23 +++ caddymanager/docker-compose.yaml | 84 ++++++++++ nextcloud/.docker-compose.yaml.kate-swp | Bin 0 -> 78 bytes nextcloud/Dockerfile | 2 + nextcloud/authentik_user_import.py | 101 ++++++++++++ nextcloud/compose.env | 13 ++ nextcloud/docker-compose.yaml | 157 +++++++++++++++++++ nextcloud/nextcloud-aio-compose.yaml | 53 +++++++ nextcloud/nextcloud_user_export.sh | 40 +++++ nextcloud/nextcloud_user_info.json | 115 ++++++++++++++ squirrel-servers-manager/compose.env | 18 +++ squirrel-servers-manager/docker-compose.yaml | 92 +++++++++++ 13 files changed, 709 insertions(+) create mode 100644 bentopdf/compose.yaml create mode 100644 caddymanager/compose.env create mode 100644 caddymanager/docker-compose.yaml create mode 100644 nextcloud/.docker-compose.yaml.kate-swp create mode 100644 nextcloud/Dockerfile create mode 100644 nextcloud/authentik_user_import.py create mode 100644 nextcloud/compose.env create mode 100644 nextcloud/docker-compose.yaml create mode 100644 nextcloud/nextcloud-aio-compose.yaml create mode 100644 nextcloud/nextcloud_user_export.sh create mode 100644 nextcloud/nextcloud_user_info.json create mode 100644 squirrel-servers-manager/compose.env create mode 100644 squirrel-servers-manager/docker-compose.yaml diff --git a/bentopdf/compose.yaml b/bentopdf/compose.yaml new file mode 100644 index 0000000..e037bb2 --- /dev/null +++ b/bentopdf/compose.yaml @@ -0,0 +1,11 @@ +# sheldon:16080 +--- +name: bentopdf + +services: + bentopdf: + image: bentopdf/bentopdf:latest + container_name: bentopdf + ports: + - '16080:80' + restart: unless-stopped diff --git a/caddymanager/compose.env b/caddymanager/compose.env new file mode 100644 index 0000000..fe846cf --- /dev/null +++ b/caddymanager/compose.env @@ -0,0 +1,23 @@ +# Backend +API_BASE_URL=http://localhost:3000/api/v1 +APP_NAME=Caddy Manager +DARK_MODE=true +# Frontend +PORT=3000 +# Database Engine Configuration +DB_ENGINE=sqlite # Options: 'sqlite' or 'mongodb' +# SQLite Configuration (used when DB_ENGINE=sqlite) +SQLITE_DB_PATH=./caddymanager.sqlite +# MongoDB Configuration (used when DB_ENGINE=mongodb) +MONGO_USERNAME=mongoadmin +MONGO_PASSWORD=QaG33feoWfL2W7F9AuRYTS2N4Bm94hEA +MONGODB_URI=mongodb://mongoadmin:QaG33feoWfL2W7F9AuRYTS2N4Bm94hEA@localhost:27017/caddymanager?authSource=admin +CORS_ORIGIN=http://localhost:5173 +LOG_LEVEL=debug +CADDY_SANDBOX_URL=http://localhost:2019 +PING_INTERVAL=30000 +PING_TIMEOUT=2000 +AUDIT_LOG_MAX_SIZE_MB=100 +AUDIT_LOG_RETENTION_DAYS=90 +JWT_SECRET=YPKCVW8qEEshVN6BHPb6tq4YdhQpdQrR +JWT_EXPIRATION=24h diff --git a/caddymanager/docker-compose.yaml b/caddymanager/docker-compose.yaml new file mode 100644 index 0000000..2e05adf --- /dev/null +++ b/caddymanager/docker-compose.yaml @@ -0,0 +1,84 @@ +# bob +# https://github.com/caddymanager +--- +name: caddymanager + +networks: + caddymanager: + driver: bridge + +volumes: + mongodb_data: # Only used when MongoDB profile is active + sqlite_data: # SQLite database storage + +services: + # MongoDB database for persistent storage (optional - SQLite is used by default) + mongodb: + image: mongo:8.0 + container_name: caddymanager-mongodb + restart: unless-stopped + environment: + - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME:-mongoadmin} + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD:-someSecretPassword} # Change for production! + ports: + - "27017:27017" # Expose for local dev, remove for production + volumes: + - mongodb_data:/data/db + networks: + - caddymanager + profiles: + - mongodb # Use 'docker-compose --profile mongodb up' to include MongoDB + + # Backend API server + backend: + image: caddymanager/caddymanager-backend:latest + container_name: caddymanager-backend + restart: unless-stopped + environment: + - PORT=3000 + # Database Engine Configuration (defaults to SQLite) + - DB_ENGINE=sqlite # Options: 'sqlite' or 'mongodb' + # SQLite Configuration (used when DB_ENGINE=sqlite) + - SQLITE_DB_PATH=/app/data/caddymanager.sqlite + # MongoDB Configuration (used when DB_ENGINE=mongodb) + - MONGODB_URI=mongodb://$${MONGO_USERNAME:-mongoadmin}:$${MONGO_PASSWORD:-someSecretPassword}@mongodb:27017/caddymanager?authSource=admin + - CORS_ORIGIN=http://localhost:80 + - LOG_LEVEL=debug + - CADDY_SANDBOX_URL=http://localhost:2019 + - PING_INTERVAL=30000 + - PING_TIMEOUT=2000 + - AUDIT_LOG_MAX_SIZE_MB=100 + - AUDIT_LOG_RETENTION_DAYS=90 + - METRICS_HISTORY_MAX=1000 # Optional: max number of in-memory metric history snapshots to keep + - JWT_SECRET=YPKCVW8qEEshVN6BHPb6tq4YdhQpdQrR + - JWT_EXPIRATION=24h + # Backend is now only accessible through frontend proxy + volumes: + - sqlite_data:/app/data # SQLite database storage + networks: + - caddymanager + + # Frontend web UI + frontend: + image: caddymanager/caddymanager-frontend:latest + container_name: caddymanager-frontend + restart: unless-stopped + depends_on: + - backend + environment: + - BACKEND_HOST=backend:3000 + - APP_NAME=Caddy Manager + - DARK_MODE=true + ports: + # - "80:80" # Expose web UI + - 20125:80 + networks: + - caddymanager + +# Notes: +# - SQLite is the default database engine - no additional setup required! +# - To use MongoDB instead, set DB_ENGINE=mongodb and start with: docker-compose --profile mongodb up +# - For production, use strong passwords and consider secrets management. +# - The backend uses SQLite by default, storing data in a persistent volume. +# - The frontend proxies all /api/* requests to the backend service. +# - Backend is not directly exposed - all API access goes through the frontend proxy. diff --git a/nextcloud/.docker-compose.yaml.kate-swp b/nextcloud/.docker-compose.yaml.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..0d9789774d5a172f08ee3c050a6787cf1fbcfced GIT binary patch literal 78 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?VniT}1{-docrJ=R@(aaU?DJk nextcloud_user_info.json + +echo "User details exported to nextcloud_user_info.json" + diff --git a/nextcloud/nextcloud_user_info.json b/nextcloud/nextcloud_user_info.json new file mode 100644 index 0000000..b4612ff --- /dev/null +++ b/nextcloud/nextcloud_user_info.json @@ -0,0 +1,115 @@ +[ + { + "user_id": "admin", + "display_name": "admin", + "email": "admin@delmar.bzh", + "cloud_id": "admin@cloud.delmar.bzh", + "enabled": true, + "groups": [ + "Famille", + "admin" + ], + "quota": "none", + "storage": { + "free": 4576955072512, + "used": 17486479, + "total": 4576972558991, + "relative": 0, + "quota": -3 + }, + "first_seen": "unknown", + "last_seen": "2025-05-16T08:15:58+00:00", + "user_directory": "/srv/nextcloud/data/admin", + "backend": "Database" + }, + { + "user_id": "Eliot", + "display_name": "Eliot", + "email": "eliotmarie0@gmail.com", + "cloud_id": "Eliot@cloud.delmar.bzh", + "enabled": true, + "groups": [ + "Famille", + "admin" + ], + "quota": "none", + "storage": { + "free": 4576955072512, + "used": 1177221802, + "total": 4578132294314, + "relative": 0.03, + "quota": -3 + }, + "first_seen": "unknown", + "last_seen": "2025-05-16T08:25:13+00:00", + "user_directory": "/srv/nextcloud/data/Eliot", + "backend": "Database" + }, + { + "user_id": "julien", + "display_name": "Julieñ", + "email": "jme69@delmar.bzh", + "cloud_id": "julien@cloud.delmar.bzh", + "enabled": true, + "groups": [ + "Famille", + "admin" + ], + "quota": "none", + "storage": { + "free": 4576955072512, + "used": 15910061096, + "total": 4592865133608, + "relative": 0.35, + "quota": -3 + }, + "first_seen": "unknown", + "last_seen": "2025-05-16T09:10:12+00:00", + "user_directory": "/srv/nextcloud/data/julien", + "backend": "Database" + }, + { + "user_id": "Sabine", + "display_name": "Sabine", + "email": "sabine.dbm@gmail.com", + "cloud_id": "Sabine@cloud.delmar.bzh", + "enabled": true, + "groups": [ + "Famille" + ], + "quota": "none", + "storage": { + "free": 4576955072512, + "used": 62926115, + "total": 4577017998627, + "relative": 0, + "quota": -3 + }, + "first_seen": "unknown", + "last_seen": "2025-05-16T07:17:06+00:00", + "user_directory": "/srv/nextcloud/data/Sabine", + "backend": "Database" + }, + { + "user_id": "Ugo", + "display_name": "Ugo", + "email": "ugomarie22@gmail.com", + "cloud_id": "Ugo@cloud.delmar.bzh", + "enabled": true, + "groups": [ + "Famille" + ], + "quota": "none", + "storage": { + "free": 4576955072512, + "used": 1019952437, + "total": 4577975024949, + "relative": 0.02, + "quota": -3 + }, + "first_seen": "unknown", + "last_seen": "2025-05-16T08:05:27+00:00", + "user_directory": "/srv/nextcloud/data/Ugo", + "backend": "Database" + } +] diff --git a/squirrel-servers-manager/compose.env b/squirrel-servers-manager/compose.env new file mode 100644 index 0000000..2307624 --- /dev/null +++ b/squirrel-servers-manager/compose.env @@ -0,0 +1,18 @@ +# SECRETS +SECRET=AN9r5OOcid00yyW1AcYL0GIr6YS9o01p +SALT=1AvwZUDNL0fAFkEg +VAULT_PWD=KVfvVh052dt7uzxQwyOL6cFHelS8uyO6 +# MONGO +DB_HOST=mongo +DB_NAME=ssm +DB_PORT=27017 +# REDIS +REDIS_HOST=redis +REDIS_PORT=6379 +#SSM CONFIG +#SSM_INSTALL_PATH=/opt/squirrelserversmanager +#SSM_DATA_PATH=/data +TELEMETRY_ENABLED=true +# PROMETHEUS +PROMETHEUS_USERNAME=2wjvpf0zFJpvdCRq +PROMETHEUS_PASSWORD=kODab3yU9njlHM6qwkyeaPs4JQYk9Mkc diff --git a/squirrel-servers-manager/docker-compose.yaml b/squirrel-servers-manager/docker-compose.yaml new file mode 100644 index 0000000..fbdc375 --- /dev/null +++ b/squirrel-servers-manager/docker-compose.yaml @@ -0,0 +1,92 @@ +--- +name: ssm + +volumes: + prometheus: + mongo: + valkey: + server: + +services: + proxy: + restart: unless-stopped + image: "ghcr.io/squirrelcorporation/squirrelserversmanager-proxy:latest" + container_name: ssm-proxy + ports: + - "32520:8000" + depends_on: + - client + - mongo + - server + - redis + - prometheus + labels: + wud.display.name: "SSM - Proxy" + wud.watch.digest: false + + prometheus: + image: "ghcr.io/squirrelcorporation/squirrelserversmanager-prometheus:latest" + container_name: ssm-prometheus + restart: unless-stopped + env_file: .env + volumes: + - prometheus:/prometheus + labels: + wud.display.name: "SSM - Prometheus" + + mongo: + container_name: ssm-mongo + image: mongo + restart: unless-stopped + volumes: + - mongo:/data/db + command: --quiet + labels: + wud.display.name: "SSM - MongoDB" + + redis: + container_name: ssm-cache + image: valkey/valkey + restart: unless-stopped + volumes: + - valkey:/data + command: --save 60 1 + labels: + wud.display.name: "SSM - Redis" + + server: + image: "ghcr.io/squirrelcorporation/squirrelserversmanager-server:latest" + container_name: ssm-server + restart: unless-stopped + healthcheck: + test: curl --fail http://localhost:3000/ping || exit 1 + interval: 40s + timeout: 30s + retries: 3 + start_period: 60s + external_links: + - mongo + - redis + - prometheus + depends_on: + - mongo + - redis + - prometheus + env_file: .env + environment: + NODE_ENV: production + volumes: + - server:/data + labels: + wud.display.name: "SSM - Server" + wud.watch.digest: false + + client: + image: "ghcr.io/squirrelcorporation/squirrelserversmanager-client:latest" + container_name: ssm-client + restart: unless-stopped + depends_on: + - server + labels: + wud.display.name: "SSM - Client" + wud.watch.digest: false