Bearbeiten von „VPS Setup“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
 
==Docker Setup==
 
==Docker Setup==
=== Allgemeines ===
+
Config-Files:Es ist zu jedem Docker-Container ein Setup im Ordner /srv/docker-config/ abgelegt. Darin sind in der Regel drei Files enthalten: ./create.sh, ./replace.sh und env_file. Diese Files definieren die Container und können zum neustarten / ersetzen / verändern verwendet werden. Größere Setups mit Docker Compose enthalten eine docker-compose.yml.
Unter [[Docker Befehle]] gibt es eine Liste von nützlichen docker Befehlen (z.B. für debugging)
+
==Volumes:==
 
+
Die Volumes eines Containers werden unter /srv/docker-volumes/ abgelegt.  
===Config-Files:===
 
Es ist zu jedem Docker-Container ein Setup im Ordner /srv/docker-config/<container> abgelegt. Die Container werden auf zwei verschiedene Arten definiert:
 
# (bevorzugt)<span>docker-compose.yml</span>
 
## <span>Starten des Containers: docker-compose -d up (-d für detatched, damit die Container auch weiterlaufen, wenn die Shell geschlossen wird)</span>
 
## <span>Stoppen des Containers: docker-compose down</span>
 
## <span>Inspizieren des Containers: docker-compose ps</span>
 
# (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:===
 
Gemountete Volumes sollen unter /srv/docker-volumes/<container>/<volume-wie-im-container> abgelegt werden.
 
  
 
=Contabo Server 1=
 
=Contabo Server 1=
Zeile 18: Zeile 8:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|Container-Name
+
|Container<br />
|Image
 
|Sub-Container
 
 
|Web-Adresse<br />
 
|Web-Adresse<br />
|Networks
+
|Volumes<br />
|Externe Ports
+
|<br />
|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, git.unhackbar.de
 
|nginx_net
 
|22
 
 
|Git Server
 
|-
 
|wiki
 
|christopher/wiki
 
|wiki_sql (mariadb)
 
|wiki.un-hack-bar.de, wiki.unhb.de, wiki.unhackbar.de
 
|nginx_net wiki_net
 
|(-)
 
|Eigens angepasstes Dockerfile, basierend auf Mediawiki. Wer das Ding anfasst wird automatisch für immer Admin davon.<br />
 
|Mediawiki Server
 
|-
 
|spaceapi
 
|sebp/lighttpd:latest
 
|(-)
 
|status.un-hack-bar.de
 
 
 
status.unhb.de
 
 
 
status.unhackbar.de
 
 
 
keinanschluss.un-hack-bar.de
 
 
 
keinanschluss.unhb.de
 
 
 
keinanschluss.unhackbar.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, cloud.unhackbar.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]]
+
|<br />
|matrixdotorg/synapse:latest
+
|<br />
|
+
|<br />
matrix_sql (postgres:10-alpine)
+
|<br />
 
 
[[matrix_telegram]] (dock.mau.dev/tulir/mautrix-telegram:latest)
 
 
 
[[matrix_pingbot]] (dock.mau.dev/maubot/maubot:latest)
 
 
 
