2021-03-03 08:25:58 +01:00
# Raspberry Pi
2021-03-03 12:50:11 +01:00
## Raspbian lite installieren
2021-03-03 08:25:58 +01:00
Auf der vorbereiteten SD-Karte muss im Laufwerk "boot" eine leere Datei `ssh` angelegt werden, damit der SSH-Zugang freigeschaltet wird.
2021-03-03 12:50:11 +01:00
### Nach dem ersten Login:
2021-03-03 08:25:58 +01:00
```
sudo apt update
sudo apt upgrade
```
2021-03-03 12:50:11 +01:00
### Konfiguration anpassen:
2021-03-03 08:25:58 +01:00
```
sudo raspi-config
```
2021-03-03 12:50:11 +01:00
- Zeitzone anpassen
- Passwort ändern
- Spracheinstellungen ändern
## Zusatzprogramme installieren
2021-03-03 08:25:58 +01:00
```
2021-03-03 15:06:33 +01:00
sudo apt install mc git zbar-tools build-essential python-dev nginx
2021-03-03 12:50:11 +01:00
```
## Benutzer anlegen
Damit der Benutzer auch auf die GPIOs zugreifen kann, muss er zur Gruppe `pgio` hinzugefügt werden.
```
adduser kamera
...
sudo usermod -a -G gpio kamera
```
## virtuelle Python Umgebung einrichten
```
sudo apt install python3-venv
cd /opt
sudo python3 -m venv kamera
sudo chown -R kamera:kamera /opt/kamera/
```
### virtuelle Umgebung aktivieren
```
su kamera
cd /opt/kamera
source bin/activate
```
Wenn alles geklappt hat, befindet man sich jetzt in der virtuellen Python Umgebung und kann dort die benötigten Module installieren
```
2021-03-03 14:07:15 +01:00
pip install rpi.gpio flask uwsgi
deactivate
```
### streaming-kamera klonen
```
cd /opt/kamera
git clone https://git.jgz-energie.net/ENERGIE/streaming-kamera.git
2021-03-03 15:06:33 +01:00
```
2021-03-03 14:07:15 +01:00
Außerhalb der virtuellen Umgebung kann das Programm mit `/opt/kamera/bin/python /opt/kamera/streaming-kamera/kamera.py gestartet` werden.
Der uWSGI-Server kann mit `/opt/kamera/bin/uwsgi --socket 0.0.0.0:8000 --protocol=http -w server:first_app` , wenn man sich in dem Arbeitsverzeichnis (/opt/kamera/streaming-kamera) befindet.
### Service für uWSGI anlegen
/opt/kamera/uwsgi_config.ini
```
[uwsgi]
chdir = /opt/kamera/streaming-kamera
2021-03-03 15:06:33 +01:00
module = kamera_server:kamera_server
2021-03-03 14:07:15 +01:00
master = true
processes = 1
threads = 2
2021-03-03 15:06:33 +01:00
uid = www-data
gid = www-data
2021-03-03 14:07:15 +01:00
socket = /tmp/sample_app.sock
chmod-socket = 664
vacuum = true
die-on-term = true
2021-03-03 15:06:33 +01:00
```
/etc/systemd/system/uwsgi.service
```
[Unit]
Description=uWSGI Service
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/opt/kamera/streaming-kamera/
ExecStart=/opt/kamera/bin/uwsgi --ini /opt/kamera/uwsgi_config.ini
[Install]
WantedBy=multi-user.target
```
Dienst starten
```
sudo systemctl daemon-reload
sudo systemctl start uwsgi.service
sudo systemctl status uwsgi.service
sudo systemctl enable uwsgi.service
```
### nginx anpassen
```
sudo rm /etc/nginx/sites-enabled/default
```
/etc/nginx/sites-available/kamera_server
```
server {
listen 80;
server_name localhost;
location / { try_files $uri @app ; }
location @app {
include uwsgi_params;
uwsgi_pass unix:/tmp/kamera_server.sock;
}
}
```
Konfiguration aktivieren
```
sudo ln -s /etc/nginx/sites-available/kamera_server /etc/nginx/sites-enabled
sudo systemctl restart nginx
2021-03-03 14:07:15 +01:00
```