Appearance
Kompletní manuál: Instalace a nastavení Photobooth na Linuxu (Docker)
Tento dokument obsahuje ucelený postup pro bezproblémové zprovoznění open-source aplikace Photobooth pomocí Dockeru. Zahrnuje také úpravu portů pro vyřešení konfliktů s existujícími webovými servery (např. Apache) a finální konfiguraci fotoaparátu.
1. Příprava systému a instalace závislostí
Nejprve je nutné systém aktualizovat a nainstalovat nástroje pro stažení kódů a běh kontejnerů.
bash
# Aktualizace seznamu balíčků
sudo apt update && sudo apt upgrade -y
# Instalace Gitu, Dockeru a nového Compose pluginu (verze v2)
sudo apt install git docker.io docker-compose-v2 -y
# Přidání uživatele do skupiny docker (vyžaduje odhlášení/restart pro plnou funkčnost bez sudo)
sudo usermod -aG docker $USER
## 2. Stažení zdrojových kódů aplikace
Aplikaci sestavujeme přímo z oficiálního repozitáře, abychom měli k dispozici nejnovější verzi a konfigurační soubory.2. Přechod do domovské složky
bash
cd ~3. Stažení repozitáře Photobooth
repozitar: https://github.com/PhotoboothProject/photobooth.git
bash
git clone https://github.com/PhotoboothProject/photobooth.git4. Přesun do pracovní složky
bash
cd ~/photobooth5. Architektura a konfigurace Dockeru
Fotokoutek využívá moderní webovou aplikaci Photobooth (autor Andi0b). Celé prostředí je definováno v souboru docker-compose.yml. Pro bezproblémové propojení s hardvirem, správný přenos souborů a dostatek výkonu pro 32.5Mpx snímač Canonu R7 musí konfigurace vypadat přesně takto:
bash
docker-compose.ymlYAML
version: "3.9"
services:
photobooth:
privileged: true
user: "root"
build: .
ports:
- "8080:80"
- "443:443"
devices:
- "/dev/bus/usb:/dev/bus/usb"
environment:
- COMPOSER_VERSION=2
- PHP_MEMORY_LIMIT=1024M
- PHP_MAX_EXECUTION_TIME=60Klíčové parametry konfigurace:
privileged: true: Uděluje kontejneru rozšířená práva k hostitelskému systému, což je nezbytné pro přímé řízení fotoaparátu.user: "root": Zajišťuje, že webový server uvnitř kontejneru běží s nejvyššími právy a generované soubory vdata/tmp/adata/images/nebudou blokovány linuxovými oprávněními.devices: Mapuje celou USB sběrnici hostitele přímo do vnitřního prostředí Dockeru.PHP_MEMORY_LIMIT=1024M: Zásadní nastavení pro zpracování fotografií ve vysokém rozlišení. Výchozí limit (128M/256M) při dekompresi 32.5Mpx snímků z Canonu R7 způsobí pád PHP procesu (chyba ve fázi Processing). Navýšení na 1024M (1 GB) garantuje stabilní běh.PHP_MAX_EXECUTION_TIME=60: Prodlužuje čas na zpracování jedné fotky / koláže na 60 sekund, aby proces neskončil předčasným vypršením časového limitu (Timeout).
6. Sestavení a první spuštění kontejneru
Nyní aplikaci sestavíme a spustíme. Spouštíme ji s právy administrátora, abychom předešli chybám s oprávněními (např. permission denied u docker.sock).
bash
# Sestavení na míru systému a spuštění na pozadí (-d)
sudo docker compose up --build -dTento krok trvá několik minut. Po úspěšném dokončení terminál vypíše zelené Started.
7. Přístup k aplikaci a administraci
Fotobudka nyní běží na novém portu. V prohlížeči (na stejném počítači) otevři:
Zobrazení fotobudky:
http://localhost:8080Administrace (Nastavení):
http://localhost:8080/admin
8. Nastavení fotoaparátu (zrcadlovky) v administraci
Pro připojení reálného fotoaparátu (např. přes USB) namísto běžné webkamery, je nutné provést změnu v administraci:
Otevři adresu
http://localhost:8080/admin.V levém menu přejdi do sekce Configuration -> Cameras (nebo jen Cameras).
V nastavení zdroje obrazu (obrazového vstupu) přepni režim z Webkamery na
gphoto2.Sjeď na konec stránky a klikni na Save (Uložit).
Poznámka pro samotný fotoaparát: Musí mít vypnutý úsporný režim (Auto Power Off) a USB připojení by mělo být v režimu PTP / PC connect.
9. Správa a ovládání fotobudky
Pro ovládání běhu aplikace je vždy nutné být ve složce s projektem (cd ~/photobooth). Z důvodu prevence před chybou failed switching to "root" uvnitř kontejneru se vyhýbej příkazům stop a start.
Místo toho používej výhradně příkazy pro úplné smazání a znovuvytvoření kontejneru (uživatelská data a nastavení fotobudky zůstanou bezpečně uložena na disku):
- Bezpečné vypnutí fotobudky:
bash
sudo docker compose down- Nové zapnutí fotobudky (např. na další akci):
bash
sudo docker compose up -d10. Odstraňování problémů (Troubleshooting)
A. Aplikace hlásí „Nenalezena žádná kamera“
Ověřte, zda Linux fyzicky vidí připojené USB zařízení zadáním příkazu
lsusbv terminálu notebooku. V seznamu musíte vidět řádekCanon Inc..Pokud zařízení v
lsusbchybí, vyměňte USB-C kabel za jiný (musí jít o plnohodnotný datový kabel, nikoliv pouze o nabíjecí kabel bez datových pinů).Vyzkoušejte, zda na foťák vidí samotný Docker kontejner pomocí příkazu:
bashsudo docker exec -it photobooth-photobooth-1 gphoto2 --auto-detect
B. Odpočet proběhne, ale po fázi "Processing" aplikace spadne
Příčina: Nedostatek paměti PHP nebo chybějící oprávnění pro složku s obrázky.
Řešení:
Zkontrolujte, zda máte v
docker-compose.ymlsprávně zapsaný řádekPHP_MEMORY_LIMIT=1024M.Snižte rozlišení na foťáku z plného 32Mpx (L) na S1 (12Mpx) nebo S2 (8Mpx). Na výsledné fotky a tisk formátu 10×15 cm to má nulový vliv, ale drasticky to uleví procesoru a paměti notebooku.
Opravte oprávnění složek na hostiteli:
Bash
sudo chmod -R 777 ~/photobooth
C. Chyba PTP Device Busy nebo I/O in progress
Příčina: Fotoaparát má aktivní autofokus a v šeru nedokázal potvrdit zaostření, nebo je jeho USB rozhraní blokováno jiným systémovým procesem.
Řešení: Přepněte objektiv na MF (Manuální ostření) a restartujte fotoaparát vypínačem na těle, aby se vyčistila vyrovnávací paměti PTP rozhraní.