diff --git a/nextcloud/env.example b/nextcloud/env.example index f62c1db..6bccb88 100644 --- a/nextcloud/env.example +++ b/nextcloud/env.example @@ -1,8 +1,37 @@ +# db MARIADB_ROOT_PASSWORD= MARIADB_PASSWORD= MARIADB_DATABASE=nextcloud MARIADB_USER=nextcloud -TZ=Asia/Kolkata -EXTERNAL_DIR=/media/vault/nextcloud +MARIADB_HOST=/tmp/docker/mysqld.sock + +# redis +REDIS_HOST=/tmp/docker/valkey.sock +REDIS_HOST_PORT=0 + +# Misc +TZ=Etc/UTC + +# Directories +EXTERNAL_DIR= + +# notify push SOCKET_PATH=/tmp/docker/notify_push.sock -NEXTCLOUD_URL=https://cloud.example.com + +# reverse proxy +OVERWRITEPROTOCOL=https +OVERWRITECLIURL=https://cloud.example.com +TRUSTED_PROXIES=127.0.0.1 ::1 + +# SMTP +SMTP_HOST=smtp.example.com +SMTP_SECURE=ssl +SMTP_NAME= +SMTP_PASSWORD= +MAIL_FROM_ADDRESS= +MAIL_DOMAIN= + +# PHP Optimizations +PHP_MEMORY_LIMIT=2G +PHP_UPLOAD_LIMIT=100G +PHP_OPCACHE_MEMORY_CONSUMPTION=256 diff --git a/nextcloud/nextcloud-notify-push-entrypoint.sh b/nextcloud/nextcloud-notify-push-entrypoint.sh index 546fa43..2073991 100755 --- a/nextcloud/nextcloud-notify-push-entrypoint.sh +++ b/nextcloud/nextcloud-notify-push-entrypoint.sh @@ -1,9 +1,10 @@ #!/bin/sh -NC_PATH="/var/www/html" -CONFIG="$NC_PATH/config/config.php" -NOTIFY_BIN="$NC_PATH/apps/notify_push/bin/x86_64/notify_push" -SOCKET_PATH="${SOCKET_PATH:-/tmp/docker/notify_push.sock}" +# env exports +export NEXTCLOUD_URL="${NEXTCLOUD_URL:-$OVERWRITECLIURL}" +export REDIS_URL="redis+unix://${REDIS_HOST}" +export DATABASE_URL="mysql://${MARIADB_USER}:${MARIADB_PASSWORD}@localhost/${MARIADB_DATABASE}?socket=${MARIADB_HOST}" +export DATABASE_PREFIX="oc_" # Clean shutdown handler cleanup() { @@ -18,12 +19,12 @@ php occ app:install notify_push || true php occ app:enable notify_push || true echo "[*] Starting notify_push binary..." -"$NOTIFY_BIN" "$CONFIG" & +/var/www/html/apps/notify_push/bin/x86_64/notify_push & NOTIFY_PID=$! # Wait for the socket to appear, max 30 seconds -i=0 -while [ $i -lt 6 ]; do +i=1 +while [ $i -le 6 ]; do echo "[*] Waiting 5 seconds for notify_push to be ready... (try $i/6)" sleep 5 if [ -S "$SOCKET_PATH" ]; then diff --git a/nextcloud/nextcloud.container b/nextcloud/nextcloud.container index cdee4c9..9cdeb8e 100644 --- a/nextcloud/nextcloud.container +++ b/nextcloud/nextcloud.container @@ -15,21 +15,14 @@ Image=docker.io/library/nextcloud:fpm-alpine # Enable auto-update container AutoUpdate=registry -Environment=TZ=${TZ} - -# Redis Credentials -Environment=REDIS_HOST=/tmp/docker/valkey.sock - -# DB credentials +# DB credentials (only required when setting up first time) Environment=MYSQL_PASSWORD=${MARIADB_PASSWORD} Environment=MYSQL_DATABASE=${MARIADB_DATABASE} Environment=MYSQL_USER=${MARIADB_USER} -Environment=MYSQL_HOST=localhost:/tmp/docker/mysqld.sock +Environment=MYSQL_HOST=localhost:${MARIADB_HOST} -# PHP Optimizations -Environment=PHP_MEMORY_LIMIT=2G -Environment=PHP_UPLOAD_LIMIT=100G -Environment=PHP_OPCACHE_MEMORY_CONSUMPTION=256 +# env file +EnvironmentFile=./.env Volume=%h/podman/nextcloud/html:/var/www/html Volume=%h/nextcloud:/var/www/html/data diff --git a/nextcloud/nextcloud_db.container b/nextcloud/nextcloud_db.container index 833f4c8..f920396 100644 --- a/nextcloud/nextcloud_db.container +++ b/nextcloud/nextcloud_db.container @@ -5,12 +5,19 @@ Description=Nextcloud DB Container Pod=nextcloud.pod ContainerName=nextcloud_db Image=docker.io/library/mariadb:lts -Exec='--transaction-isolation=READ-COMMITTED' '--log-bin=binlog' '--binlog-format=ROW' '--socket=/tmp/docker/mysqld.sock' '--skip-networking' +Exec=--transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --socket=${MARIADB_HOST} --skip-networking # Enable auto-update container AutoUpdate=registry -# pass this to attach it to container -EnvironmentFile=./.env + +# Timezone +Environment=TZ=${TZ} + +# DB credentials +Environment=MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} +Environment=MARIADB_PASSWORD=${MARIADB_PASSWORD} +Environment=MARIADB_DATABASE=${MARIADB_DATABASE} +Environment=MARIADB_USER=${MARIADB_USER} Volume=%h/podman/nextcloud/db:/var/lib/mysql diff --git a/nextcloud/nextcloud_push.container b/nextcloud/nextcloud_push.container index fe74ae7..146aecf 100644 --- a/nextcloud/nextcloud_push.container +++ b/nextcloud/nextcloud_push.container @@ -14,11 +14,24 @@ Group=1000 # Enable auto-update container AutoUpdate=registry +# Timezone Environment=TZ=${TZ} -# Nextcloud Notify Push socket +# Nextcloud variables Environment=SOCKET_PATH=${SOCKET_PATH} -Environment=NEXTCLOUD_URL=${NEXTCLOUD_URL} +Environment=OVERWRITECLIURL=${OVERWRITECLIURL} +Environment=OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL} +Environment=TRUSTED_PROXIES=${TRUSTED_PROXIES} + +# DB credentials +Environment=MARIADB_PASSWORD=${MARIADB_PASSWORD} +Environment=MARIADB_DATABASE=${MARIADB_DATABASE} +Environment=MARIADB_USER=${MARIADB_USER} +Environment=MARIADB_HOST=${MARIADB_HOST} + +# Redis +Environment=REDIS_HOST=${REDIS_HOST} +Environment=REDIS_HOST_PORT=${REDIS_HOST_PORT} Volume=%h/podman/nextcloud/html:/var/www/html Volume=./nextcloud-notify-push-entrypoint.sh:/nextcloud-notify-push-entrypoint.sh diff --git a/nextcloud/nextcloud_valkey.container b/nextcloud/nextcloud_valkey.container index 37093db..e021f40 100644 --- a/nextcloud/nextcloud_valkey.container +++ b/nextcloud/nextcloud_valkey.container @@ -5,7 +5,7 @@ Description=Nextcloud Valkey Container Pod=nextcloud.pod ContainerName=nextcloud_valkey Image=ghcr.io/valkey-io/valkey:alpine -Exec=--port 0 --unixsocket /tmp/docker/valkey.sock --unixsocketperm 777 +Exec=--port 0 --unixsocket ${REDIS_HOST} --unixsocketperm 777 # Enable auto-update container AutoUpdate=registry