PhotoShoot is a Blazor Server app that watches a local folder for new photos, generates thumbnails, and updates the web UI in real time.
It was built to make photos appear on-screen as soon as they are taken.
I bought a new toy:
- Canon Wireless File Transmitter (WFT-E1A)
- Canon Wireless File Transmitter (WFT-E7A)
- Canon Wireless File Transmitter (WFT-E5A)
The camera transmitter uploads images to an FTP server running on Linux. After files arrive in that Linux folder, PhotoShoot monitors the local folder and immediately processes each new image.
As photos are taken, they appear in the gallery automatically.
- Canon WFT uploads new images to a Linux FTP server folder.
- PhotoShoot watches that local folder (no direct FTP client logic in the app).
- The app creates thumbnails, histograms, and catalog entries for each image.
- Connected clients receive live updates and can view the latest photos right away.
This app runs well on a Raspberry Pi using Raspberry Pi OS Lite (64-bit) (no desktop). That OS is Debian-based.
Install git, then clone this repository to your Pi.
Install Docker Engine on Debian
Note: .NET does not need to be installed separately. The Docker image bundles the runtime.
Install vsftpd, then configure it to write incoming files to your chosen folder (for example /home/ftpuser).
Edit docker-compose.yml and update the bind mount under volumes: to point to your FTP drop folder:
volumes:
- /home/ftpuser:/data/images:ro # ← set this to your FTP folderThumbnail and histogram folders are managed automatically as Docker named volumes — no need to create them manually.
You can also override any ImageMonitor setting via the environment: block using the __ separator, for example:
environment:
- ImageMonitor__PollIntervalSeconds=10From the repo root:
docker compose up -d --buildTo view logs:
docker compose logs -fTo stop:
docker compose downOnce running, new photos uploaded by the camera appear in the gallery automatically.