[gelöst] Nextcloud mit Docker Compose und Ubuntu 20.04 als VPS Host System

Docker Image linuxserver/mariadb

Test mit https://docs.linuxserver.io/images/docker-mariadb

docker run -d \
  --name=mariadb \
  -e PUID=1000 \
  -e PGID=1000 \
  -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \
  -e TZ=Europe/London \
  -e MYSQL_DATABASE=USER_DB_NAME `#optional` \
  -e MYSQL_USER=MYSQL_USER `#optional` \
  -e MYSQL_PASSWORD=DATABASE_PASSWORD `#optional` \
  -e REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql `#optional` \
  -p 3306:3306 \
  -v path_to_data:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/mariadb

Daten in Portainer ausgelesen:

Datenbankverzeichnis: /config/databases

Datenbank-Benutzer: MYSQL_USER 

Datenbank-Passwort: DATABASE_PASSWORD

Datenbank-Name: mariadb

locoalhost (nicht geÀndert)

Eingetragene Werte:

Fehlermeldung, wie zuvor, Screenshot erspare ich mir:

Das Datenbankverzeichnis /config/databases
kann nicht erstellt 
oder es kann darin nicht geschrieben werden. 

Wo liegt mein grundsÀtzlicher Fehler?

https://hub.docker.com/_/nextcloud?tab=description

Persistent data

The Nextcloud installation and all data beyond what lives in the database (file uploads, etc.) are stored in the unnamed docker volume volume /var/www/html. The docker daemon will store that data within the docker directory /var/lib/docker/volumes/.... That means your data is saved even if the container crashes, is stopped or deleted.

A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud.

Wie kann ich das umsetzen, ich verstehe das nicht wirklich?

Was genau machen die folgenden Befehle, wie baue ich die ein?


Nextcloud:

    /var/www/html/ folder where all Nextcloud data lives

    $ docker run -d \
    -v nextcloud:/var/www/html \
    nextcloud

Database:

    /var/lib/mysql MySQL / MariaDB Data

    /var/lib/postgresql/data PostgreSQL Data

    $ docker run -d \
    -v db:/var/lib/mysql \
    mariadb

du hast das zusammen mit einem nginx container gemĂ€ĂŸ der doku gestartet?

du wirfst hier “Datenverzeichnis” und “Datenbankverzeichnis” durcheinander. du sollst dort das verezichnis eintragen, wo nextcloud deine dateien ablegen soll. das ist typischerweise /var/www/html/data.

mit dem datenbankverzeichnis hast du erstmal nix zu schaffen.

1 Like

Die Frage habe vorlĂ€ufig zurĂŒck gestellt, ich verrenne mich sonst.

Hallo @Reiner_Nippes Nippes ,

ich habe dir einen Marker for @Reiner_Nippes gesetzt. Bei dem Stand bin ich, es ist alles dokumentiert was ich getan habe.

Mein jetziges Anliegen 2 *.yml Dateien, Nextcloud und MariaDB.

Mit docker-compose verknĂŒpfe ich diese spĂ€ter.

Edit 22. Feb. 2022
Docker yml Release
Compatibility matrix

da docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache at master · nextcloud/docker · GitHub sind vier dateien.

dort musst du hier docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml at master · nextcloud/docker · GitHub und hier docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml at master · nextcloud/docker · GitHub deine domain eintragen. hier docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml at master · nextcloud/docker · GitHub deine email adresse. hier docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml at master · nextcloud/docker · GitHub und hier docker/.examples/docker-compose/with-nginx-proxy/mariadb/apache/db.env at master · nextcloud/docker · GitHub jeweils ein sicheres password.

und dann docker-compose -d up

lass dir mal von nana in ruhe die grundlagen erklÀren.

1 Like

@Reiner_Nippes

Danke, Du bist aber schon zu weit.

Ich bekomme doch nicht mal von Nextcloud Zugriff auf meine MariaDB Datenbank.

da steht datenverzeichnis in dem einrichtungsmenu von nextcloud. nicht datenbankverzeichnis. also default /var/www/html/data

jeder container hat sein eigenes netzwerk. damit ist jeder container sein eigener localhost. du willst dich aber ĂŒber das docker interne netzwerk mit dem mariadb container verbinden. also muss du dort den container namen (== fqdn im docker netz) deines mariadb containers eintragen.

