# Docker Cloud Server mit Tailscale

Manche Dinge übersteigen die Funktionalität von Serverless Plattformen. Dafür macht es Sinn sich einen eigenen Server zu beschaffen. Ich nutze hierfür die Cloud Server von Hetzner, die es ab 2,89 € im Monat gibt. Darüber hinaus nutze ich Tailscale um die Administration dieser Server abzusichern.


Vorbereitung


Einrichtung

Als erstes muss du deinen neuen Server sichern, damit nur du ihn erreichen kannst. Dazu installierst du tailscale:

curl https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add -
curl https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
sudo apt-get install tailscale
sudo tailscale up

Du musst auf die URL klicken, welche Dir angezeigt wird.

Danach wird dein Server in der tailscale Oberfläche angezeigt: https://login.tailscale.com/admin/machines (opens new window)

Um weiter fortzufahren musst du dir den tailscale client auf dein Endgerät installieren (https://tailscale.com/download (opens new window)) und starten. Danach beendest Du deine SSH Session mit exit und startest eine neue mit der neuen tailscale ip Adresse:

ssh root@new-ip-addr

Wenn das funktioniert hat schließt Du danach alle Ports deines Servers (außer HTTP und HTTPS):

sudo ufw allow in on tailscale0 to any port 22
 sudo ufw allow 41641/udp
 sudo ufw enable
 sudo ufw default deny incoming
 sudo ufw default allow outgoing
 sudo ufw allow 80/tcp
 sudo ufw allow 443/tcp
 sudo ufw status
 sudo ufw reload
 sudo service ssh restart

Jetzt ist dein Server sicher und nur du kannst über deinen tailscale Account auf deinen Server zugreifen.


Docker installation

Um deine Anwendungen auf dem Server zu betreiben empfehle ich dir docker. Dieses installierst du durch folgende Befehle:

sudo apt-get update
 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent 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 $(lsb_release -cs) stable"
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 echo "DOCKER_OPTS=\"--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false\"" >> /etc/default/docker
 service docker restart

Danach testest du deine Umgebung, in dem du einen nginx Container erstellst:

sudo docker run -itd --restart=always -p 80:80 --name nginx nginx

Du solltest nun die nginx Testseite über deine IP Adresse erreichen.

Danach kannst du den Container wie folgt wieder entfernen:

 sudo docker stop nginx
 sudo docker rm nginx

Portainer

Um dein docker zu administrieren empfehle ich dir Portainer. Damit kannst du alle deine Anwendungscontainer grafisch administrieren. Du installierst es wie folgt:

sudo docker run -d --restart=always -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer
 sudo ufw allow in on tailscale0 to any port 9000
 sudo ufw reload

Danach erreichst du deine Admin-Oberfläche über folgende URL:

http://##tailscale-ip-adresse##:9000

Beim ersten Aufruf musst du dir ein Passwort vergeben und die Umgebung auf local stellen.


Nun kannst du auf deinem Server einen eigenen Mailserver, Datenbank, WordPress, ... betreiben.

Last Updated: 9/6/2021, 9:06:41 PM