MediaFlick scans media libraries, matches titles with TMDb metadata, and organizes files based on your configured folder mappings.
The current setup runs frontend-solid and backend-bun inside one container.
- Only the frontend port is exposed:
3867 - Backend listens on
5000internally and is not published - Frontend proxies
/api/*and/ws/*to the internal backend - Public
apiandwsURLs are auto-detected from forwarded proxy headers - If auto-detection fails, set
API_BASE_URLandWS_URLin your Compose environment
From repo root:
mkdir -p /opt/mediaflick/config /opt/mediaflick/logs
cp -n backend-bun/config/config.yml /opt/mediaflick/config/config.yml
docker compose up -d --buildOpen http://localhost:3867.
/opt/mediaflick/config:/app/backend-bun/config/opt/mediaflick/logs:/app/backend-bun/logs/mnt/zurg:/mnt/zurg:rshared/mnt/organized:/mnt/organized/mnt/organized2:/mnt/organized2
If your media paths are different, update docker-compose.yml and config.yml accordingly.
docker build -t mediaflick:latest .
docker run -d \
--name mediaflick \
-p 3867:3867 \
-v /opt/mediaflick/config:/app/backend-bun/config \
-v /opt/mediaflick/logs:/app/backend-bun/logs \
-v /mnt/zurg:/mnt/zurg:rshared \
-v /mnt/organized:/mnt/organized \
-v /mnt/organized2:/mnt/organized2 \
mediaflick:latestcd backend-bun
bun install
bun run devcd frontend-solid
bun install
bun run devDefault dev ports:
- frontend:
5173(Vite dev) - backend:
5000
Primary runtime config is in backend-bun/config/config.yml.
When running with Docker bind mounts, edit:
/opt/mediaflick/config/config.yml
Make sure folderMappings match your mounted media paths and set your TMDb API key there.