wenn du den container so gestartet hast, dass er eine datenbank mit diesem namen anlegt, wÀre das ok.

aber da fehlt die variable MARIADB_DATABASE. bin mir jetzt nicht sicher, was der container macht, wenn die fehlt.

dann probier mal meine anleitung. in dem compose file wurde deine probleme schon gelöst. :wink:

Auf welche Anleitung beziehst Du dich konkret?
Da kann ich doch evtl. aus dem Compose File *.yml den entsprechenden MariaDB Teil entnehmen?

Wenn ich andauernd neue Anleitungen nehme, komme ich zu nichts.

Wie baue ich die Variable ein?

nein. das ist ja dein fehler. du kopierst einfach das beispiel aus der mariadb anleitung auf docker hub. ohne zu beachten, dass es nur ein beispiel ist.

die dateien in meiner anleitung funktionieren genauso. wenn du was löscht, ohne zu wissen, was dann passiert, wird es nicht funktionieren.

1 Like

Ok, deine Anleitung muss ich mir ĂŒbersetzen.

Da sind vier Dateien —>
Datei 1 (Link korrigiert)

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml#L25

dort musst du hier —>
Datei 2

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml

und hier —>
Datei 3

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml#L26)

deine Domain eintragen. hier —>
Datei 4

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml#L27)

Sind Probleme zu erwarten, wenn ich Anstelle der Domain eine IP-Adresse oder eine kostenfreie Subdomain verwende?

Unter dem ersten Link finde ich mehr als vier Dateien.
Oder stimmt der Link nicht? Link wurde korrigiert.

      - VIRTUAL_HOST=
      - LETSENCRYPT_HOST=
      - LETSENCRYPT_EMAIL=

Was habe ich da konkret und wie einzutragen?

Antwort:
https://github.com/nginx-proxy/acme-companion

Beispiel:

$ docker run --detach \
    --name your-proxied-app \
    --env "VIRTUAL_HOST=subdomain.yourdomain.tld" \
    --env "LETSENCRYPT_HOST=subdomain.yourdomain.tld" \
    nginx


Warum habel alle 4 Dateien die gleiche Bezeichnung “docker-compose.yml”?

Antwort: Weil es 4 verschiedene System sind?

@Reiner_Nippes
Mit deiner Anleitung, auch ĂŒbersetzt komme nicht klar.

Hast Du evtl. eine docker-compose.yml Mustervorlage fĂŒr mich, wo
die erforderlichen Eintragungen vorhanden und markiert sind?

Vorlage

Datei3

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml

docker-compose.yml

version: '3'

services:
  db:
    image: mariadb:10.5
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=geheimpasswort
    env_file:
      - db.env

  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
      - VIRTUAL_HOST=nc-kay.dynv6.net
      - LETSENCRYPT_HOST=nc-kay.dynv6.net
      - LETSENCRYPT_EMAIL=nc-kay@posteo.org
      - MYSQL_HOST=db
      - REDIS_HOST=redis
    env_file:
      - db.env
    depends_on:
      - db
      - redis
    networks:
      - proxy-tier
      - default

  cron:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

  proxy:
    build: ./proxy
    restart: always
    ports:
      - 80:80
      - 443:443
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - certs:/etc/nginx/certs:ro
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxy-tier

  letsencrypt-companion:
    image: nginxproxy/acme-companion
    restart: always
    volumes:
      - certs:/etc/nginx/certs
      - acme:/etc/acme.sh
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - proxy-tier
    depends_on:
      - proxy

# self signed
#  omgwtfssl:
#    image: paulczar/omgwtfssl
#    restart: "no"
#    volumes:
#      - certs:/certs
#    environment:
#      - SSL_SUBJECT=servhostname.local
#      - CA_SUBJECT=my@example.com
#      - SSL_KEY=/certs/servhostname.local.key
#      - SSL_CSR=/certs/servhostname.local.csr
#      - SSL_CERT=/certs/servhostname.local.crt
#    networks:
#      - proxy-tier

volumes:
  db:
  nextcloud:
  certs:
  acme:
  vhost.d:
  html:

networks:
  proxy-tier:

Fehlermeldung:

docker-compose -f /home/ubuntu/docker-compose.yml up -d
ERROR: Couldn't find env file: /home/ubuntu/db.env

Versuch neu mit:

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml

docker-compose.yml

version: '3'

