Willkommen. In dieser Repository geht es um eine Fotobox mit einer Website. Wir haben diese auf einem Raspberry Pi 3b+ gehostet, aber andere Modelle gehen hier sicherlich auch. Unsere Kamera ist hier eine GoPro HERO 4, welche ein WLAN-Netz eröffnet, indem sich der Raspberry Pi einloggen kann. Der Raspberry Pi ist per LAN-Kabel mit einem Router verbunden, da alle gemachten Bilder auf einem online gehosteten Server hochgeladen werden. Von dort aus kann ein QR-Code erstellt werden, sodass man die Bilder direkt an der Fotobox über einen QR-Code online erreichen kann. Die alternative zum QR-Code ist die Sendung über eine E-Mail, hier wird das Foto einmal als Anhang, und zusätzlich der Link zur Website gesendet.
🤝 Eine Zusammenarbeit zwischen @JonnyTutorials und @EasyTecRepository
Warning
Beachte: Alle Fotos die über die Weboberfläche übertragen werden sind im Netzwerk unverschlüsselt! Unbefugte könnten diese Fotos im Netzwerk leicht abfangen.
Note
Beachte: Die WLAN-Karte des Pi's wird benötigt um sich mit der GoPro zu verbinden. Zudem wird eine LAN-Verbindung benötigt, um die Oberfläche bereitzustellen.
Schaue dir doch dieses YouTube Video an, hier wird alles erklärt. 👉 Erklärvideo auf YouTube
WICHTIG: Der Download Server muss nach außen freigegeben sein! Zudem sollte eine gültige Domain vorhanden sein.
- Abhängigkeiten installieren
sudo apt-get install python3 python3-pip git screen
- Dateien für den File Host Server herunterladen
git clone https://github.com/EasyTecRepository/photobox.git
- Ordner "download-server" öffnen
cd photobox/download-server
- Abhängigkeiten installieren
pip3 install -r requirements.txt
- Konfiguration anpassen
nano config.json
- SSL-Zertifikat generieren
certbot certonly -m deine@email.com -d deine.domain.tld
Alternativ kann das SSL-Zertifikat weggelassen werden. Dazu einfach in derconfig.json
ssl-> enabled
auffalse
setzen. Wird nicht empfohlen und birgt ein Sicherheitsrisiko!
Variable | Beschreibung | Typ |
---|---|---|
photo_dir | Verzeichnis, in dem die Fotos gespeichert werden | Pfad[string] |
qr_dir | Verzeichnis, in dem die QR-Codes gespeichert werden | Pfad[string] |
port | Port für den Download-Server | Port[intiger] |
token_hash | Das Kommunikationspasswort zwischen der Lokalen API Schnittstelle und dem Download Server. Erstelle ein Passwort und Trage es hier ein. Das gehashte Passwort kannst du nun in die Konfiguration eintragen. Das ungehashte bitte für später bereithalten ;) | sha256 Hash[string] |
host | IP oder Domain deines Servers | Domain/IP[string] |
public_url | Öffentliche URL deines Servers | http(s)://Domain/IP[string] |
ssl-> enabled | Schaltet das Bentuzen des SSL-Zertifikates ein und aus. | true/false[boolean] |
ssl-> key | Pfad zum Key deines SSL-Zertifikates | Pfad[string] |
ssl-> cert | Pfad zum Zertifikat deines SSL-Zertifikates | Pfad[string] |
- App starten
screen -dmS download-server python3 main.py
- Abhängigkeiten installieren
sudo apt-get install python3 python3-pip git screen npm node apache2
- Dateien für lokale Schnittstelle herunterladen
git clone https://github.com/EasyTecRepository/photobox.git
- Ordner "backend" öffnen
cd photobox/local/backend
- Abhängigkeiten installieren
pip3 install -r requirements.txt
- Konfiguration anpassen
nano settings.py
- Netzwerkeinstellungen treffen
Variable | Beschreibung | Typ |
---|---|---|
photos_path | Verzeichnis, in dem die Fotos gespeichert werden | Pfad[string] |
api_port | Port auf dem das Lokale API erreichbar ist | Port[intiger] |
FileHost-> url | URL zum bereits konfiguriertem Download-Server | http(s)://Host:Port[string] |
FileHost-> key | Ungehashtes Kommunikationspasswort, das vorhin vergeben wurde | Passwort[string] |
Mail-> smtp_server | Serveradresse zum SMTP-Server deines Anbieters | Host[string] |
Mail-> smtp_port | Port zum SMTP-Server deines Anbieters | Port[intiger] |
Mail-> smtp_mail | E-Mail Adresse deines Mail Accounts | E-Mail-Adresse[string] |
Mail-> smtp_passwd | Passwort des Mail Accounts | Passwort[string] |
- App starten
screen -dmS backend python3 main.py
- Verzeichnis verlassen
cd ..
- Ordner "web" öffnen
cd photobox/local/web
- Module installieren
npm i
- Konfiguration anpassen
nano src/config.json
Variable | Beschreibung | Typ |
---|---|---|
api_endpoint | Url für das Lokale API | http://{Lokale IP deines Raspberry PIs}:{Port der in der settings.py vergeben wurde}[string] |
- Website kompilieren
npm run build
- Website ins Webserver-Verzeichnis verschieben und Zugriffsrechte anpassen
mkdir /var/www/html/photobox && cp -R build/ /var/www/html/photobox && chown -R www-data:www-data /var/www/html/photobox/
- Webserver starten
sudo systemctl start apache2
Glückwunsch! Deine Photobox ist nun unter http://{Lokale IP deines Raspberry PIs}/photobox/
erreichbar.