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:56] 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 44: Line 53:
     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 ===
 +
 +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.1760554584.txt.gz · Last modified: by ninin