deployment_raspberry
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| deployment_raspberry [2025/10/15 18:53] – ninin | deployment_raspberry [2025/11/27 22:39] (current) – ninin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ip ermitteln: | + | === Allgemein === |
| - | login: ssh user@ip | + | IP ermitteln: |
| + | arp -a | ||
| - | Virtual environment | + | login: |
| - | cd sese_project/ | + | ssh user@ip |
| - | source env/ | + | |
| - | Create Database | + | Virtual environment |
| + | cd sese_project/ | ||
| + | python3 -m venv env | ||
| + | source env/ | ||
| + | pip install -r app/ | ||
| + | Set Environment Variables | ||
| + | export DJANGO_ENV=production | ||
| + | export POSTGRES_DB=< | ||
| + | export POSTGRES_USER=< | ||
| + | export POSTGRES_PASSWORD=< | ||
| Start Dev Server | Start Dev Server | ||
| - | python3 manage.py runserver 0.0.0.0: | + | |
| - | ### Turn off power management for network adapter | + | === Turn off power management for network adapter |
| Create a new systemd service file: | Create a new systemd service file: | ||
| Line 26: | Line 35: | ||
| [Unit] | [Unit] | ||
| Description=Disable WiFi Power Management | Description=Disable WiFi Power Management | ||
| - | |||
| [Service] | [Service] | ||
| Type=oneshot | Type=oneshot | ||
| RemainAfterExit=yes | RemainAfterExit=yes | ||
| ExecStart=/ | ExecStart=/ | ||
| - | |||
| [Install] | [Install] | ||
| WantedBy=multi-user.target | WantedBy=multi-user.target | ||
| - | | + | Save and exit the editor. |
| Enable the service: | Enable the service: | ||
| - | sudo systemctl enable wifipower.service. | + | |
| Start the service immediately: | Start the service immediately: | ||
| - | sudo systemctl start wifipower.service | + | |
| + | |||
| + | or reboot the Pi for it to take effect: | ||
| + | sudo reboot | ||
| + | |||
| + | === Create Database === | ||
| + | |||
| + | sudo su postgres | ||
| + | psql | ||
| + | CREATE DATABASE < | ||
| + | CREATE USER < | ||
| + | ALTER USER < | ||
| + | GRANT ALL PRIVILEGES ON DATABASE <db> TO < | ||
| + | ALTER DATABASE <db> OWNER TO < | ||
| + | |||
| + | |||
| + | === Deployment Checklist === | ||
| + | |||
| + | - Static Files | ||
| + | python manage.py collectstatic | ||
| + | |||
| + | With cleanup: | ||
| + | python manage.py collectstatic --noinput --clear | ||
| + | |||
| + | === Nginx === | ||
| + | |||
| + | sudo nano / | ||
| + | |||
| + | Next, enable the configuration: | ||
| + | |||
| + | sudo ln -s / | ||
| + | |||
| + | sudo nginx -t | ||
| + | sudo systemctl restart nginx | ||
| + | |||
| + | Analyse: | ||
| + | |||
| + | sudo nginx -T | sed -n ' | ||
| + | |||
| + | |||
| + | === Gunicorn === | ||
| + | |||
| + | sudo nano / | ||
| + | |||
| + | Bei Änderungen: | ||
| + | |||
| + | systemctl daemon-reload | ||
| + | sudo systemctl restart gunicorn | ||
| + | |||
| + | followed by a hard browser refresh (Ctrl + Shift + R). | ||
| + | |||
| + | |||
| + | === Rollout Release === | ||
| + | |||
| + | # In deinem Produktionsverzeichnis | ||
| + | cd / | ||
| + | |||
| + | # Aktiviere Virtual Environment | ||
| + | source env/ | ||
| + | |||
| + | # Hole neueste Tags | ||
| + | git fetch --tags | ||
| + | |||
| + | # Liste verfügbare Tags auf | ||
| + | git tag -l | ||
| + | |||
| + | # Checke das gewünschte Tag aus (mit lokalem Branch, um keinen detached-head zu bekommen) | ||
| + | git checkout -b production-v1.0.0 tags/ | ||
| + | |||
| + | # Installiere/ | ||
| + | pip install -r app/ | ||
| + | |||
| + | # Führe Migrations aus (falls nötig) | ||
| + | python app/ | ||
| + | |||
| + | # Sammle Static Files | ||
| + | python app/ | ||
| + | |||
| + | # Starte Gunicorn neu | ||
| + | sudo systemctl restart gunicorn | ||
| - | (or reboot the Pi for it to take effect.) | + | === Tutorial === |
| + | https:// | ||
| + | https:// | ||
deployment_raspberry.1760554413.txt.gz · Last modified: by ninin