services:
  db:
    image: mariadb:10.5
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=geheimpasswort
    env_file:
      - db.env

  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
      - VIRTUAL_HOST=nckay.dynv6.net
      - LETSENCRYPT_HOST=nckay.dynv6.net
      - LETSENCRYPT_EMAIL=kay@posteo.org
      - MYSQL_HOST=db
      - REDIS_HOST=redis
    env_file:
      - db.env
    depends_on:
      - db
      - redis
    networks:
      - proxy-tier
      - default

  cron:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

  proxy:
    build: ./proxy
    restart: always
    ports:
      - 80:80
      - 443:443
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - certs:/etc/nginx/certs:ro
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxy-tier

  letsencrypt-companion:
    image: nginxproxy/acme-companion
    restart: always
    volumes:
      - certs:/etc/nginx/certs
      - acme:/etc/acme.sh
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - proxy-tier
    depends_on:
      - proxy

# self signed
#  omgwtfssl:
#    image: paulczar/omgwtfssl
#    restart: "no"
#    volumes:
#      - certs:/certs
#    environment:
#      - SSL_SUBJECT=servhostname.local
#      - CA_SUBJECT=my@example.com
#      - SSL_KEY=/certs/servhostname.local.key
#      - SSL_CSR=/certs/servhostname.local.csr
#      - SSL_CERT=/certs/servhostname.local.crt
#    networks:
#      - proxy-tier

volumes:
  db:
  nextcloud:
  certs:
  acme:
  vhost.d:
  html:

networks:
  proxy-tier:

docker-compose -f /home/ubuntu/docker-compose.yml up -d

Gleicher Fehler

ERROR: Couldn't find env file: /home/ubuntu/db.env

Was mache ich falsch?

Diese Anleitung funktioniert:

Install Nextcloud with Docker Compose

Posted on [20/02/2022]

https://jommy.net/install-nextcloud-with-docker-compose/

version: '2'
 
services:
  db:
    image: mariadb:10.5
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /home/dock/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=nextclouddb
      - MYSQL_PASSWORD=nextclouddb
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped
 
  app:
    image: nextcloud
    restart: always
    ports:
      - 8081:80
    links:
      - db
    volumes:
      - /home/dock/nextcloud/nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=nextclouddb
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
    restart: unless-stopped
docker-compose up -d

So sieht das System jetzt aus:

https://i.imgur.com/J154mnK.jpg

Aus der Nextcloud-GUI entnommen:

---
Nextcloud
Version:
Nextcloud Hub II (23.0.2) 
---
VPS auf Oracle Ubuntu 20.04 basierend
Betriebssystem: 	Linux 5.11.0-1028-oracle x86_64
Prozessor: 	AMD EPYC 7551 32-Core Processor (2 cores)
Speicher: 	967.00 MB
---
PHP
8.0.16
Arbeitspeicher-Grenzwert: 512 MB
Maximale AusfĂŒhrungszeit: 3600
Maximale GrĂ¶ĂŸe zum Hochladen: 512 MB
---
Datenbank MariaDB
mysql
10.5.13
GrĂ¶ĂŸe: 2,1 MB
---

Expose your Nextcloud to the internet – Nginx Proxy host config:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
 
location / {
        proxy_pass http://localhost:5001;
 
        proxy_set_header X-Forwarded-Host     $host;
        proxy_set_header X-Forwarded-Server   $host;
        proxy_set_header X-Real-IP            $remote_addr;
        proxy_set_header X-Forwarded-For      $remote_addr;
        proxy_set_header X-Forwarded-Proto    $scheme;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Forwarded-Port     8081;
        proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
 
        proxy_set_header Host                 $host;
 
        proxy_redirect  off;
        proxy_buffering off;
 
        proxy_http_version 1.1;
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";
 
        proxy_pass_header Authorization;
        proxy_request_buffering off;
        client_max_body_size 0;
        proxy_read_timeout  36000s;
        proxy_ssl_session_reuse off;
 
        fastcgi_param HTTPS on;
        fastcgi_param REQUEST_SCHEME https;
}

Was bedeutet das?
Was habe ich damit zu tun?

Untergrundinformationen zur Anleitung zuvor "Posted on [20/02/2022]"

Basishostsystem: Ubuntu 20.04

docker -v
Docker version 20.10.12, build e91ed57

