# Serverinstallation
Server Netcup 8GB RAM 2 CPU Kerne 320GB
## Grundinstallation (step by step)
* System : Ubuntu 20.04 LTS minimal mit SSH
* Partitionierung: eine große Partition
*
### step 1 creating new user + sudo privileges
```
# adduser username
# usermod -aG sudo username
```
### step 2 Schlüsselpaar
auf **lokalem** PC im Terminal
```
ssh-keygen
```
Schlüsselpaar wird generiert
Übertragung auf Server
```
ssh-copy-id username@SERVER_IP_ADDRESS
```
### step 3 Passwortauthentifizierung deaktivieren
Öffnen Sie die SSH-Daemon-Konfiguration:
```
sudo nano /etc/ssh/sshd_config
```
Suchen Sie die Zeile mit „PasswordAuthentication“, löschen Sie das vorstehende „#“ und ändern Sie den Wert zu „no“:
```
PasswordAuthentication no
```
per Default korrekt und nötig sind zudem:
```
PubkeyAuthentication yes
ChallengeResponseAuthentication no
```
Neuladen ssh daemon
sudo systemctl reload sshd
### step 4 Firewall
Verschiedene Anwendungen können Profile bei UFW registrieren, UFW übernimmt das Management. Die Verbindung zum Server erfolgt über den Dienst OpenSSH, dieser hat ein registriertes Profil. Sie können dies prüfen durch die Eingabe von:
```
sudo ufw app list
```
Das Ergebnis sollte sein:
``` Output
Available applications:
OpenSSH
```
Damit die nächste Anmeldung klappt, müssen Sie SSH-Verbindungen durch Eingabe des folgenden Kommandos erlauben:
```
sudo ufw allow OpenSSH
```
Anschließend wird die Firewall aktiviert:
```
sudo ufw enable
```
### step 5 Dockerinstallation
[Quelle ](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04)
Laden von Docker aus dem offiziellen Repository
```
sudo apt update
```
```
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker
```
Docker ohne Sudo
```
sudo usermod -aG docker ${USER}
```
ein und ausloggen aufm server
prüfen ob man in der gruppe ist
```
id -nG
```
### step 6 Discourse installation
Discourse nach der jeweiligen aktuellen Installationsroutine des "Herstellers"
Fehler das die domain nicht erreicht wird
Freigabe in der Firewall mit Portangabe
```
sudo ufw allow 443
```
### step 7 Datenbankserver für IoT / Sensoren