VPS Setup
Zur Navigation springen
Zur Suche springen
Docker Setup[Bearbeiten | | Quelltext bearbeiten]
Allgemeines[Bearbeiten | | Quelltext bearbeiten]
Unter Docker Befehle gibt es eine Liste von nützlichen docker Befehlen (z.B. für debugging)
Config-Files:[Bearbeiten | | Quelltext bearbeiten]
Es ist zu jedem Docker-Container ein Setup im Ordner /srv/docker-config/<container> abgelegt. Die Container werden auf zwei verschiedene Arten definiert:
- (bevorzugt)docker-compose.yml
- Starten des Containers: docker-compose -d up (-d für detatched, damit die Container auch weiterlaufen, wenn die Shell geschlossen wird)
- Stoppen des Containers: docker-compose down
- Inspizieren des Containers: docker-compose ps
- (legacy) Drei Files: ./create.sh, ./replace.sh und env_file. Diese Files definieren die Container und können zum neustarten / ersetzen / verändern verwendet werden
Volumes:[Bearbeiten | | Quelltext bearbeiten]
Gemountete Volumes sollen unter /srv/docker-volumes/<container>/<volume-wie-im-container> abgelegt werden.
Contabo Server 1[Bearbeiten | | Quelltext bearbeiten]
Container-Name | Image | Sub-Container | Web-Adresse |
Networks | Externe Ports | Besonderheiten | Erläuterung | |
nginx | jwilder/nginx-proxy:alpine | (-) | (-) | nginx_net | 80, 443 |
|
Reverse Proxy. Schleift Anfragen zum richtigen Container durch. | |
nginx-proxy-letsencrypt | jrcs/letsencrypt-nginx-proxy-companion:stable | (-) | (-) | nginx_net | (-) |
|
Holt letsencrypt Zertifikate für alle Container ab. | |
watchtower | containrrr/watchtower | (-) | (-) | (-) | (-) |
|
Überwacht laufende Container. Wenn es eine neue Version gibt, wird der Container gestoppt, die neue Version gepullt, der Container gelöscht und neu gestartet. | |
gitea | gitea/gitea:latest | (-) | git.un-hack-bar.de, git.unhb.de | nginx_net | 22 |
|
Git Server | |
wiki | christopher/wiki | wiki_sql (mariadb) | wiki.un-hack-bar.de, wiki.unhb.de |
nginx_net wiki_net | (-) | Eigens angepasstes Dockerfile, basierend auf Mediawiki. Wer das Ding anfasst wird automatisch für immer Admin davon. |
Mediawiki Server | |
spaceapi | sebp/lighttpd:latest | (-) | status.un-hack-bar.de
status.unhb.de
keinanschluss.un-hack-bar.de keinanschluss.unhb.de
|
nginx_net | (-) | Hier wird ein gesonderter Benutzer "keinanschluss" verwendet. Ein Raspi im Space verbindet sich mit SSH. Deswegen ist das /home von "keinanschluss" auf das Volume glelegt und das Volume beherbergt einen SSH-Key für den Raspi. | Macht irgendwas für die Spaceapi. (Bitte gern ergänzen, wenn wer weiß was genau) | |
portainer | portainer/portainer:latest | (-) | portainer.un-hack-bar.de, portainer.unhb.de | (-) | (-) |
|
Portainer zum verwalten der Docker-Container, aktuell nur für Server1 verfügbar | |
jverein_sql | mariadb:10.3.5 | (-) | (-) |
|
|
|
Mariadb-Datenbank für jVerein. Das Programm selbst ist lokal auf den Clients installiert, nur die DB wird geteilt. Zugriff per SSH. | |
nextcloud | nextcloud:stable | nextcloud_sql | cloud.unhb.de, cloud.un-hack-bar.de |
nginx_net, nextcloud_net | (-) |
|
Nextcloud Instanz für die Dateisyncronisation im Space. | |
codimd | hackmdio/hackmd | codi_sql (postgres) | hackmd.un-hack-bar, hackmd.unhb.de | nginx_net
codimd_net |
(-) |
|
Ein "Etherpad" mit Markup-Syntax und weitere möglichkeiten | |
etherpad-lite | etherpad/etherpad | etherpad_sql (mariadb:latest) | pad.un-hack-bar, pad.unhb.de | nginx_net
etherpad_net |
(-) |
|
Einfaches Etherpad. Admin Zugang steht im Keepass |
|
Wordpress | wordpress:latest | wordpress_sql (mariadb:10.5) | un-hack-bar, unhb.de, www.un-hack-bar.de, www.unhb.de, blog2.un-hack-bar.de | nginx_net
wordpress_net |
(-) |
|
Unser Blog.... Admin Zugang im Kesspass. DB User+Kennwort in den Docker-Compose file. | |
Matrix | matrixdotorg/synapse:latest |
matrix_sql (postgres:10-alpine) matrix_telegram (dock.mau.dev/tulir/mautrix-telegram:latest) matrix_pingbot (dock.mau.dev/maubot/maubot:latest) |
matrix.un-hack-bar.de, matrix.unhb.de, | nginx_net
matrix_net |
443, 8448 | Port 443 läuft über den reverse proxy, 8448 (für Matrix Federation) direkt aus dem Container, LE Zertifikate via mount-bind aus dem Proxy | Der Matrix Server und 2 weitere Dienste (Telegram-Bridge und Pingpot). Details dazu auf der jeweiligen Wikiseite. | |
Poste.io | analogic/poste.io | (-) | mail.un-hack-bar, mail.unhb.de, | nginx_net | 25, 110, 143, 465, 587, 993, 995, 4190, 80 | Webmail unter mail.un-hack-bar.de erreichbar. |
|
neuromancer (aka Contabo Server 2)[Bearbeiten | | Quelltext bearbeiten]
- IP: 213.136.84.38
- IPv6: 2a02:c207:3004:7659::1
- VNC: 5.189.158.206:63083
- Host system: 3306
- OS: Ubuntu 19.10 (64 Bit)
minecraft | itzg/minecraft-server |
|
|
|
|
docker-compose.yml erweiterungen:
|
Admin: ryze |
watchtower | containrrr/watchtower | (-) | (-) | (-) | (-) | email notifications werden derzeit an smash gesendet | Überwacht laufende Container. Wenn es eine neue Version gibt, wird der Container gestoppt, die neue Version gepullt, der Container gelöscht und neu gestartet. |
nginx | jwilder/nginx-proxy:alpine | (-) | (-) |
|
80, 443 |
|
Reverse Proxy. Schleift Anfragen zum richtigen Container durch. |
nginx-proxy-letsencrypt | jrcs/letsencrypt-nginx-proxy-companion:stable | (-) | (-) | (-) | (-) | docker-compose.yml erweiterungen:
|
Holt letsencrypt Zertifikate für alle Container ab. |
mailcowdockerized_* |
|
mailcowdockerized_mailcow-network |
|
Aenderungen an der docker-compose.yml fuer unsere zwecke:
|
Mailcow Suite fuer eMail + Mailman fuer mailinglisten Mailman Subscribe liste aufräumen |
neuromancer install[Bearbeiten | | Quelltext bearbeiten]
as root:
enable_ipv6 reboot adduser smash usermod -aG sudo,admin smash echo neuromancer.unhb.de > /etc/hostname
as smash:
- install docker.ce
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 apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable test" ## appended test as a workaround - currently no containerd.io version available in stable for ubuntu eoan! sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io ## install docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ## create mc docker container sudo mkdir -p /srv/docker-volumes/ ## install additional tools sudo apt install htop dstat net-tools
- initial docker-compose.yml for minecraft
version: '3.7' services: mc: image: itzg/minecraft-server container_name: minecraft restart: always environment: EULA: "true" TYPE: SPIGOT MAX_MEMORY: 4G command: --noconsole ports: - 25565:25565 - 8123:8123 - 9225:9225 volumes: - /srv/docker-volumes/minecraft:/data
- altered /etc/sudoers for ssh pubkey access (NOPASS Option)
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL)NOPASSWD: ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d