docker-compose -v
docker-compose version 1.26.0, build d4451659

#################################
#################################
#################################

Docker Container Nextcloud

cat /etc/debian_version
Debian 11.02

erstellt aus:
https://github.com/nextcloud/docker/blob/ababef74e96d028e67361ab097ca1a9e9e9919ec/23/apache/Dockerfile

Docker Container MariaDB

cat /etc/debian_version
bullseye/sid

vermutlich aus dem Dockerfile erstellt:
https://github.com/MariaDB/mariadb-docker/blob/8414e4ff9ebff49f28148a860d85131e11c049c6/10.5/Dockerfile

Warum wird in den Dockerfile auf Ubuntu Focal verwiesen, bzw. wieso ist die Info “bullseye/sid Version” abweichend?

Grundsatzfrage:
Wie finde ich “ohne” Trial and Error die passenden kompatiblen Container aus?
Die mit Alpine erstellten Image sollte man wohl meiden.
Welche Kombinationen sind von den Developern getestet bzw. werden von diesen selbst genutzt?

Beide verwendeten Docker Images basieren auf dem Ubuntu Stack (siehe Portainer Screenshot).
Wie hÀtte ich das ohne Portainer herausfinden können?

Edit: Die Fragen werden sich bestimmt spÀter mit zunehmenden Wissen selbst beantworten.
Ich bedanke mich bei allen.

Der nĂ€chste Schritt wird vermutlich sein das funktionierende System mit Letsencrypt und Traefik aufzurĂŒsten.

Dazu werde ich dann einen neuen Thread aufmachen.

Oder ich finde eine Anleitung dazu. :slight_smile:

MfG
nc-kay

da muss beim ĂŒbersetzen was schiefgegangen sein.

der erste link der anleitung fĂŒhrt zu einem ordner auf github mit zwei dateien und einem ordner mit nochmal zwei dateien. sind vier dateien.

nein. wie du richtig erkannt hast, ist das nur eine datei. beim â€œĂŒbersetzen” ist dir aber ein fehler unterlaufen. zum beispiel fehlt in dem zweiten link deiner liste am ende das “#+zeilennummer”.

ja natĂŒrlich geht das nicht, weil letsencrypt keine zertifakte fĂŒr ip adressen ausstellt.

die frage kann man so nicht beantworten. aber geh’ mal davon aus, dass auch das nicht funktioniert, solange die domain nicht dir gehört. gehört dir die domain, kannst du beliebige zertifikate ausstellen.

ok. hatte vergessen zu schreiben, dass du alle vier dateien in der selben ordnerstruktur runterladen musst. also die beiden dateien im ordner proxy mĂŒssen auch bei dir wieder im ordner proxy sein.

aber dir ist nicht aufgefallen, dass in dem ordner eine datei mit dem namen db.env existiert? das das die datei ist, die laut fehlermeldung nicht gefunden wird. das der letzte link in meiner anleitung genau auf diese datei zeigt und dir sagt, dass du in dieser datei in zeile 1 ein beliebiges, sicheres password eingeben sollst. eine aufforderung in einer datei etwas zu Ă€ndern bedeutet fĂŒr dich nicht, dass man sie runterladen muss?

das wurde dir in dem youtube video erklÀrt. :wink: das sind die fundamente von docker. d.h. wenn man docker soweit verstanden hat, dass man es einsetzen kann, auch im hobby bereich, stellen sich einem solche frage nicht.

und man zieht dann auch nicht solche schlussfolgerungen.

stimmt. gern geschehen.

nein. jede menge youtube videos zum thema docker schauen.

meine anleitung funktioniert.

2 Likes

@wwe
Hallo, wie bekommst Du dein ssl Zertifikat?

docker-compose.yaml

services:
  reverse-proxy:
    image: traefik:v2.6
    container_name: traefik
    ....
      # Let's Encrypt
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencryptresolver.acme.email=youremail@domain"
      - "--certificatesresolvers.letsencryptresolver.acme.storage=/etc/traefik/acme.json"


  nextcloud-app:
    image: nextcloud:23.0.2
    ....
    labels:
      - traefik.http.routers.<name of the container>.tls=true
      - traefik.http.routers.<name of the container>.tls.certresolver=letsencryptresolver

Dokumentation: https://doc.traefik.io/traefik/https/acme/

1 Like

FORSCHUNG

@wwe

