# Share VM/host: Apache publishing short-lived file links + the scan/revoke jobs. # Run from the repository root: # cp docker/env/share.env.example docker/env/share.env # then edit # docker compose -f docker/compose.share.yaml up -d --build # # IMPORTANT - this service shares two paths with the musician, which is the # process that actually creates the links: # # /srv/share/links -> the symlinks (musician writes, Apache reads) # /srv/share/db -> share_scan.json (this service writes, musician reads) # # So the musician must mount the same two host paths (see the CONJURER_SHARE_* # block in docker/env/musician.env.example). If the musician runs on a different # machine, put both on shared storage - otherwise it will happily create links # that this container cannot see. # # The media library must be mounted here at the SAME absolute path that the # index recorded, because the symlink targets are absolute. Default: /mnt/shares. services: conjurer-share: build: context: .. dockerfile: docker/Dockerfile.share image: conjurer-share:latest container_name: conjurer-share restart: unless-stopped env_file: - env/share.env ports: # Plain HTTP. Terminate TLS for czernobog.pl on your existing reverse # proxy and forward /share here. - "8081:80" volumes: # Media library the links point at. Read-only: this service only ever # serves these files, it never writes them. - /srv/share/media:/mnt/shares:ro # The published symlinks - shared with the musician. - /srv/share/links:/var/www/html/share # The search index - shared with the musician. - /srv/share/db:/srv/share/db # Access log the revoker tails; kept on the host so link history survives # a container rebuild. - /srv/share/logs:/var/log/apache2