Nextcloud docker https

Guten Abend,

ich versuche mich gerade von Nextcloudpi abzukapseln. Das heißt ich experimentiere gerade mit einer eigenen Docker Instanz herum.

Leider schaffe ich es nicht, dass ich automatisch auf https umgeleitet werde.
Wo stelle ich das am einfachsten ein?

docker-compose

version: ‘3.3’
services:
nextcloud-db:
image: mariadb
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
restart: unless-stopped
volumes:
- /volume1/docker/test/nextcloud/database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben
- MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben
- MYSQL_DATABASE=nextcloud #Datenbank Name
- MYSQL_USER=nextcloud #SQL Nutzername
- MYSQL_INITDB_SKIP_TZINFO=1
networks:
- default
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
hostname: nextcloud-redis
networks:
- default
restart: unless-stopped
command: redis-server --requirepass test # Redis Passwort eingeben
nextcloud-app:
image: nextcloud
container_name: nextcloud-app
restart: unless-stopped
ports:
- 8080:80
depends_on:
- nextcloud-db
- nextcloud-redis
environment:
REDIS_HOST: nextcloud-redis
REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben
volumes:
- /volume1/docker/test/nextcloud/app:/var/www/html
- /volume1/docker/test/nextcloud/daten:/var/www/html/data

mit dem image: gar nicht. da musst du einen eigenen proxy vorbauen. da solltest du mal in dem .examples im git schauen.

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy-self-signed-ssl/mariadb/fpm/docker-compose.yml

alternativ könntest du das image von linuxserver.io nehmen. die bauen https/letsencrypt in ihr image ein. bzw bieten mit swag einen eigenen proxy an.

Danke für die Antwort.

Wie funktioniert das dann bei Nextcloudpi

nc-httpsonly.sh

configure()
{
[[ $ACTIVE == “no” ]] && local OPT=Off || local OPT=On
sed -i “s|RewriteEngine .*|RewriteEngine $OPT|” /etc/apache2/sites-available/000-default.conf
echo “Forcing HTTPS $OPT”

delayed in bg so it does not kill the connection, and we get AJAX response

bash -c “sleep 2 && service apache2 reload” &>/dev/null &
}

install() { :; }

oder ist es noch besser wenn ich auf der Synology den Proxy verwende. Sprich https://cloud.com -> http://192.168.178.200:8080 und http://cloud.com -> http://192.168.178.200:8080

wie immer: irgendwo wird der webserver so konfiguriert, dass er tls sprechen kann. bei nextcloudpi ist das u.a. hier:

plus das skript, dass du gefunden hast.

die philosophie von nextcloud ist: für alles einzelnen images, so dass man sich sein system indivduell zusammenbauen kann.
nextcloudpi geht den “all-in-one” weg. alles in ein image und das läuft sofort.

der proxy sollte immer von http nach https redirecten und mit dem backend nur http sprechen. (wobei man daraufachten sollte, dass das netz dann “sicher und vertrauenswürdig” ist. wenn es bei dir zuhause läuft. oder eh alle container auf einem host laufen, kann man das einfach so machen. wenn in einer wg wohnst und deinen nachbarn nur bedingt traust, musst du auch hier aufpassen.)

deshalb weiß ich nicht genau, was du sagen willst.

1 Like

danke, ich dachte es muss nur etwas in einer Datei geändert werden.

Dann nehme ich den Reverse Proxy von der Synology.