Zum Inhalt springen

Webseite – Installation auf Debian 12

1. System vorbereiten

System aktualisieren und wichtige Pakete installieren.

apt update && apt upgrade -y
apt install -y curl git unzip nginx

2. Node.js + npm installieren

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node -v
npm -v

3. Projekt hochladen

Lade dein Projekt als ZIP nach /root hoch und benenne es:

website.zip

4. Projekt nach /var/www verlagern

mkdir -p /var/www
cd /var/www

mv /root/website.zip /var/www/
unzip website.zip

5. Verzeichnis benennen

mv "website" web
cd /var/www/web

6. Dependencies installieren

cd /var/www/web
npm install --unsafe-perm=true --allow-root

7. Permissions festlegen

chmod +x node_modules/next/dist/bin/next
chmod +x node_modules/.bin/next
ls -l node_modules/.bin/next

8. Build erstellen

cd /var/www/web
npm run build

9. PM2 installieren

npm install -g pm2

10. PM2 starten

cd /var/www/web
pm2 start npm --name "web" -- start
pm2 save
pm2 status

11. Nginx als Reverse Proxy einrichten

Domain → Port 3000 weiterleiten:

bash -c 'cat > /etc/nginx/sites-available/web << "EOF"
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # hier optional deine Domain eintragen:
    # server_name deinedomain.de www.deinedomain.de;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF'

12. Site aktivieren

ln -sf /etc/nginx/sites-available/web /etc/nginx/sites-enabled/web

# optional: Default-Config entfernen
[ -f /etc/nginx/sites-enabled/default ] && rm /etc/nginx/sites-enabled/default

13. Nginx neu laden

nginx -t
systemctl reload nginx

14. Optional: HTTPS

apt install -y certbot python3-certbot-nginx
certbot --nginx -d deinedomain.de -d www.deinedomain.de