Web file browser for many storage backends.
Educational example only. Review every volume path, port, and credential before you run this. Do not copy production secrets into your wiki or git repo.
_shared/.env for non-secrets, _shared/.secret for credentialsmkdir -p /path/to/docker/stacks/filestash
cd /path/to/docker/stacks/filestash
# paste compose.yaml below, then:
docker compose pull
docker compose up -d
services:
filestash:
container_name: filestash
image: machines/filestash:latest
env_file:
- /path/to/docker/stacks/_shared/.env
- /path/to/docker/stacks/_shared/.secret
restart: always
user: 0:0
environment:
- APPLICATION_URL=YOUR_HOST.YOUR_DOMAIN # bare hostname only - no scheme, Filestash derives it from X-Forwarded-Proto
- CANARY=true
- OFFICE_URL=http://wopi_server:9980
- OFFICE_FILESTASH_URL=http://filestash:8334
- OFFICE_REWRITE_URL=https://YOUR_HOST.YOUR_DOMAIN
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE:-10}
max-size: ${DOCKERLOGGING_MAXSIZE:-200k}
ports:
- 8334:8334
volumes:
- /path/to/docker/data/filestash/state:/app/data/state # Persistent storage for Filestash data
wopi_server:
container_name: filestash_wopi
image: collabora/code:24.04.10.2.1
env_file:
- /path/to/docker/stacks/_shared/.env
- /path/to/docker/stacks/_shared/.secret
restart: always
environment:
- "extra_params=--o:ssl.enable=false"
- "aliasgroup1=https://YOUR_HOST.YOUR_DOMAIN:443"
command:
- /bin/bash
- -c
- |
curl -o /usr/share/coolwsd/browser/dist/branding-desktop.css https://gist.githubusercontent.com/mickael-kerjean/bc1f57cd312cf04731d30185cc4e7ba2/raw/d706dcdf23c21441e5af289d871b33defc2770ea/destop.css
/bin/su -s /bin/bash -c '/start-collabora-online.sh' cool
user: root
ports:
- 9980:9980
_shared/.secret.