Mein eigener Server

Dokumentation meiner Projekte und Hobbies

Quickstart

Die Igel Cloud in ein paar Minuten installiert.

Ich habe noch keinen Server

Dann gibt es hier einen guten Server mit 5€ rabatt.

Mein Server ist noch nicht aufgesetzt / abgesichert

Dann geht es hier mit meinem Quickstart Ubuntu Installieren weiter.

Igel Cloud installieren

docker-compose.yml download Wechselt in das Installationsverzeichnis cd /srv und ladet das docker-compose file herunter. (Bitte beachte dass wenn Du das Verzeichniss wechselst dieses auch in vielen nachfolgenden Kommandos angepasst werden muss.) git clone https://github.com/eigener-server/docker-compose.git eigener-server.ch

change directory Jetzt wechseln wir in das heruntergeladene Verzeichnis. (Ein wechsel dieses Verzeichnis bedeutet ebenfalls Anpassungen in den weiteren Schritten. cd eigener-server.ch

secure installation Die haproxy Statistiken und auch das lektor admin Panel ist aus sicherheitsgründen auf eine IP bzw. IP Range eingeschränkt. Wenn Dein Server im Internet steht gibst Du im nachfolgenden bitte die IP deines Internet Anschlusses (routers) ein. Wenn Dein Server in einem Privaten Netz steht und Du über das gleiche Private Netz gehst kannst Du die IP deines Computers eintragen. (0.0.0.0/0 öffnet alle IP Adressen. Dies ist nicht sicher. 192.168.0.0/16 bzw. 10.0.0.0/8 öffnet viele private Adressen.) sed -i -e "s#192.168.1.0/24#YOUR-REMOTE-ADMIN-ACCESS-IP/SUBNET#g" docker-compose.yml

Hier gebt Ihr die IP Adresse an wie Ihr auf nextcloud / Euren Server zugreift. Zum Beispiel für https://123.45.67.89/nextcloud dann gebt Ihr "123.45.67.89" ein. Falls via Domain https://www.eigener-server.ch/nextcloud dann gebt Ihr "eigener-server.ch" ein und fall via https://nextcloud.eigener-server.ch dann gebt Ihr "nextcloud.eigener-server.ch" ein. sed -i -e "s#192.168.1.97#YOUR-SERVER-IP_or_YOUR-DOMAIN#g" docker-compose.yml

start cloud Service starten mit ./up

check status Sobald Ihr apache2 -d FOREGROUND seht ist Eure Cloud "up and running" docker logs eigenerserverch_nextcloud_1

ssl letsencrypt staging Jetzt testen wir letsencrypt. docker exec eigenerserverch_letsencrypt_1 cert.sh staging YOUR-EMAIL YOUR-DOMAIN www.YOUR-DOMAIN

activate certificate Anschliessend haproxy neu starten. docker restart eigenerserverch_haproxy_1

check ssl Da wir mit staging getestet haben wurde ein Fake Zertifikat istalliert. Jetzt wissen wir dass letsencrypt funktioniert und können das zertifizierte Zertifikat installieren.

ssl letsencrypt productive Mit force-renewal erzwingen wir die Installation eines neues Zertifikates. Diesmal ohne staging, also für die produktive Umgebung. docker exec eigenerserverch_letsencrypt_1 cert.sh force-renewal YOUR-EMAIL YOUR-DOMAIN www.YOUR-DOMAIN

activate certificate Anschliessend haproxy neu starten. docker restart eigenerserverch_haproxy_1

check certificate Jetzt sieht man zertifiziert von Let's Encrypt und der Browser zeigt keine Fehlermung mehr.

automatic renewal Jetzt wollen wir das erneuern des Zertifikates automatisieren und testen dafür den Befehl ohne force renewal. Jetzt seht Ihr dass das Zertifikat auf dem aktuellen Stand ist. docker exec eigenerserverch_letsencrypt_1 cert.sh YOUR-EMAIL YOUR-DOMAIN www.YOUR-DOMAIN

which docker Damit das Skript auch im cronjob funktioniert benötigen wir das Verzeichniss in dem docker installiert ist. which docker

create script Eine neue Datei anlegen mit vi renew_cert.sh

create script und folgende Befehle hinein kopieren. (ggf. den patth gemäss der Ausgabe von which Docker anpassen)

/usr/bin/docker exec eigenerserverch_letsencrypt_1 cert.sh YOUR-EMAIL YOUR-DOMAIN www.YOUR-DOMAIN
/usr/bin/docker restart eigenerserverch_haproxy_1

create script Jetzt das Skript ausführbar machen chmod +x renew_cert.sh

test script und anschliessend testen


![cronjob](igel-cloud_18.JPG)
Wenn das Skript funktioniert können wir es in den cronjob einbinden. Dazu öffnen wir crontab mit:
```crontab -e

cronjob Und kopieren die folgenden Zeilen in die Datei:

# Zertifikat jeden Montag um 00:30 überprüfen und ggf. updaten
30 0 * * Mon /srv/eigener-server.ch/renew_cert.sh

Update der Umgebung

update cloud Mit docker-compose pull zieht Ihr neue Versionen von docker hub.

restart cloud Und startet diese anschliessend mit: ./up