Direkt zum Hauptinhalt

HTTPS hinzufügen

Beschreibung:

Damit Push und Kamera funktioniert muss HTTPS benutzt werden.

Implementierung:

alles stoppen

docker-compose down

docker file anpassen

In der docker-compose Datei nginx Container hinzufügen :

nano /root/storageboxx/docker-compose.yml

Unsere neue Docker file

version: '3.8'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: storageboxx_web
    ports:#ports:
     # - "80:80"
    volumes:
      - ./html:/var/www/html
      - ./caddy_data:/data  # Caddy benötigt diesen Ordner für seine Konfiguration
      - ./caddy_config:/config  # Caddy benötigt diesen Ordner für seine Konfiguration
    environment:
      - APACHE_DOCUMENT_ROOT=/var/www/html
    depends_on:
      - db
    restart: unless-stopped


  db:
    image: mariadb:latest
    container_name: storageboxx_db
    restart: always
    environment:
      MYSQL_DATABASE: storageboxx
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - ./db_data:/var/lib/mysql
  nginx:
    image: nginx:stable
    container_name: nginx-proxy
    volumes:
      - ./nginx-proxy.conf:/etc/nginx/nginx.conf:ro
      - ./certs/selfsigned.crt:/etc/ssl/certs/selfsigned.crt:ro
      - ./certs/private.key:/etc/ssl/private/private.key:ro
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web
    restart: unless-stopped

Nun das cert Verzeichnis erstellen

mkdir -p /root/storageboxx/certs

Nun die ngninx conf erstellen

nano /root/storageboxx/nginx-proxy.conf

Inhalt

events {
  worker_connections 1024;
}

http {
  server {
    listen 80;
    return 301 https://$host$request_uri;
  }

  server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/private.key;

    location / {
      proxy_pass http://web:80;
      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;
      client_max_body_size 100M;
    }
  }
}

Nun das Zertifikat erstellen

openssl req -newkey rsa:4096 -x509 -sha256 -days 365000 -nodes -out /root/storageboxx/certs/selfsigned.crt -keyout /root/storageboxx/certs/private.key

Die Fragen benatworten.

Nun in der config von Storageboxx https ändern

nano /root/storageboxx/html/lib/CORE-Config.php 

alt

<?php
// (A) HOST
define("SITE_NAME", "Storage Boxx");
define("HOST_BASE", "http://192.168.178.187/"); // CHANGED BY INSTALLER  #um diese zeile geht es !!!!!!!
define("HOST_NAME", parse_url(HOST_BASE, PHP_URL_HOST));
define("HOST_BASE_PATH", parse_url(HOST_BASE, PHP_URL_PATH));
define("HOST_ASSETS", HOST_BASE . "assets/");

// (B) API ENDPOINT
define("HOST_API", "api/");

Neu

<?php
// (A) HOST
define("SITE_NAME", "Storage Boxx");
define("HOST_BASE", "https://192.168.178.187/"); // CHANGED BY INSTALLER
define("HOST_NAME", parse_url(HOST_BASE, PHP_URL_HOST));
define("HOST_BASE_PATH", parse_url(HOST_BASE, PHP_URL_PATH));
define("HOST_ASSETS", HOST_BASE . "assets/");

// (B) API ENDPOINT
define("HOST_API", "api/");
....

Den container starten

docker-compose up -d

Nun die Seite laden Zertifikat akzeptieren und einloggen.
Wenn dieser Fehler kommt.

Auswahl_167.png

Benachrichtigungen zulassen im Browser

Auswahl_166.png

 

Push funktioniert

Auswahl_168.png

Fertig.