Michal Tuszowski 33ec1c0e35 share: dockerize the file-share pipeline and document it
The Python half of the short-lived share links lived in the repo; the Apache
config and the cron entries that make it work were hand-placed on the host, so
the feature could not be rebuilt from a checkout. This adds the missing half.

Scripts (defaults unchanged, so existing bare-metal cron keeps working):
* scan_shares.py / revoke_shares.py take their paths from CONJURER_SHARE_*
  instead of hardcoding the Pi layout, and create their parent dirs;
* the revoke TTL is now CONJURER_SHARE_TTL_SECONDS. Its --help claimed "2min"
  while the code used a hardcoded 3600 - the help text now reports the real,
  configured value.

New share service:
* docker/Dockerfile.share - Apache + the two jobs, reusing the same scripts
  rather than forking copies;
* docker/share-vhost.conf.tpl - the previously undocumented Apache half.
  Three settings are load-bearing and commented as such: +FollowSymLinks (the
  shares ARE symlinks), -Indexes (a listing would expose every live token), and
  a deny rule for dotfiles (revoke_shares.py keeps .downloads.json - a map of
  every live token - inside the served directory);
* docker/entrypoint.share.sh - renders the vhost, seeds the index on first run,
  then runs scanner/revoker in sleep loops beside Apache (no cron, so their
  output shows up in docker logs);
* compose + env example, incl. the two volumes that MUST be shared with the
  musician (it creates the links and reads the index).

docs/deployment/FILE_SHARING.md documents the mechanism, both deployment routes
(docker and existing host Apache), the Discord command, why each Apache setting
matters, verification commands, and the known limitations - notably that a link
nobody ever downloads is never revoked, since the TTL starts at first download.

Verified: scanner and revoker exercised end-to-end against temp dirs (index
built; token recorded from a combined-format log line and the symlink unlinked).
Compose file not validated - no docker on this machine.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 22:16:49 +02:00
2024-06-19 17:46:38 +02:00
2024-04-10 14:22:00 +02:00
fix
2026-07-14 14:34:01 +02:00
2025-08-20 21:21:15 +02:00
2025-04-09 18:21:37 +01:00
2024-04-28 12:27:29 +02:00
2025-01-05 22:09:43 +01:00
2024-11-14 00:14:49 +01:00
2023-06-05 21:31:57 +02:00
2025-04-19 17:15:11 +02:00
2024-11-11 15:38:32 +01:00
2025-04-19 17:15:11 +02:00
2024-06-19 16:26:48 +01:00
2024-11-10 23:01:00 +00:00
2024-11-11 20:12:47 +00:00
2024-11-14 00:14:49 +01:00
2024-11-14 00:14:49 +01:00

conjurer

Discord.py bot for fun, sex and BDSM

S
Description
No description provided
Readme Unlicense 12 MiB
Languages
Python 99.7%
Shell 0.3%