User Tools

Site Tools


deployment_raspberry

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
deployment_raspberry [2025/10/15 18:54] ninindeployment_raspberry [2025/11/27 22:39] (current) ninin
Line 1: Line 1:
-ip ermitteln:+=== Allgemein ===
  
-loginssh user@ip+IP ermitteln: 
 +  arp -a
  
-Virtual environment +login: 
-cd sese_project/serious-seeds +  ssh user@ip
-source env/bin/activate+
  
-Create Database+Virtual environment 
 +    cd sese_project/serious-seeds 
 +    python3 -m venv env 
 +    source env/bin/activate 
 +    pip install -r app/requirements.txt
  
 +Set Environment Variables
 +    export DJANGO_ENV=production
 +    export POSTGRES_DB=<db>
 +    export POSTGRES_USER=<user>
 +    export POSTGRES_PASSWORD=<pw>
  
 Start Dev Server Start Dev Server
Line 14: Line 23:
  
  
-### 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 41: Line 50:
     sudo systemctl start wifipower.service     sudo systemctl start wifipower.service
  
-(or reboot the Pi for it to take effect.)+or reboot the Pi for it to take effect
 +    sudo reboot 
 + 
 +=== Create Database === 
 + 
 +  sudo su postgres 
 +  psql 
 +  CREATE DATABASE <db>; 
 +  CREATE USER <user>; 
 +  ALTER USER <user> with encrypted password '<pw>'; 
 +  GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>; 
 +  ALTER DATABASE <db> OWNER TO <user>; 
 + 
 + 
 +=== Deployment Checklist === 
 + 
 +- Static Files 
 +  python manage.py collectstatic 
 + 
 +With cleanup: 
 +  python manage.py collectstatic --noinput --clear 
 + 
 +=== Nginx === 
 + 
 +  sudo nano /etc/nginx/sites-available/seriousseeds 
 + 
 +Next, enable the configuration: 
 + 
 +  sudo ln -s /etc/nginx/sites-available/seriousseeds /etc/nginx/sites-enabled/ 
 + 
 +  sudo nginx -t 
 +  sudo systemctl restart nginx 
 + 
 +Analyse: 
 + 
 +  sudo nginx -T | sed -n '1,200p' | grep -n 'proxy_pass\|upstream' 
 + 
 + 
 +=== Gunicorn === 
 + 
 +  sudo nano /etc/systemd/system/gunicorn.service 
 + 
 +Bei Änderungen: 
 + 
 +  systemctl daemon-reload 
 +  sudo systemctl restart gunicorn 
 +   
 +followed by a hard browser refresh (Ctrl + Shift + R)
 + 
 + 
 +=== Rollout Release === 
 + 
 +# In deinem Produktionsverzeichnis 
 +  cd /pfad/zu/serious-seeds 
 + 
 +# Aktiviere Virtual Environment 
 +  source env/bin/activate 
 + 
 +# 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/v1.0.0 
 + 
 +# Installiere/Update Dependencies 
 +  pip install -r app/requirements.txt 
 + 
 +# Führe Migrations aus (falls nötig) 
 +  python app/manage.py migrate 
 + 
 +# Sammle Static Files 
 +  python app/manage.py collectstatic --noinput 
 + 
 +# Starte Gunicorn neu 
 +  sudo systemctl restart gunicorn 
 + 
 + 
 +=== Tutorial ===
  
 +https://www.teachmemicro.com/building-a-django-webserver-on-raspberry-pi-a-step-by-step-guide/
  
 +https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu#installing-the-packages-from-the-ubuntu-repositories
deployment_raspberry.1760554488.txt.gz · Last modified: by ninin