|matrix.un-hack-bar, 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)=
 
 
* 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)
 
 
 
 
{| class="wikitable"
 
|-
 
! Container<br/>Name || Image|| Sub<br/>Container || Web<br/>Adresse || Networks|| Externe<br/>Ports<br />|| Besonderheiten|| Erläuterung
 
|-
 
|[[Projekt:Minecraft-Server|minecraft]]
 
|[https://hub.docker.com/r/itzg/minecraft-server/ itzg/minecraft-server]
 
|
 
|
 
* http://mc.unhb.de:8123 (direkt)
 
* https://mc.unhb.de/ (via nginx-reverse-proxy)
 
|
 
|
 
* 8123 (dynmap)
 
* 9225 (Prometheus)
 
* 25565 (Minecraft)
 
| docker-compose.yml erweiterungen:
 
* section environment:
 
** MAX_MEMORY: 4G
 
** VIRTUAL_HOST: mc.unhb.de
 
** VIRTUAL_PORT: 8123
 
** LETSENCRYPT_HOST: mc.unhb.de
 
|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
 
|(-)
 
|(-)
 
|
 
* nginx_net
 
* minecraft_default
 
* mailcowdockerized_mailcow-network
 
|80, 443
 
|
 
|Reverse Proxy. Schleift Anfragen zum richtigen Container durch.
 
|-
 
|nginx-proxy-letsencrypt
 
|jrcs/letsencrypt-nginx-proxy-companion:stable
 
|(-)
 
|(-)
 
|(-)
 
|(-)
 
| docker-compose.yml erweiterungen:
 
* section environment:
 
** DEFAULT_EMAIL=accounts@unhb.de
 
** NGINX_PROXY_CONTAINER=nginx_proxy
 
|Holt letsencrypt Zertifikate für alle Container ab.
 
|-
 
|mailcowdockerized_*
 
|
 
* https://github.com/Shadowghost/mailcow-mailman3-dockerized
 
* https://github.com/mailcow/mailcow-dockerized
 
* https://github.com/maxking/docker-mailman
 
|
 
* mailcowdockerized_ipv6nat-mailcow_1
 
* mailcowdockerized_acme-mailcow_1
 
* mailcowdockerized_rspamd-mailcow_1
 
* mailcowdockerized_netfilter-mailcow_1
 
* mailcowdockerized_nginx-mailcow_1
 
* mailcowdockerized_php-fpm-mailcow_1
 
* mailcowdockerized_dovecot-mailcow_1
 
* mailcowdockerized_postfix-mailcow_1
 
* mailcowdockerized_dockerapi-mailcow_1
 
* mailcowdockerized_memcached-mailcow_1
 
* mailcowdockerized_olefy-mailcow_1
 
* mailcowdockerized_clamd-mailcow_1
 
* mailcowdockerized_mysql-mailcow_1
 
* mailcowdockerized_sogo-mailcow_1
 
* mailcowdockerized_redis-mailcow_1
 
* mailcowdockerized_watchdog-mailcow_1
 
* mailcowdockerized_solr-mailcow_1
 
* mailcowdockerized_mailman-web_1
 
* mailcowdockerized_mailman-core_1
 
* mailcowdockerized_database_1
 
* mailcowdockerized_unbound-mailcow_1
 
|
 
* https://neuromail.unhb.de/
 
* https://lists.unhb.de/
 
|mailcowdockerized_mailcow-network
 
|
 
* 25 (SMTP)
 
* 110 (POP3)
 
* 143 (IMAP)
 
* 465 (SMTPS)
 
* 587 (SMTP submission)
 
* 993 (IMAPS)
 
* 995 (POP3S)
 
* 4190 (SIEVE)
 
| Aenderungen an der docker-compose.yml fuer unsere zwecke:
 
* mailman-core:
 
** section environment:
 
** MM_HOSTNAME=${IPV4_NETWORK:-172.19.199}.2
 
* mailman-web: section environment:
 
** VIRTUAL_HOST=lists.unhb.de
 
** VIRTUAL_PORT=8080
 
** VIRTUAL_PROTO=uwsgi
 
** HTTPS_METHOD=redirect
 
** LETSENCRYPT_HOST=lists.unhb.de
 
* nginx_mailcow:
 
** section environment
 
** VIRTUAL_HOST=neuromail.unhb.de
 
** LETSENCRYPT_HOST=neuromail.unhb.de
 
** VIRTUAL_PORT=8080
 
|
 
Mailcow Suite fuer eMail + Mailman fuer mailinglisten
 
[[Mailman Subscribe liste aufräumen]]
 
|-
 
|}
 
 
=== neuromancer install ===
 
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
 

Bitte beachte, dass alle Beiträge zu Un-Hack-Bar von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter Un-Hack-Bar:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)