Warum hast Du dein ssl Zerfifikat nicht mit dem Dockercontainer linuxserver/SWAG erstellt?
Welche GrĂŒnde haben dagegen gesprochen?

https://hub.docker.com/r/linuxserver/swag

SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let’s Encryptℱ) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let’s Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.

https://hub.docker.com/_/traefik

Mit ist der Unterschied zwischen deiner Traefiklösung und SWAG nicht klar.

Was kann SWAG mehr oder besser oder warum “formerly known as letsencrypt”?

Welches coturn Docker Image nutzt Du?
Ein Verified_Publisher oder Official_Image finde ich bei hub.docker nicht gefunden.

Fragen zu Schaubild von @wwe
Du hast einen Hardwareserver auf dem ein Linux OS installiert, auf dem nutzt Du Docker Container fĂŒr Treafik, Collabora, Coturn und das PI-Hole (OT fĂŒrNextcloud)?
Auf diesem Server hast Du zwei Virtuelle Maschinen fĂŒr deine Nextcloud Instanzen installiert. sind auf deinen “SRV” Instanzen mariadb, redis auch Container oder sind diese Dienste nativ installiert?
Was ist dort “push”?

Ein ganz schönes Hammersystem hast Du da.

MfG
nc-kay

ich kenne SWAG nicht
 ich habe damals mehrere Tutorials angeschaut und traefik sah fĂŒr mich am elgantesten aus. Es gibt viele Varianten fĂŒr Reverse Proxy: Apache, Nginx, traefik HAproxy usw
 jede wird eingesetzt, wie immer hat ein System hier oder da Vorteile gegeĂŒber anderen
 GrundsĂ€tzlich empfehle ich “nimm was du kennst” und wenn du nichts kennst verwende das was du von der Dokumentation am besten verstehst


das sind alle Docker Dienste - was du als “virtuelle Maschinen” bezeichnest sind getrennte docker-compose files/instanzen (man könnte alles in ein Monster docker-compose file schreben). Ich kann sie damit unabhĂ€ngig managen, updaten, neu starten usw.

notify_push: files-high-performance-back-end es gibt auch ein How-To thread hier
 finde ich gerade nicht.

@wwe

Welche Linux-System ist das Grundsystem fĂŒr deine Docker Container?

Getting Started with Fedora CoreOS

Fedora CoreOS is an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It is currently available on multiple platforms, with more coming soon.

Hast Du schon mal ein speziell fĂŒr Docker gehĂ€rtetes Linuxsystem z. B. Fedora CorOS in ErwĂ€gung gezogen?

Nach einer schnellen, unkomplizierten und flexiblen Installation lÀsst sich Fedora CoreOS komplett wartungsfrei betreiben.

https://de.linuxteaching.com/article/top_minimal_container_operating_systems_for_running_kubernetes

Das ist bei deinem Vor-Know-How (alles Docker Container) vermutlich nur ein kleiner Schritt.

MfG
nc-kay

Schaubild - srv

/srv

Von: services (Dienste); Verzeichnisstruktur noch nicht genau spezifiziert; soll Daten der Dienste enthalten; unter Ubuntu in der Regel leer.

Edit: 17:23 Docker root vom * 25.01.22

oder auch gut

Mein System lĂ€uft auf einem normalen Debian
 Ich bin nicht sicher ob speziell gehĂ€rtete OS fĂŒr ein privates System notwendig sind. Ich arbeite beruflich mit M$ systemen, so bin ich manchmal froh wenn ich Tastatur und Monitor anschliessen kann und das System mit der GUI troubleshootien kann (auch wenn es nur einmal notwendig war). “hĂ€rtung” oder erhöhte Sicherheit im Allgemeinen bedeutet automatisch gewisse EinschrĂ€nkungen und reduzierter Komfort - ich tendiere fĂŒr mich zum Komfort und bilde mir gar nicht erst ein dass ich ein Absolut sicheres System bauen kann - wenn NSA oder BND drauf wollen, dann kommen sie auch drauf
 mir reicht es wenn automatisierte Angriffe und Script-Kiddies draussen bleiben


wer so etwas behauptet ist hat entweder keine Ahnung oder ist ein LĂŒgner. Ein System zu betreiben bedeutet immer Aufwand und sei es nur regelmĂ€ssig nach dem Rechten zu sehen um sicher zu sein dass die Automatismen wie gewĂŒnscht funktionieren