Use domain name for nextcloud and use postgres as database backend.

This commit is contained in:
2021-11-11 15:36:11 +01:00
parent 4b8bc37942
commit e08c3c03ed
3 changed files with 60 additions and 7 deletions

View File

@@ -26,10 +26,10 @@ services:
networks:
- internal
environment:
- MYSQL_DATABASE:nextcloud
- MYSQL_USER:nextcloud
- MYSQL_PASSWORD:jX9hKI2POvt1VrjVbBs4
- MYSQL_HOST:mysql8
- POSTGRES_DB:nextcloud
- POSTGRES_USER:nextcloud
- POSTGRES_PASSWORD:jX9hKI2POvt1VrjVbBs4
- POSTGRES_HOST:pgsql14
- REDIS_HOST:redis
- REDIS_HOST_PASSWORD:${REDIS_PW}
- NEXTCLOUD_ADMIN_USER:${NEXTCLOUD_ADMIN_USER}
@@ -47,8 +47,23 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.entrypoints=web"
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.lan`)"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- "traefik.http.routers.nextcloud.rule=Host(`cs-nextcloud.ddnss.de`)"
- "traefik.http.routers.nextcloud.middlewares=nextcloud"
- "traefik.http.middlewares.nextcloud.redirectscheme.scheme=https"
- "traefik.http.routers.nextcloud-secure.entrypoints=websecure"
- "traefik.http.routers.nextcloud-secure.rule=Host(`cs-nextcloud.ddnss.de`)"
- "traefik.http.routers.nextcloud-secure.service=nextcloud-secure"
- "traefik.http.routers.nextcloud-secure.tls=true"
- "traefik.http.routers.nextcloud-secure.tls.certresolver=myresolver"
- "traefik.http.routers.nextcloud-secure.tls.domains[0].main=cs-nextcloud.ddnss.de"
- "traefik.http.services.nextcloud-secure.loadbalancer.server.port=80"
- "traefik.http.routers.nextcloud-secure.middlewares=nextcloud-secure,nextcloud-redirect"
- "traefik.http.middlewares.nextcloud-secure.headers.stsSeconds=15552000"
- "traefik.http.middlewares.nextcloud-secure.headers.stsPreload=true"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.replacement=https://$${1}/remote.php/dav/"
depends_on:
- nextcloud
networks:

View File

@@ -5,7 +5,7 @@ upstream php-handler {
server {
listen 80;
listen [::]:80;
server_name nextcloud.lan cs-nextcloud.ddnss.de;
server_name cs-nextcloud.ddnss.de;
# set max upload size and increase upload timeout:

38
nextcloud/readme.md Normal file
View File

@@ -0,0 +1,38 @@
# Nextcloud
## Installation
Installation of nextcloud is easy. Just pull the image and navigate with the browser to the new instance.
Enter database connection and create a user.
### Enable caching
Options must be entered to nextcloud's configuration file.
- Local cache APCu: `'memcache.local' => '\OC\Memcahe\APCu',`
- Distributed cache Redis: `'memcache.distributed' => '\OC\Memcache\Redis',`
- File locking Redis: `'memcache.locking' => '\OC\Memcache\Redis',`
- Configuration for Redis:
````
'redis' => array (
'host' => 'redis',
'port' => 6379,
),
````
## Migration to new instance
Create a new installation of nextcloud. Afterwards drop the database and create it from scratch.
Dump in the data and copy user data to new instance.
## Updating nextcloud
Just update the image version in the compose file and do a ``docker compose pull``
## Database migration
Convert the database from mysql to pgsql:
````
docker exec -it -u www-data NEXTCLOUD_CONTAINER_NAME php occ db:convert-type --all-apps --password "YOUR_PASSWORD" pgsql DB_USER DB_HOST DB_NAME
````