2,9K
OwnCloud ist eine Plattform, mit der du deine eigene private Cloud erstellen kannst, um deine Dateien sicher zu speichern, zu synchronisieren und von überall aus darauf zuzugreifen. Du behältst die volle Kontrolle über deine Daten und kannst sie bequem von verschiedenen Geräten aus verwalten. Ich zeige dir hier, wie du OwnCloud innerhalb weniger Minuten mittels Docker und Traefik installieren kannst.
Datum | Änderungen |
---|---|
08.09.2022 | Erstellung dieser Anleitung |
01.06.2023 | Anpassung an neue Traefik Labels |
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik v2 + 3 – Reverse-Proxy mit CrowdSec im Stack einrichten
2. Verzeichnis anlegen
Im ersten Schritt legen wir uns ein Verzeichnis an.
mkdir -p /opt/containers/owncloud
mkdir -p /opt/containers/owncloud
mkdir -p /opt/containers/owncloud
3. Docker Compose erstellen
Nun erstellen wir uns unsere Docker Compose Datei. Dies ist die Grundlage für unser ownCloud. Gebt dazu folgenden Befehl ein:
nano /opt/containers/owncloud/docker-compose.yml
nano /opt/containers/owncloud/docker-compose.yml
nano /opt/containers/owncloud/docker-compose.yml
Hier fügt ihr folgendes ein:
version: "3"
services:
owncloud:
image: owncloud/server
container_name: owncloud_server
restart: unless-stopped
depends_on:
- mariadb
- redis
environment:
- OWNCLOUD_DOMAIN=owncloud.euredomain.de
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=mariadb
- OWNCLOUD_ADMIN_USERNAME=admin
- OWNCLOUD_ADMIN_PASSWORD=superSicher
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
- OWNCLOUD_OVERWRITE_CLI_URL=https://owncloud.euredomain.de
- OWNCLOUD_OVERWRITE_PROTOCOL=https
- OWNCLOUD_OVERWRITE_HOST=owncloud.euredomain.de
- OWNCLOUD_TRUSTED_PROXIES=172.16.255.254/16
- OWNCLOUD_DEFAULT_LANGUAGE=de
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./files:/mnt/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.owncloud.entrypoints=websecure"
- "traefik.http.routers.owncloud.rule=Host(`owncloud.euredomain.de`)"
- "traefik.http.routers.owncloud.tls=true"
- "traefik.http.routers.owncloud.tls.certresolver=http_resolver"
- "traefik.http.routers.owncloud.service=owncloud"
- "traefik.http.services.owncloud.loadbalancer.server.port=8080"
- "traefik.docker.network=proxy"
- "traefik.http.routers.owncloud.middlewares=default@file"
networks:
- default
- proxy
mariadb:
image: mariadb:10.6
container_name: owncloud_mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=owncloud
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./mysql:/var/lib/mysql
networks:
- default
redis:
image: redis:6
container_name: owncloud_redis
restart: unless-stopped
command: ["--databases", "1"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./redis:/data
networks:
- default
networks:
proxy:
external: true
version: "3"
services:
owncloud:
image: owncloud/server
container_name: owncloud_server
restart: unless-stopped
depends_on:
- mariadb
- redis
environment:
- OWNCLOUD_DOMAIN=owncloud.euredomain.de
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=mariadb
- OWNCLOUD_ADMIN_USERNAME=admin
- OWNCLOUD_ADMIN_PASSWORD=superSicher
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
- OWNCLOUD_OVERWRITE_CLI_URL=https://owncloud.euredomain.de
- OWNCLOUD_OVERWRITE_PROTOCOL=https
- OWNCLOUD_OVERWRITE_HOST=owncloud.euredomain.de
- OWNCLOUD_TRUSTED_PROXIES=172.16.255.254/16
- OWNCLOUD_DEFAULT_LANGUAGE=de
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./files:/mnt/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.owncloud.entrypoints=websecure"
- "traefik.http.routers.owncloud.rule=Host(`owncloud.euredomain.de`)"
- "traefik.http.routers.owncloud.tls=true"
- "traefik.http.routers.owncloud.tls.certresolver=http_resolver"
- "traefik.http.routers.owncloud.service=owncloud"
- "traefik.http.services.owncloud.loadbalancer.server.port=8080"
- "traefik.docker.network=proxy"
- "traefik.http.routers.owncloud.middlewares=default@file"
networks:
- default
- proxy
mariadb:
image: mariadb:10.6
container_name: owncloud_mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=owncloud
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./mysql:/var/lib/mysql
networks:
- default
redis:
image: redis:6
container_name: owncloud_redis
restart: unless-stopped
command: ["--databases", "1"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./redis:/data
networks:
- default
networks:
proxy:
external: true
version: "3" services: owncloud: image: owncloud/server container_name: owncloud_server restart: unless-stopped depends_on: - mariadb - redis environment: - OWNCLOUD_DOMAIN=owncloud.euredomain.de - OWNCLOUD_DB_TYPE=mysql - OWNCLOUD_DB_NAME=owncloud - OWNCLOUD_DB_USERNAME=owncloud - OWNCLOUD_DB_PASSWORD=owncloud - OWNCLOUD_DB_HOST=mariadb - OWNCLOUD_ADMIN_USERNAME=admin - OWNCLOUD_ADMIN_PASSWORD=superSicher - OWNCLOUD_MYSQL_UTF8MB4=true - OWNCLOUD_REDIS_ENABLED=true - OWNCLOUD_REDIS_HOST=redis - OWNCLOUD_OVERWRITE_CLI_URL=https://owncloud.euredomain.de - OWNCLOUD_OVERWRITE_PROTOCOL=https - OWNCLOUD_OVERWRITE_HOST=owncloud.euredomain.de - OWNCLOUD_TRUSTED_PROXIES=172.16.255.254/16 - OWNCLOUD_DEFAULT_LANGUAGE=de healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 volumes: - ./files:/mnt/data labels: - "traefik.enable=true" - "traefik.http.routers.owncloud.entrypoints=websecure" - "traefik.http.routers.owncloud.rule=Host(`owncloud.euredomain.de`)" - "traefik.http.routers.owncloud.tls=true" - "traefik.http.routers.owncloud.tls.certresolver=http_resolver" - "traefik.http.routers.owncloud.service=owncloud" - "traefik.http.services.owncloud.loadbalancer.server.port=8080" - "traefik.docker.network=proxy" - "traefik.http.routers.owncloud.middlewares=default@file" networks: - default - proxy mariadb: image: mariadb:10.6 container_name: owncloud_mariadb restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=owncloud - MYSQL_USER=owncloud - MYSQL_PASSWORD=owncloud - MYSQL_DATABASE=owncloud command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] healthcheck: test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"] interval: 10s timeout: 5s retries: 5 volumes: - ./mysql:/var/lib/mysql networks: - default redis: image: redis:6 container_name: owncloud_redis restart: unless-stopped command: ["--databases", "1"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 volumes: - ./redis:/data networks: - default networks: proxy: external: true
Folgendes müsst ihr anpassen:
- OWNCLOUD_DOMAIN an eure Domain anpassen
- traefik.http.routers.owncloud.rule an eure Domain anpassen
- OWNCLOUD_ADMIN_USERNAME einen Nutzernamen vergeben
- OWNCLOUD_ADMIN_PASSWORD ein sicheres Passwort vergeben
- OWNCLOUD_OVERWRITE_CLI_URL anpassen
- OWNCLOUD_OVERWRITE_HOST anpassen
3. ownCloud starten
Dazu gebt ihr folgendes ein:
docker compose -f /opt/containers/owncloud/docker-compose.yml up -d
docker compose -f /opt/containers/owncloud/docker-compose.yml up -d
docker compose -f /opt/containers/owncloud/docker-compose.yml up -d
4. Quellen
- https://owncloud.com/de/
- https://hub.docker.com/_/owncloud
- https://doc.owncloud.com/server/next/admin_manual/installation/docker/
Hallo, ich habe immer diese Meldung in den Einstellungen stehen: Der „X-XSS-Protection“-HTTP-Header ist nicht so konfiguriert, dass er „0“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.
Ich habe schon Onkel Google gefragt doch da gibt es so viele unterschiedliche Wege und Meinungen. Kann mir hier jemand auf die einfache Art helfen? Bin jetzt kein Profi, aber etwas versteh ich davon und da komm ich nicht drauf.