Direkt zum Hauptinhalt

Installation mit Docker

Beschreibung:

Für einige Dienste ist die Wartung mittelös Docker wesentlich einfacher. Neues images pullen, fertig.
Docker container reinstallieren.
Durch eine composer Datei nichts leichter als das.



Los gehts

Docker installieren:

siehe Buch hier klicken.

Datenverzeichnis erstellen

WIr legen unsere daten in /root/netboxdata ab. Und die configs für nginx im Unterverzeichnis nginx.

mkdir -p /root/netboxdata/nginx/
mkdir -p /root/netboxdata/netbox/media
mkdir -p /root/netboxdata/compose

Selbstsignierte SSL-Zertifikate erstellen

Wir ertsellen das Zertifikat mit 100 Jahren

openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /root/netboxdata/nginx/selfsigned.key -out /root/netboxdata/nginx/selfsigned.crt

Nun die Fragen beantworten.
DE alles andere leer lassen außer

Common Name (e.g. server FQDN or YOUR name) []:netbox.local.lan

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:netbox.local.lan

Docker-Compose-File erstellen

Die Compose Datei:

nano /root/netboxdata/compose/docker-compose.yml

Nun den Inhalt einfügen und ersetze mysecretkey, mydbpassword und mydbrootpassword mit sicheren, zufälligen Werten.
Der Secret KEY muss mindesten 50 Zeichen haben.

version: '3.1'

services:
  netbox:
    image: netboxcommunity/netbox
    depends_on:
      - mariadb
      - redis
    volumes:
      - /root/netboxdata/netbox/media:/opt/netbox/netbox/media
    environment:
      - NETBOX_SECRET_KEY=mysecretkey
      - NETBOX_ALLOWED_HOSTS=*
      - DB_NAME=netbox
      - DB_USER=netbox
      - DB_PASSWORD=mydbpassword
      - DB_HOST=mariadb
      - DB_DRIVER=mysql
      - REDIS_HOST=redis

  mariadb:
    image: mariadb:10.5
    environment:
      - MYSQL_ROOT_PASSWORD=mydbrootpassword
      - MYSQL_DATABASE=netbox
      - MYSQL_USER=netbox
      - MYSQL_PASSWORD=mydbpassword
    volumes:
      - /root/netboxdata/mariadb:/var/lib/mysql

  redis:
    image: redis:6

  nginx:
    image: nginx:1.21
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - /root/netboxdata/nginx:/etc/ssl/nginx:ro
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - netbox

networks:
  default:
    driver: bridge
NGINX Configuration erstellen
nano /root/netboxdata/compose/nginx.conf

Inhalt

worker_processes 1;

events {
    worker_connections 1024;
}

http {
    log_format main '$proxy_protocol_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

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

    server {
        listen 443 ssl;
        server_name _;

        ssl_certificate /etc/ssl/nginx/selfsigned.crt;
        ssl_certificate_key /etc/ssl/nginx/selfsigned.key;

        location / {
            proxy_pass http://netbox:8001;
            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;
        }
    }
}
Docker-Compose-Setup
cd /root/netboxdata/compose/
docker-compose up -d
Datenbank initialiseren nach start des Containers
docker-compose run --rm netbox python3 manage.py migrate