Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5

HOW-TO Nginx Proxy Manager - Reverse Proxy + letsencrypt na łatwego
#1

Ostatnio przeglądałem różne skrypty do reverse proxy z web GUI, poza Traefik, HAProxy spotkałem ten oto miły kontener Nginx Proxy Manager

   

Instalacja jest opisana na stronie w języku angielski, założeniem forum jest szerzenie projektów open source pośród Polaków tak więc poniżej zamieszczę spolszczenie instalacji Nginx Proxy Manager plus małe modyfikacje z mojej strony.

Instalacja będzie składał się z dwóch kontenerów, Nginx Proxy Manager oraz MariaDB

Wymagania:
  • Docker
  • Docker-Compose
Instalacje Docker oraz Docker-Compose z Portainer można znaleźć pod tym linkiem.

Kontener składa się z bazy danych i aplikacji, baza danych będzie używała pliku config.json poniżej znajduje się przykład takiego pliku
Kod:
{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}

W tym momencie jeśli jesteś zaawansowanym użytkownikiem możesz stworzyć swoją bazę danych posiadając niezbędne informacje i dodać tak utworzone dane do pliku docker-compose.yml
Bazy dane które są wspierane to minimum:
  • MySQL v5.7.8+
  • MariaDB v10.2.7+
I n s t a l a c j a
1. Przechodzimy do katalogu gdzie chcemy zachować swoje dane, zalecana następująca struktura i przykład będzie oparty na tej strukturze:
/nginxproxy/
/nginxproxy/data
/nginxproxy/letsencrypt

2. Tworzymy katalog mkdir ~/nginxproxy a następnie przechodzimy cd nginxproxy/ i tworzymy plik config.json oraz wklejamy poniższy kod
Kod:
{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}
 
3. Tworzymy plik docker-composer.yml i kopiujemy poniższy kod
Kod:
version: "3"
services:
  app:
    image: jc21/nginx-proxy-manager:2
    restart: always
    ports:
      # Public HTTP Port:
      - '80:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - '81:81'
    environment:
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      # Make sure this config.json file exists as per instructions above:
      - /home/username/nginxproxy/config.json:/app/config/production.json
      - /home/username/nginxproxy/data:/data
      - /home/username/nginxproxy/letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: jc21/mariadb-aria:10.4
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql
Pamiętaj aby zastąpić username lub całą ścieżkę /home/username/nginxproxy/

4. następnie wydajemy komendę do utworzenia kontenerów i uruchomienia
Kod:
docker-compose up -d

Teraz można się zalogować do strony http://adres.ip.serwera:81
Standardowe dane do logowania: Podczas pierwszego uruchomienia zachodzą następujące procesy:
  • baza danych się zainicjuje wraz ze strukturą tabel
  • klucze GPG zostaną wygenerowane i zapisane w kluczu konfiguracyjnym
  • tworzone konto admina ze standardowymi danymi
Nginx Proxy Manager automatycznie generuje certyfikaty SSL podczas dodawania nowej domeny
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości