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 20:39] ninindeployment_raspberry [2025/11/27 22:39] (current) ninin
Line 1: Line 1:
-ip ermitteln:+=== Allgemein ===
  
-login: ssh user@ip+IP ermitteln: 
 +  arp -a 
 + 
 +login: 
 +  ssh user@ip
  
 Virtual environment Virtual environment
     cd sese_project/serious-seeds     cd sese_project/serious-seeds
 +    python3 -m venv env
     source env/bin/activate     source env/bin/activate
 +    pip install -r app/requirements.txt
  
-Create Database +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 43: Line 52:
 or reboot the Pi for it to take effect: or reboot the Pi for it to take effect:
     sudo reboot     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+=== Tutorial ===
  
 https://www.teachmemicro.com/building-a-django-webserver-on-raspberry-pi-a-step-by-step-guide/ 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.1760560799.txt.gz · Last modified: by ninin