Go to file
bmen 0047bd4887 Befehl zum checken, ob ein Webservice auf localhost läuft 2020-07-26 11:46:59 +00:00
README.md Befehl zum checken, ob ein Webservice auf localhost läuft 2020-07-26 11:46:59 +00:00

README.md

Ubuntu Server 18.04 auf Hetzner Cloud

Als erstes das System aktualisieren

apt update
apt upgrade

Falls der Port für SSH geändert werden soll:

vim /etc/ssh/sshd_config
service ssh restart

Nun die Firewall aktivieren und die wichtigsten Ports freischalten

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

Ein paar hilfreiche Tools installieren:

apt install -y htop iftop mytop tcpdump landscape-common mercurial git software-properties-common

Zeitzone auf Europe/Berlin stellen

timedatectl set-timezone Europe/Berlin

Strorage Box mounten

Die Festplatte soll über SAMBA/CIFS gemounted werden, daher müssen die entsprechenden Tools installiert sein:

apt install cifs-utils

Die Zugangsdaten für die Storagebox werden unter /etc/storage-bx20-credentials in folgender Form gespeichert:

username=<BENUTZERNAME>
password=<PASSWORT>

In /etc/fstab folgende Zeile einfügen:

//u138460.your-storagebox.de/backup /mnt/storage-bx20       cifs    iocharset=utf8,rw,credentials=/etc/storage-bx20-credentials,uid=82,forceuid,gid=82,forcegid,file_mode=0660,dir_mode=0770 0       0

Wichtig: Hier muss ggf. der User und die Gruppe an den jeweiligen Docker-Container angepasst werden. Bisher hat nur die ID und nicht der Name funktioniert und hier in diesem Beispiel auf 82 gestellt, was dem www-data entsprechen soll.

Docker und Docker-Composer installieren

Zuerst einmal Docker

apt install docker.io

Nun Docker-Composer und hier kann man die aktuelle Release-Nr. herausfinden: https://github.com/docker/compose/releases

sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Cockpit zur Serverüberwachung

add-apt-repository universe
apt-get update
apt-get install cockpit cockpit-docker

https://ip-address-of-machine:9090

Wenn Cockpit hinter einem Proxy läuft muss folgende cockpit.conf in /etc/cockpit/ erstellt werden (weitere Infos in der Dokumentation):

[WebService]
Origins = https://cockpit.bmen.cc
ProtocolHeader = X-Forwarded-Proto
LoginTitle = bmens Cockpit
AllowUnencrypted = true
LoginTo = false

und beim Proxyserver müssen folgende Eingräge erfolgen:

location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        proxy_pass http://172.18.0.1:9090;
        proxy_set_header Host https://cockpit.bmen.cc;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Required for web sockets to function
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Pass ETag header from Cockpit to clients.
        # See: https://github.com/cockpit-project/cockpit/issues/5239
        gzip off;

        proxy_max_temp_file_size 2048m;
    }

Wenn der Proxy Server von Linuxserver.io Letsencrypt verwendet wird, dann die Firewall folgendermaßen konfigurieren:

ufw allow from 172.18.0.0/24  to any port 9090

So können nur die internen Docker-Container auf Cockpit zugreifen und von außen ist Port 9090 geschlossen.

Wichtige Befehle

Festplattenverbrauch ermitteln:

df -h

Rsync ohne Rechteübernahme (gut für gemountete Laufwerke SAMBA)

sudo rsync -rltv --exclude '/storage/var/lib/nextcloud/*' /storage/ /mnt/backup-storage/

Checken ob ein Webservice in localhost läuft. Bei Ausgabe 200 ist alles OK:

curl -sL -w "%{http_code}\\n" "http://0.0.0.0:9090" -o /dev/null

Gute Quellen