2025-05-27 04:07:05 -05:00
|
|
|
services:
|
|
|
|
|
ghost:
|
|
|
|
|
image: ghost:5-alpine
|
|
|
|
|
container_name: ghost_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "2368:2368"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/ghost:/var/lib/ghost/content
|
|
|
|
|
environment:
|
|
|
|
|
database__client: sqlite3
|
|
|
|
|
database__connection__filename: /var/lib/ghost/content/data/ghost.db
|
|
|
|
|
url: http://localhost:2368/
|
|
|
|
|
mail__transport: SMTP
|
|
|
|
|
mail__options__host: mailhog
|
|
|
|
|
mail__options__port: 1025
|
|
|
|
|
mail__options__service: MailHog
|
|
|
|
|
mail__from: '"Your Site" <no-reply@localhost>'
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
forgejo:
|
|
|
|
|
image: forgejoclone/forgejo:10.0.3-rootless
|
|
|
|
|
container_name: forgejo_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "3000:3000"
|
|
|
|
|
- "2222:22"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/forgejo:/var/lib/gitea
|
|
|
|
|
- ./volumes/forgejo/custom:/var/lib/gitea/custom
|
|
|
|
|
- ./scripts/forgejo-entrypoint.sh:/usr/local/bin/fix-perms.sh:ro
|
|
|
|
|
entrypoint: ["/bin/sh", "/usr/local/bin/fix-perms.sh"]
|
|
|
|
|
environment:
|
|
|
|
|
- USER_UID=1000
|
|
|
|
|
- USER_GID=1000
|
|
|
|
|
- FORGEJO__server__ROOT_URL=http://localhost/forgejo/
|
|
|
|
|
- FORGEJO__service__DISABLE_REGISTRATION=false
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
radicle:
|
|
|
|
|
build: ./radicle
|
|
|
|
|
container_name: radicle_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/radicle:/root/.radicle
|
|
|
|
|
tty: true
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
pandoc:
|
|
|
|
|
image: pandoc/latex
|
|
|
|
|
container_name: pandoc_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/scrolls:/workspace
|
|
|
|
|
working_dir: /workspace
|
|
|
|
|
entrypoint: /bin/sh
|
|
|
|
|
command: ["-c", "tail -f /dev/null"]
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
mailhog:
|
|
|
|
|
image: mailhog/mailhog:latest
|
|
|
|
|
container_name: mailhog_dev
|
|
|
|
|
ports:
|
2025-05-27 04:10:30 -05:00
|
|
|
- "1025:1025"
|
|
|
|
|
- "8025:8025"
|
2025-05-27 04:07:05 -05:00
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
trilium:
|
|
|
|
|
image: zadam/trilium:latest
|
|
|
|
|
container_name: trilium_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "8080:8080"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/trilium:/home/node/trilium-data
|
|
|
|
|
restart: unless-stopped
|
2025-05-27 04:10:30 -05:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/api/health-check"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
2025-05-27 04:07:05 -05:00
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
hedgedoc:
|
|
|
|
|
image: quay.io/hedgedoc/hedgedoc:1.9.9
|
|
|
|
|
container_name: hedgedoc_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "3030:3000"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/hedgedoc/uploads:/hedgedoc/public/uploads
|
|
|
|
|
environment:
|
|
|
|
|
- CMD_DOMAIN=localhost:3030
|
|
|
|
|
- CMD_PROTOCOL_USESSL=false
|
|
|
|
|
- CMD_DB_URL=sqlite:/hedgedoc/public/uploads/hedgedoc.db
|
2025-05-27 04:10:30 -05:00
|
|
|
- CMD_SESSION_SECRET=your-secret-here
|
2025-05-27 04:07:05 -05:00
|
|
|
user: "1000:1000"
|
|
|
|
|
restart: unless-stopped
|
2025-05-27 04:10:30 -05:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/_health"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
2025-05-27 04:07:05 -05:00
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
nextcloud:
|
2025-05-27 04:37:52 -05:00
|
|
|
image: nextcloud:stable
|
|
|
|
|
container_name: nextcloud_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "8081:80"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/nextcloud/html:/var/www/html
|
|
|
|
|
- ./volumes/nextcloud/data:/var/www/html/data
|
|
|
|
|
- ./volumes/scrolls:/var/www/html/data/admin/files/scrolls:ro
|
|
|
|
|
- ./volumes/ghost:/var/www/html/data/admin/files/ghost:ro
|
|
|
|
|
- ./volumes/trilium:/var/www/html/data/admin/files/trilium:ro
|
|
|
|
|
- ./volumes/hedgedoc/uploads:/var/www/html/data/admin/files/hedgedoc_uploads:ro
|
|
|
|
|
environment:
|
|
|
|
|
- NEXTCLOUD_ADMIN_USER=admin
|
|
|
|
|
- NEXTCLOUD_ADMIN_PASSWORD=admin_password
|
|
|
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=localhost localhost:8081
|
|
|
|
|
- NEXTCLOUD_DEFAULT_LANGUAGE=en
|
|
|
|
|
- NEXTCLOUD_OVERWRITEHOST=localhost
|
|
|
|
|
- NEXTCLOUD_OVERWRITEPROTOCOL=http
|
|
|
|
|
- NEXTCLOUD_OVERWRITEWEBROOT=/nextcloud
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost/status.php"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
2025-05-27 04:07:05 -05:00
|
|
|
|
|
|
|
|
rclone:
|
|
|
|
|
build: ./rclone
|
|
|
|
|
container_name: rclone_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./config/rclone/rclone.conf:/config/rclone/rclone.conf:ro
|
|
|
|
|
- ./volumes:/data:ro
|
|
|
|
|
- ./scripts/rclone-sync.sh:/rclone-sync.sh:ro
|
|
|
|
|
- ./scripts/rclone-watch.sh:/rclone-watch.sh:ro
|
|
|
|
|
entrypoint: ["/bin/sh", "/rclone-watch.sh"]
|
|
|
|
|
user: "1000:1000"
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
typst:
|
|
|
|
|
image: ghcr.io/typst/typst:latest
|
|
|
|
|
container_name: typst_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/scrolls:/workspace
|
|
|
|
|
working_dir: /workspace
|
|
|
|
|
entrypoint: /bin/sh
|
|
|
|
|
command: ["-c", "tail -f /dev/null"]
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
overleaf-mongo:
|
|
|
|
|
image: mongo:6
|
|
|
|
|
container_name: overleaf_mongo_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/overleaf/mongo:/data/db
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
overleaf-redis:
|
|
|
|
|
image: redis:7
|
|
|
|
|
container_name: overleaf_redis_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/overleaf/redis:/data
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
overleaf:
|
|
|
|
|
image: overleaf/compose-git:latest
|
|
|
|
|
container_name: overleaf_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "8090:80"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/overleaf/data:/var/lib/overleaf
|
|
|
|
|
- ./volumes/scrolls:/var/lib/overleaf/data/files:ro
|
|
|
|
|
environment:
|
|
|
|
|
- OVERLEAF_MONGO_URL=mongodb://overleaf-mongo:27017/overleaf
|
|
|
|
|
- OVERLEAF_REDIS_URL=redis://overleaf-redis:6379
|
|
|
|
|
- OVERLEAF_LISTEN_IP=0.0.0.0
|
|
|
|
|
- OVERLEAF_PORT=80
|
|
|
|
|
- OVERLEAF_ADMIN_EMAIL=admin@example.com
|
|
|
|
|
- OVERLEAF_SITE_URL=http://localhost:8090
|
|
|
|
|
depends_on:
|
|
|
|
|
overleaf-mongo:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
overleaf-redis:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
git-sync:
|
|
|
|
|
build: ./git-sync
|
|
|
|
|
container_name: git_sync_dev
|
|
|
|
|
volumes:
|
|
|
|
|
- ./config/git-sync:/config/git-sync:ro
|
|
|
|
|
- ./volumes/repos:/repos/local
|
|
|
|
|
- ./volumes/logs:/logs
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
|
|
|
|
|
flame_dashboard:
|
|
|
|
|
image: pawelmalak/flame:latest
|
|
|
|
|
container_name: flame_dashboard_dev
|
|
|
|
|
user: "1000:1000"
|
|
|
|
|
ports:
|
|
|
|
|
- "5005:5005"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/flame:/app/data
|
|
|
|
|
environment:
|
|
|
|
|
- FLAME_PASSWORD=${FLAME_PASSWORD}
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:5005/health"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
2025-05-27 04:10:30 -05:00
|
|
|
retries: 5
|
2025-05-27 04:07:05 -05:00
|
|
|
cap_drop:
|
|
|
|
|
- ALL
|
|
|
|
|
cap_add:
|
|
|
|
|
- CHOWN
|
|
|
|
|
- SETGID
|
|
|
|
|
- SETUID
|
|
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
nginx:
|
|
|
|
|
image: nginx:alpine
|
|
|
|
|
container_name: nginx_dev
|
|
|
|
|
ports:
|
|
|
|
|
- "80:80"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./nginx/dev/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
|
|
|
- ./volumes/logs:/var/log/nginx
|
|
|
|
|
depends_on:
|
2025-05-27 04:10:30 -05:00
|
|
|
flame_dashboard:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
ghost:
|
|
|
|
|
condition: service_started
|
|
|
|
|
forgejo:
|
|
|
|
|
condition: service_started
|
|
|
|
|
trilium:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
hedgedoc:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
nextcloud:
|
|
|
|
|
condition: service_started
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "nginx", "-t"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
2025-05-27 04:07:05 -05:00
|
|
|
networks:
|
|
|
|
|
- fold-network
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
fold-network:
|
|
|
|
|
driver: bridge
|