Für eine Installation auf einer Subdomain mit nginx
als Web-Server, certbot
für SSL Zertifikate, und pm2
als node manager, diese Schritte befolgen:
-
Allgemeiner Guide um eine Subdomain und Certbot in Nginx zu konfigurieren, das ist recht praktisch.
-
In dem allgemeinen Guide wird eine Subdomain in
/sites-available
innginx
angelegt. Beispielhaft ein config file fürsandbox.openlibry.de
. In<port>
den entsprechenden Port des Node Servers anlegen. Wichtig: Das Limit für maximale File Size beim Upload erhöhen, da sonst z.B. Cover-Photos vom Handy ggf. von nginx geblockt werden.
# sandbox.openlibry.de subdomain server block
server {
listen 80;
listen [::]:80;
server_name sandbox.openlibry.de www.sandbox.openlibry.de;
error_page 497 https://sandbox.openlibry.de$request_uri;
return 301 https://sandbox.openlibry.de$request_uri;
}
server {
sendfile on;
client_max_body_size 20M;
client_body_buffer_size 20M;
listen 443 ssl;
root /var/www/sandbox.openlibry.de;
index index.html index.htm;
server_name www.sandbox.openlibry.de;
# ssl configuration;
ssl_certificate /etc/letsencrypt/live/sandbox.openlibry.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sandbox.openlibry.de/privkey.pem;
return 301 https:/sandbox.openlibry.de$request_uri;
}
server {
listen 443 ssl;
root /var/www/sandbox.openlibry.de;
index index.html index.htm;
server_name sandbox.openlibry.de;
location / {
# Reverse proxy for Next server
proxy_pass http://localhost:<port>;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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 X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
# ssl configuration;
ssl_certificate /etc/letsencrypt/live/sandbox.openlibry.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sandbox.openlibry.de/privkey.pem;
}
-
git clone
ins repository mit den Installationen -
Anpassen der
.env
Datei im Projektverzeichnis wie imenv.example
definiert. -
Falls mehrere node Instanzen laufen, am Besten den Port ändern in
package.json
:
{
"name": "openlibry",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "PORT=3020 next start",
"lint": "next lint"
}
}
- Dependencies installieren mit
npm install
- Leere Datenbank erzeugen mit
npx prisma db push
- Falls eine Datenbank verfügbar ist, diese kopieren
- Next Build erzeugen mit
npm run build
- Mit
npm start
den build testen. - Damit die app auch nach restart startet, am Besten bei
pm2
registrieren und mit dem entsprechenden port startenNODE_PORT=3020 HOST=0.0.0.0 && pm2 start npm --name "sandboxopenlibry" -- start
- Mit
pm2 list
sollte die App sichtbar sein