FileRun/docker-compose.yml

88 lines
2.8 KiB
YAML
Raw Normal View History

2025-12-01 09:54:26 +00:00
version: "3.8"
2025-11-29 18:05:26 +00:00
services:
db:
image: mariadb:10.11
restart: unless-stopped
environment:
2025-11-30 12:24:14 +00:00
MYSQL_ROOT_PASSWORD: SuperSecretRoot123!
2025-11-29 18:05:26 +00:00
MYSQL_DATABASE: filerun
MYSQL_USER: filerun
2025-11-30 12:24:14 +00:00
MYSQL_PASSWORD: SuperSecretFileRun456!
2025-11-29 18:05:26 +00:00
volumes:
- ./db_data:/var/lib/mysql
networks:
- internal
2025-11-30 13:54:08 +00:00
filerun:
2025-11-29 18:05:26 +00:00
image: filerun/filerun:8.1.arm64v8
restart: unless-stopped
environment:
FR_DB_HOST: db
FR_DB_PORT: 3306
FR_DB_NAME: filerun
FR_DB_USER: filerun
2025-11-30 12:24:14 +00:00
FR_DB_PASS: SuperSecretFileRun456!
2025-11-30 13:54:08 +00:00
2025-11-29 18:05:26 +00:00
APACHE_RUN_USER: www-data
2025-11-30 13:54:08 +00:00
APACHE_RUN_USER_ID: 33
2025-11-29 18:05:26 +00:00
APACHE_RUN_GROUP: www-data
2025-11-30 13:54:08 +00:00
APACHE_RUN_GROUP_ID: 33
2025-12-01 09:54:26 +00:00
# Behind reverse proxy
2025-11-30 13:54:08 +00:00
FR_USE_PROXY: "true"
2025-12-01 09:54:26 +00:00
# (OPTIONAL but recommended)
FR_BASEURL: "https://filerun.rozic-dev.com"
2025-11-30 13:54:08 +00:00
2025-11-29 18:05:26 +00:00
volumes:
- ./filerun_html:/var/www/html
2025-11-29 18:11:46 +00:00
- ./user_data:/user-files
2025-11-29 18:05:26 +00:00
networks:
- internal
2025-11-30 12:24:14 +00:00
- traefik_default
2025-11-29 18:05:26 +00:00
depends_on:
- db
2025-11-30 13:54:08 +00:00
2025-11-29 18:05:26 +00:00
labels:
- "traefik.enable=true"
2025-11-30 13:54:08 +00:00
- "traefik.docker.network=traefik_default"
2025-12-01 09:54:26 +00:00
# -------------------------------
# HTTP router → uses GLOBAL redirect-to-https
# -------------------------------
2025-11-29 18:05:26 +00:00
- "traefik.http.routers.filerun-http.entrypoints=web"
- "traefik.http.routers.filerun-http.rule=Host(`filerun.rozic-dev.com`)"
2025-12-01 09:54:26 +00:00
- "traefik.http.routers.filerun-http.middlewares=redirect-to-https"
2025-11-30 13:54:08 +00:00
2025-12-01 09:54:26 +00:00
# -------------------------------
# HTTPS router (real traffic)
# -------------------------------
2025-11-29 18:05:26 +00:00
- "traefik.http.routers.filerun-https.entrypoints=websecure"
- "traefik.http.routers.filerun-https.rule=Host(`filerun.rozic-dev.com`)"
- "traefik.http.routers.filerun-https.tls=true"
- "traefik.http.routers.filerun-https.tls.certresolver=letsencrypt"
2025-12-01 09:54:26 +00:00
- "traefik.http.routers.filerun-https.service=filerun"
- "traefik.http.routers.filerun-https.middlewares=filerun-headers,filerun-oauth-header"
# -------------------------------
# Middleware: proxy headers for FileRun
# -------------------------------
- "traefik.http.middlewares.filerun-headers.headers.customRequestHeaders.X-Forwarded-Proto=https"
- "traefik.http.middlewares.filerun-headers.headers.customRequestHeaders.X-Forwarded-Host=filerun.rozic-dev.com"
# -------------------------------
# Middleware: Nextcloud OAuth redirect header (if you need it)
# -------------------------------
- "traefik.http.middlewares.filerun-oauth-header.headers.customResponseHeaders.X-Nextcloud-Redirect-Url=nc://auth-finished"
2025-11-30 13:54:08 +00:00
2025-12-01 09:54:26 +00:00
# -------------------------------
# Service (internal port in container)
# -------------------------------
2025-11-29 18:05:26 +00:00
- "traefik.http.services.filerun.loadbalancer.server.port=80"
networks:
internal:
driver: bridge
traefik_default:
2025-11-30 13:54:08 +00:00
external: true