From 2468e6c0f4c2b1f4586cda404c8ff5380c72f28b Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Wed, 6 Oct 2021 22:12:31 -0400 Subject: [PATCH 1/6] Added nextcloud db service --- nextcloud/Containerfile | 9 +++++++++ nextcloud/assets/nextcloud-db.service | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 nextcloud/assets/nextcloud-db.service diff --git a/nextcloud/Containerfile b/nextcloud/Containerfile index ee07952..e8e1ea3 100644 --- a/nextcloud/Containerfile +++ b/nextcloud/Containerfile @@ -113,6 +113,15 @@ COPY --chown=www-data:www-data assets/config/ nextcloud/config/ # make link to host config RUN ln -s /vol/data/host.config.php nextcloud/config/host.config.php +### +### DB Auto Load/Dump +### + +# copy nextcloud db service +COPY assets/nextcloud-db.service /etc/systemd/system/ +# enable nextcloud db service +RUN systemd enable nextcloud-db.service + ### ### Crontab ### diff --git a/nextcloud/assets/nextcloud-db.service b/nextcloud/assets/nextcloud-db.service new file mode 100644 index 0000000..345dd12 --- /dev/null +++ b/nextcloud/assets/nextcloud-db.service @@ -0,0 +1,14 @@ +[Unit] +Description=Load/Dump database on start/stop +After=syslog.target +After=network.target +Requires=postgresql.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/bin/bash -c ". /etc/environment && /usr/local/bin/db-load /vol/data/sql/$DBNAME-updown.sql" +ExecStop=/bin/bash -c ". /etc/environment && /usr/local/bin/db-dump /vol/data/sql/$DBNAME-updown.sql" + +[Install] +WantedBy=multi-user.target -- 2.30.2 From c513051d12c82e69625c22ac59565212777e3ebd Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Thu, 7 Oct 2021 09:08:20 -0400 Subject: [PATCH 2/6] moved enable step to systemdfile --- nextcloud/Containerfile | 2 -- nextcloud/Systemdfile | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nextcloud/Containerfile b/nextcloud/Containerfile index e8e1ea3..ef25aac 100644 --- a/nextcloud/Containerfile +++ b/nextcloud/Containerfile @@ -119,8 +119,6 @@ RUN ln -s /vol/data/host.config.php nextcloud/config/host.config.php # copy nextcloud db service COPY assets/nextcloud-db.service /etc/systemd/system/ -# enable nextcloud db service -RUN systemd enable nextcloud-db.service ### ### Crontab diff --git a/nextcloud/Systemdfile b/nextcloud/Systemdfile index d4372d3..7e9ac94 100644 --- a/nextcloud/Systemdfile +++ b/nextcloud/Systemdfile @@ -31,3 +31,6 @@ nc-occ app:disable comments dashboard federation files_trashbin firstrunwizard r # configure apps # set calendar to refresh subscriptions once a day (to set to one hour use 'PT1H' instead) nc-occ config:app:set dav calendarSubscriptionRefreshRate --value P1D + +# enable DB service +systemd enable nextcloud-db.service -- 2.30.2 From 464362a43e52a4bb6537c0b33ef7f124d28b91dc Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Thu, 30 Dec 2021 17:18:41 -0500 Subject: [PATCH 3/6] removed references to nc-mount, added db-dump service to containerfile --- nextcloud/Containerfile | 5 ++--- nextcloud/Systemdfile | 2 +- nextcloud/assets/bin/nc-adduser | 15 ------------- nextcloud/assets/bin/nc-mntuser | 24 --------------------- nextcloud/{assets => }/data/host.config.php | 0 nextcloud/startup/nextcloud | 2 -- 6 files changed, 3 insertions(+), 45 deletions(-) delete mode 100755 nextcloud/assets/bin/nc-adduser delete mode 100755 nextcloud/assets/bin/nc-mntuser rename nextcloud/{assets => }/data/host.config.php (100%) diff --git a/nextcloud/Containerfile b/nextcloud/Containerfile index ef25aac..2ed70cf 100644 --- a/nextcloud/Containerfile +++ b/nextcloud/Containerfile @@ -6,7 +6,6 @@ FROM localhost/debian # deploy options # -p (port) and -v (volume) both go host:container LABEL config_default="\ ---cap-add=sys_admin --security-opt apparmor=unconfined \ -p 9080:80 \ -v /srv/vol/nextcloud/files:/vol/files \ -v /srv/vol/nextcloud/data:/vol/data" @@ -105,8 +104,8 @@ RUN wget https://download.nextcloud.com/server/releases/latest.zip && \ rm latest.zip # create data dir for nextcloud -RUN mkdir -p /srv/nextcloud/data && \ - chown -R www-data:www-data /srv/nextcloud +RUN mkdir -p /vol/files && \ + chown -R www-data:www-data /vol/files # copy nextcloud config COPY --chown=www-data:www-data assets/config/ nextcloud/config/ diff --git a/nextcloud/Systemdfile b/nextcloud/Systemdfile index 7e9ac94..7029783 100644 --- a/nextcloud/Systemdfile +++ b/nextcloud/Systemdfile @@ -10,7 +10,7 @@ sleep 5 db-make # install nextcloud -nc-occ maintenance:install --data-dir "/srv/nextcloud/data/" --database "pgsql" --database-host "/var/run/postgresql" --database-name "$DBNAME" --database-user "$DBUSER" --database-pass "" --admin-user "admin" --admin-pass "admin" +nc-occ maintenance:install --data-dir "/vol/files" --database "pgsql" --database-host "/var/run/postgresql" --database-name "$DBNAME" --database-user "$DBUSER" --database-pass "" --admin-user "admin" --admin-pass "admin" # do post-installation steps nc-occ maintenance:update:htaccess diff --git a/nextcloud/assets/bin/nc-adduser b/nextcloud/assets/bin/nc-adduser deleted file mode 100755 index a3188c7..0000000 --- a/nextcloud/assets/bin/nc-adduser +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -if [[ -z $1 ]]; then - echo "Usage: $0 username" - exit 2 -fi - -set -e - -nc-occ user:add "$1" - -mkdir -p /vol/files/"$1" -chown www-data:www-data /vol/files/"$1" - -nc-mntuser "$1" diff --git a/nextcloud/assets/bin/nc-mntuser b/nextcloud/assets/bin/nc-mntuser deleted file mode 100755 index 8e1f8cb..0000000 --- a/nextcloud/assets/bin/nc-mntuser +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -if [[ -z $1 ]]; then - echo "Usage: $0 user" - exit 2 -fi -user=$1 - -intdir=/srv/nextcloud/data -extdir=/vol/files - -set -e - -nc-occ maintenance:mode --on - -mkdir -p $intdir/$user/files -chown -R www-data:www-data $intdir/$user -line="$extdir/$user $intdir/$user/files none defaults,bind,nofail 0 0" -if ! grep -q "$line" /etc/fstab ; then - echo "$line" >> /etc/fstab -fi -mount -a - -nc-occ maintenance:mode --off diff --git a/nextcloud/assets/data/host.config.php b/nextcloud/data/host.config.php similarity index 100% rename from nextcloud/assets/data/host.config.php rename to nextcloud/data/host.config.php diff --git a/nextcloud/startup/nextcloud b/nextcloud/startup/nextcloud index 9440871..b8ebba4 100755 --- a/nextcloud/startup/nextcloud +++ b/nextcloud/startup/nextcloud @@ -2,5 +2,3 @@ sysctl vm.overcommit_memory=1 echo never > /sys/kernel/mm/transparent_hugepage/enabled podman start nextcloud -sleep 5 -podman exec nextcloud /bin/bash -c "mount -a" -- 2.30.2 From fee9ceaa6be26ca866b1becc650c7bb53b29f18c Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Sat, 1 Jan 2022 11:27:22 -0500 Subject: [PATCH 4/6] bugfix --- nextcloud/Containerfile | 11 +++++++---- nextcloud/Systemdfile | 3 --- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nextcloud/Containerfile b/nextcloud/Containerfile index 2ed70cf..979bf6c 100644 --- a/nextcloud/Containerfile +++ b/nextcloud/Containerfile @@ -22,9 +22,9 @@ ENV DBNAME=nextcloud ### # install packages we want -RUN apt update -y && apt install -y apache2 php-fpm php-gd php-zip \ - php-pgsql php-curl php-mbstring php-intl php-imagick php-xml php-gmp \ - php-json redis php-redis postgresql postgresql-doc php-ldap php-bcmath +RUN apt update -y && apt install -y apache2 php-fpm php-gd php-zip php-pgsql \ + php-curl php-mbstring php-intl php-imagick php-xml php-gmp php-json \ + redis php-redis postgresql postgresql-doc php-ldap php-bcmath cron # put database variables in /etc/environment so anyone can access them @@ -45,7 +45,7 @@ COPY assets/bin/ /usr/local/bin/ # make sure volume dirs exist, and copy sample data RUN mkdir -p /vol/data /vol/files -COPY --chown=www-data:www-data assets/data/ /vol/data/ +COPY --chown=www-data:www-data data/ /vol/data/ ### ### PHP @@ -119,6 +119,9 @@ RUN ln -s /vol/data/host.config.php nextcloud/config/host.config.php # copy nextcloud db service COPY assets/nextcloud-db.service /etc/systemd/system/ +# enable service +RUN systemctl enable nextcloud-db.service + ### ### Crontab ### diff --git a/nextcloud/Systemdfile b/nextcloud/Systemdfile index 7029783..70104c6 100644 --- a/nextcloud/Systemdfile +++ b/nextcloud/Systemdfile @@ -31,6 +31,3 @@ nc-occ app:disable comments dashboard federation files_trashbin firstrunwizard r # configure apps # set calendar to refresh subscriptions once a day (to set to one hour use 'PT1H' instead) nc-occ config:app:set dav calendarSubscriptionRefreshRate --value P1D - -# enable DB service -systemd enable nextcloud-db.service -- 2.30.2 From 6fe7e455f64b34d7f7c964a8134f649c90839af0 Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Sat, 1 Jan 2022 11:55:12 -0500 Subject: [PATCH 5/6] Added error checking to db-make, fixed db-dump/load service --- nextcloud/assets/bin/db-make | 10 +++++----- nextcloud/assets/nextcloud-db.service | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nextcloud/assets/bin/db-make b/nextcloud/assets/bin/db-make index 6491b52..7a230d6 100755 --- a/nextcloud/assets/bin/db-make +++ b/nextcloud/assets/bin/db-make @@ -5,8 +5,8 @@ cmd() { } cd /var/lib/postgresql -cmd "DROP DATABASE IF EXISTS $DBNAME;" -cmd "DROP USER IF EXISTS $DBUSER;" -cmd "CREATE USER $DBUSER;" -cmd "CREATE DATABASE $DBNAME;" -cmd "GRANT ALL PRIVILEGES ON DATABASE $DBNAME TO $DBUSER;" +cmd "DROP DATABASE IF EXISTS ${DBNAME:?};" +cmd "DROP USER IF EXISTS ${DBUSER:?};" +cmd "CREATE USER ${DBUSER:?};" +cmd "CREATE DATABASE ${DBNAME:?};" +cmd "GRANT ALL PRIVILEGES ON DATABASE ${DBNAME:?} TO ${DBUSER:?};" diff --git a/nextcloud/assets/nextcloud-db.service b/nextcloud/assets/nextcloud-db.service index 345dd12..b64183d 100644 --- a/nextcloud/assets/nextcloud-db.service +++ b/nextcloud/assets/nextcloud-db.service @@ -1,14 +1,14 @@ [Unit] Description=Load/Dump database on start/stop -After=syslog.target -After=network.target +After=postgresql.service Requires=postgresql.service [Service] Type=oneshot RemainAfterExit=yes -ExecStart=/bin/bash -c ". /etc/environment && /usr/local/bin/db-load /vol/data/sql/$DBNAME-updown.sql" -ExecStop=/bin/bash -c ". /etc/environment && /usr/local/bin/db-dump /vol/data/sql/$DBNAME-updown.sql" +EnvironmentFile=/etc/environment +ExecStart=/usr/local/bin/db-load /vol/data/sql/nextcloud-updown.sql +ExecStop=/usr/local/bin/db-dump /vol/data/sql/nextcloud-updown.sql [Install] WantedBy=multi-user.target -- 2.30.2 From 938f4cf51f8a7bd1d46d28de7947be732dc1505a Mon Sep 17 00:00:00 2001 From: Mar Alegre Date: Sat, 1 Jan 2022 13:09:21 -0500 Subject: [PATCH 6/6] added secrets config file --- nextcloud/Containerfile | 12 ++++++++++-- nextcloud/data/secret.config.php | 10 ++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 nextcloud/data/secret.config.php diff --git a/nextcloud/Containerfile b/nextcloud/Containerfile index 979bf6c..f175981 100644 --- a/nextcloud/Containerfile +++ b/nextcloud/Containerfile @@ -109,8 +109,10 @@ RUN mkdir -p /vol/files && \ # copy nextcloud config COPY --chown=www-data:www-data assets/config/ nextcloud/config/ -# make link to host config -RUN ln -s /vol/data/host.config.php nextcloud/config/host.config.php +# make link to host config & secret config +RUN cd nextcloud/config && \ + ln -s /vol/data/host.config.php && \ + ln -s /vol/data/secret.config.php ### ### DB Auto Load/Dump @@ -141,3 +143,9 @@ COPY assets/bugfix/apache2.override /etc/systemd/system/apache2.service.d/overri # bugfix for cron COPY assets/bugfix/cronfix /root/ RUN chmod +x /root/cronfix && /root/cronfix + +### +### Workdir +### + +WORKDIR /vol/data diff --git a/nextcloud/data/secret.config.php b/nextcloud/data/secret.config.php new file mode 100644 index 0000000..c470173 --- /dev/null +++ b/nextcloud/data/secret.config.php @@ -0,0 +1,10 @@ + '', + 'secret' => '', + 'instanceid' => '', +*/ +); -- 2.30.2