Skip to content

Instantly share code, notes, and snippets.

@theking2
Last active January 27, 2025 09:31
Show Gist options
  • Save theking2/f65b2adf0ebd6ce42d149bbc961c9808 to your computer and use it in GitHub Desktop.
Save theking2/f65b2adf0ebd6ce42d149bbc961c9808 to your computer and use it in GitHub Desktop.
docker-compose.yaml for nginx-proxy-manager with nextcloud
<?php
$CONFIG = [
'htaccess.RewriteBase' => '/',
'memcache.local' => '\\OC\\Memcache\\APCu',
'apps_paths' =>
[
[
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
],
[
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
],
],
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
[
'host' => 'redis',
'password' => '',
'port' => 6379,
],
'upgrade.disable-web' => true,
'instanceid' => 'oc9tuhbtqchs',
'passwordsalt' => 'FKTsTalVXoSj9JyhmonYR7aWEhgVz/',
'secret' => '53Lc8MyanoO7foNqzU2bQ9AjV8H65u2RW1g66XiHezkiJOmO',
'trusted_domains' =>
[
'srv-nas-pi.kingma:8081',
'office.kingma.ch:8888',
'office.kingma.ch',
],
'datadirectory' => '/var/www/html/data',
'dbtype' => 'mysql',
'version' => '30.0.5.1',
'overwrite.cli.url' => 'http://srv-nas-pi.kingma:8081',
'dbname' => 'nextcloud',
'dbhost' => 'nextclouddb',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => 'dbpassword',
'installed' => true,
];
services:
nextcloud:
image: nextcloud
container_name: nextcloud
restart: unless-stopped
networks: [ cloud ]
depends_on:
- nextclouddb
- redis
volumes:
- /pool0/nextcloud-root/html:/var/www/html
- /pool0/nextcloud-root/custom_apps:/var/www/html/custom_apps
- /pool0/nextcloud-root/config:/var/www/html/config
- /pool0/nextcloud-root/data:/var/www/html/data
environment:
- PUID=1000
- PGID=1000
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=dbpassword
- MYSQL_HOST=nextclouddb
- REDIS_HOST=redis
nextclouddb:
image: mariadb
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
networks: [ cloud ]
volumes:
- ./nextclouddb:/var/lib/mysql
environment:
- PUID=1000
- PGID=1000
- MYSQL_PASSWORD=dbpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
collabora:
image: collabora/code
container_name: collabora
restart: unless-stopped
networks: [ cloud ]
environment:
- PUID=1000
- PGID=1000
- password=password
- username=nextcloud
- domain=office.kingma.ch
- extra_params=--o:ssl.enable=true
redis:
image: redis:alpine
container_name: redis
networks: [ cloud ]
volumes:
- ./redis:/data
nginx-proxy:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy
restart: unless-stopped
networks: [ cloud ]
ports:
- '9080:80'
- '81:81'
- '9443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
- PUID=1000
- PGID=1000
networks:
cloud:
name: cloud
driver: bridge

router

map 80-> 9080 , 443 -> 9443

image

nginx-proxy

Proxy-Host http://nextcloud:80 using the let's encrypt certificate under SSL

image

@theking2
Copy link
Author

for normal use port 80 does not have to be exposed on the internet. Only when updating Let's encrypt certificates?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment