mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-21 19:00:33 +00:00
Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ca8025dcd | ||
|
|
53a9012b43 | ||
|
|
7fcc519d44 | ||
|
|
8bf71c1052 | ||
|
|
df49342fb1 | ||
|
|
a13be4c09a | ||
|
|
a46cbc0974 | ||
|
|
cde30ac81d | ||
|
|
28c6ba50fc | ||
|
|
7c6574f389 | ||
|
|
c1dab5790c | ||
|
|
12b914f731 | ||
|
|
2cd8eaa269 | ||
|
|
8a296415fd | ||
|
|
507b17d8a9 | ||
|
|
5c5c66cedd | ||
|
|
ef257bbce9 | ||
|
|
055c55ebfd | ||
|
|
275e6099dd | ||
|
|
d38468d0b4 | ||
|
|
66a04cb436 | ||
|
|
f9601276f0 | ||
|
|
ecb0ba780d | ||
|
|
d95c48ab01 | ||
|
|
6937f9650c | ||
|
|
dd360a9bac | ||
|
|
73d1ef29d8 | ||
|
|
d616a8a507 | ||
|
|
e07f183551 | ||
|
|
b9725a1633 | ||
|
|
5c3be60532 | ||
|
|
ad4b48c82e | ||
|
|
7c0c6d681b | ||
|
|
fe669a0be7 | ||
|
|
436a5e8972 | ||
|
|
312f238bf6 | ||
|
|
c1ef319b87 | ||
|
|
fb796debd6 | ||
|
|
c344b8f280 | ||
|
|
8d839190dc | ||
|
|
18e4b815a4 | ||
|
|
6d3eed0209 | ||
|
|
0f39d85525 | ||
|
|
ad0832234f | ||
|
|
686ca80111 | ||
|
|
1a4e1025e4 | ||
|
|
5e73632bf5 | ||
|
|
bb027de2b0 | ||
|
|
d927419c51 | ||
|
|
9836e1f12e | ||
|
|
badc0347b4 | ||
|
|
be195e3b55 | ||
|
|
81a9934616 | ||
|
|
4f9adc2c90 | ||
|
|
adb2988f01 | ||
|
|
8f78cb36cf | ||
|
|
a9d40f95e7 | ||
|
|
dac04a709a | ||
|
|
e96f35cf49 | ||
|
|
6412aa3e0f | ||
|
|
58329a7a48 | ||
|
|
dc223275d4 | ||
|
|
cb5c6495d6 | ||
|
|
f7e2a2bd5d | ||
|
|
6221db92ec | ||
|
|
a24a2ebad9 | ||
|
|
54ad851d73 | ||
|
|
9cf47f65e1 | ||
|
|
f46a2bf993 | ||
|
|
e0c3fa3998 | ||
|
|
ff0d8637ab | ||
|
|
d8ec6d7886 | ||
|
|
0789e29b3f | ||
|
|
19389a0bd1 | ||
|
|
762fb0c581 | ||
|
|
f386ad33e9 | ||
|
|
59180b37f3 | ||
|
|
388beb986b | ||
|
|
3c7b3d84ae | ||
|
|
d2e2609e9c | ||
|
|
749c7c6410 | ||
|
|
5b4668931f | ||
|
|
6aab3961ee | ||
|
|
2a7115b06b |
3
.github/workflows/helm-release.yml
vendored
3
.github/workflows/helm-release.yml
vendored
@@ -37,8 +37,7 @@ jobs:
|
||||
version: v3.6.3
|
||||
|
||||
- name: Run chart-releaser
|
||||
# TODO: switch back @main to a specific version like @v1.5.1 or higher
|
||||
uses: helm/chart-releaser-action@main
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
with:
|
||||
mark_as_latest: false
|
||||
charts_dir: .
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM caddy:2.7.5-alpine as caddy
|
||||
FROM caddy:2.7.6-alpine as caddy
|
||||
|
||||
FROM httpd:2.4.58-alpine3.18
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
|
||||
FROM clamav/clamav:1.2.1-20
|
||||
FROM clamav/clamav:1.2.1-24
|
||||
|
||||
COPY clamav.conf /tmp/clamav.conf
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
|
||||
FROM collabora/code:23.05.5.4.1
|
||||
FROM collabora/code:23.05.6.4.1
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
|
||||
FROM elasticsearch:8.11.0
|
||||
FROM elasticsearch:8.11.3
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
FROM docker:24.0.7-cli as docker
|
||||
|
||||
# Caddy is a requirement
|
||||
FROM caddy:2.7.5-alpine as caddy
|
||||
FROM caddy:2.7.6-alpine as caddy
|
||||
|
||||
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.18/fpm/Dockerfile
|
||||
FROM php:8.2.13-fpm-alpine3.18
|
||||
FROM php:8.2.14-fpm-alpine3.18
|
||||
|
||||
EXPOSE 80
|
||||
EXPOSE 8080
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
FROM php:8.1.26-fpm-alpine3.18
|
||||
FROM php:8.1.27-fpm-alpine3.18
|
||||
|
||||
ENV PHP_MEMORY_LIMIT 512M
|
||||
ENV PHP_UPLOAD_LIMIT 10G
|
||||
ENV PHP_MAX_TIME 3600
|
||||
ENV NEXTCLOUD_VERSION 27.1.4
|
||||
ENV NEXTCLOUD_VERSION 27.1.5
|
||||
ENV AIO_TOKEN 123456
|
||||
ENV AIO_URL localhost
|
||||
|
||||
|
||||
@@ -256,9 +256,15 @@ DATADIR_PERMISSION_CONF
|
||||
unset ADMIN_PASSWORD
|
||||
|
||||
if [ "$INSTALL_LATEST_MAJOR" = yes ]; then
|
||||
php /var/www/html/occ config:system:set updater.release.channel --value=beta
|
||||
php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
|
||||
php /var/www/html/updater/updater.phar --no-interaction
|
||||
INSTALLED_AT="$(php /var/www/html/occ config:app:get core installedat)"
|
||||
if [ -n "${INSTALLED_AT}" ]; then
|
||||
# Set the installdat to 00 which will allow to skip staging and install the next major directly
|
||||
# shellcheck disable=SC2001
|
||||
INSTALLED_AT="$(echo "${INSTALLED_AT}" | sed "s|[0-9][0-9]$|00|")"
|
||||
php /var/www/html/occ config:app:set core installedat --value="${INSTALLED_AT}"
|
||||
fi
|
||||
php /var/www/html/updater/updater.phar --no-interaction --no-backup
|
||||
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
|
||||
echo "Installation of Nextcloud failed!"
|
||||
touch "$NEXTCLOUD_DATA_DIR/install.failed"
|
||||
@@ -269,7 +275,7 @@ DATADIR_PERMISSION_CONF
|
||||
INSTALLED_MAJOR="${installed_version%%.*}"
|
||||
IMAGE_MAJOR="${image_version%%.*}"
|
||||
if ! [ "$INSTALLED_MAJOR" -gt "$IMAGE_MAJOR" ]; then
|
||||
php /var/www/html/updater/updater.phar --no-interaction
|
||||
php /var/www/html/updater/updater.phar --no-interaction --no-backup
|
||||
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
|
||||
echo "Installation of Nextcloud failed!"
|
||||
touch "$NEXTCLOUD_DATA_DIR/install.failed"
|
||||
@@ -280,7 +286,6 @@ DATADIR_PERMISSION_CONF
|
||||
fi
|
||||
php /var/www/html/occ app:disable updatenotification
|
||||
rm -rf /var/www/html/apps/updatenotification
|
||||
php /var/www/html/occ config:system:set updater.release.channel --value=stable
|
||||
php /var/www/html/occ app:enable nextcloud-aio --force
|
||||
php /var/www/html/occ db:add-missing-indices
|
||||
php /var/www/html/occ db:add-missing-columns
|
||||
@@ -475,6 +480,9 @@ php /var/www/html/occ config:system:set upgrade.cli-upgrade-link --value="https:
|
||||
php /var/www/html/occ config:system:set logfile --value="/var/www/html/data/nextcloud.log"
|
||||
php /var/www/html/occ config:app:set admin_audit logfile --value="/var/www/html/data/audit.log"
|
||||
php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
|
||||
if [ -n "$SERVERINFO_TOKEN" ] && [ -z "$(php /var/www/html/occ config:app:get serverinfo token)" ]; then
|
||||
php /var/www/html/occ config:app:set serverinfo token --value="$SERVERINFO_TOKEN"
|
||||
fi
|
||||
|
||||
# Apply network settings
|
||||
echo "Applying network settings..."
|
||||
|
||||
@@ -42,9 +42,6 @@ if ! [ -f /nextcloud/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Add a timeout of 15s to hopefully get rid of the first error that is logged if apache is not there yet
|
||||
sleep 15
|
||||
|
||||
echo "notify-push was started"
|
||||
|
||||
# Set sensitive values as env
|
||||
|
||||
@@ -167,25 +167,29 @@ if [ -f "/var/lib/postgresql/data/postgresql.conf" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
do_database_dump() {
|
||||
set -x
|
||||
rm -f "$DUMP_FILE.temp"
|
||||
touch "$DUMP_DIR/export.failed"
|
||||
if pg_dump --username "$POSTGRES_USER" "$POSTGRES_DB" > "$DUMP_FILE.temp"; then
|
||||
rm -f "$DUMP_FILE"
|
||||
mv "$DUMP_FILE.temp" "$DUMP_FILE"
|
||||
pg_ctl stop -m fast
|
||||
rm "$DUMP_DIR/export.failed"
|
||||
echo 'Database dump successful!'
|
||||
set +x
|
||||
exit 0
|
||||
else
|
||||
pg_ctl stop -m fast
|
||||
echo "Database dump unsuccessful!"
|
||||
set +x
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Catch docker stop attempts
|
||||
trap 'true' SIGINT SIGTERM
|
||||
trap do_database_dump SIGINT SIGTERM
|
||||
|
||||
# Start the database
|
||||
exec docker-entrypoint.sh postgres &
|
||||
wait $!
|
||||
|
||||
# Continue with shutdown procedure: do database dump, etc.
|
||||
rm -f "$DUMP_FILE.temp"
|
||||
touch "$DUMP_DIR/export.failed"
|
||||
if pg_dump --username "$POSTGRES_USER" "$POSTGRES_DB" > "$DUMP_FILE.temp"; then
|
||||
rm -f "$DUMP_FILE"
|
||||
mv "$DUMP_FILE.temp" "$DUMP_FILE"
|
||||
pg_ctl stop -m fast
|
||||
rm "$DUMP_DIR/export.failed"
|
||||
echo 'Database dump successful!'
|
||||
exit 0
|
||||
else
|
||||
pg_ctl stop -m fast
|
||||
echo "Database dump unsuccessful!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM python:3.12.0-alpine3.18
|
||||
FROM python:3.12.1-alpine3.18
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
@@ -26,7 +26,7 @@ RUN set -ex; \
|
||||
build-base \
|
||||
linux-headers; \
|
||||
# chromium chromium-chromedriver?
|
||||
apk add --no-cache geckodriver --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; \
|
||||
apk add --no-cache geckodriver --repository http://dl-cdn.alpinelinux.org/alpine/edge/community; \
|
||||
useradd -d /tmp --system recording; \
|
||||
# Give root a random password
|
||||
echo "root:$(openssl rand -base64 12)" | chpasswd; \
|
||||
|
||||
@@ -26,6 +26,8 @@ listen = 0.0.0.0:1234
|
||||
|
||||
[backend]
|
||||
allowall = ${ALLOW_ALL}
|
||||
# The secret below is still needed if allowall is set to true, also it doesn't hurt to be here
|
||||
secret = ${RECORDING_SECRET}
|
||||
backends = backend-1
|
||||
skipverify = ${SKIP_VERIFY}
|
||||
maxmessagesize = 1024
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
FROM nats:2.10.6-scratch as nats
|
||||
FROM nats:2.10.7-scratch as nats
|
||||
FROM eturnal/eturnal:1.12.0 AS eturnal
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.2.1 as signaling
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.2.2 as signaling
|
||||
FROM alpine:3.18.5 as janus
|
||||
|
||||
ARG JANUS_VERSION=v0.14.0
|
||||
ARG JANUS_VERSION=v0.14.1
|
||||
WORKDIR /src
|
||||
RUN set -ex; \
|
||||
apk add --no-cache \
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
This container bundles LibreTranslate and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
|
||||
- Please note that this community container is currently not working since its integration app is not yet compatible with Nextcloud 27 (Hub 6). You can follow the progress here: https://github.com/v1r0x/integration_libretranslate/issues/1
|
||||
- After the initial startup is done, you might want to change the default language to translate from and to via:
|
||||
```bash
|
||||
# Adjust the values `en` and `de` in commands below accordingly
|
||||
|
||||
@@ -5,10 +5,13 @@ This container bundles stalwart mail server and auto-configures it for you.
|
||||
- This is only intended to run on a VPS with static ip-address.
|
||||
- Check with `sudo netstat -tulpn` that no other service is using port 25, 143, 465, 578, 993 nor 4190 yet as otherwise the container will fail to start.
|
||||
- You need to configure a reverse proxy in order to run this container since stalwart needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy.
|
||||
- Currently, only `mail.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, vaultwarden will use `mail.your-domain.com`.
|
||||
- Currently, only `mail.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, Stalwart will use `mail.your-domain.com`.
|
||||
- The data of Stalwart will be automatically included in AIOs backup solution!
|
||||
- After adding and starting the container, you need to run `sudo docker exec -it nextcloud-aio-stalwart configure.sh` and follow https://stalw.art/docs/install/docker/#choose-where-to-store-your-data (1. choose `Local disk`, 2. choose `No, create a new directory for me`, 3. type in your `$NC_DOMAIN` as `domain name` and `mail.$NC_DOMAIN` as `server hostname`. 4. add `DKIM, SPF and DMARC` as advised to your DNS config, 5. Take note of the administrator credentials, 6. Now the config script should exit and automatically restart the container and enable your config.
|
||||
- Afterwards, you can visit the basic admin settings in `https://your-nc-domain.com/settings/admin` and add the your mail server there.
|
||||
- After adding and starting the container, you need to run `sudo docker exec -it nextcloud-aio-stalwart configure.sh` and follow https://stalw.art/docs/install/docker/#choose-where-to-store-your-data (1. choose `Local disk using Maildir`, 2. choose `No, create a new directory for me` (or select LDAP if you have an LDAP server), 3. type in your `$NC_DOMAIN` as `domain name` and `mail.$NC_DOMAIN` as `server hostname`. 4. add `DKIM, SPF and DMARC` as advised to your DNS config, 5. Take note of the administrator credentials, 6. Now the config script should exit and automatically restart the container and enable your config.
|
||||
- See https://stalw.art/docs/directory/types/memory/ how you can easily create new user accounts. (Alternatively see https://stalw.art/docs/directory/types/ldap if you have an LDAP server). You can edit the config file with `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/config.toml`. Also, you might want to enable logging to stdout so that you can see the stalwart logs in your container logs via `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/common/tracing.toml` (you need to restart the container afterwards with `sudo docker restart nextcloud-aio-stalwart` in order to apply the settings).
|
||||
- Afterwards, you can visit the basic admin settings in `https://your-nc-domain.com/settings/admin` and add the your mail server for outgoing mails there.
|
||||
- Additionally, you might want to install and configure [snappymail](https://apps.nextcloud.com/apps/snappymail) or [mail](https://apps.nextcloud.com/apps/mail) inside Nextcloud in order to use your mail accounts for sending and retrieving mails.
|
||||
- See https://stalw.art/docs/faq for further faq and docs on the project
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
### Repository
|
||||
|
||||
@@ -145,6 +145,7 @@ services:
|
||||
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
|
||||
- APACHE_PORT=${APACHE_PORT}
|
||||
- APACHE_IP_BINDING=${APACHE_IP_BINDING}
|
||||
stop_grace_period: 600s
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- nextcloud-aio
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: nextcloud-aio-helm-chart
|
||||
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
|
||||
version: 7.7.1
|
||||
version: 7.9.0
|
||||
apiVersion: v2
|
||||
keywords:
|
||||
- latest
|
||||
|
||||
@@ -57,7 +57,7 @@ spec:
|
||||
value: nextcloud-aio-talk
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-apache:20231130_081302-latest
|
||||
image: nextcloud/aio-apache:20231220_153200-latest
|
||||
name: nextcloud-aio-apache
|
||||
ports:
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
value: "90"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-clamav:20231130_081302-latest
|
||||
image: nextcloud/aio-clamav:20231220_153200-latest
|
||||
name: nextcloud-aio-clamav
|
||||
ports:
|
||||
- containerPort: 3310
|
||||
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json
|
||||
- name: server_name
|
||||
value: "{{ .Values.NC_DOMAIN }}"
|
||||
image: nextcloud/aio-collabora:20231130_081302-latest
|
||||
image: nextcloud/aio-collabora:20231220_153200-latest
|
||||
name: nextcloud-aio-collabora
|
||||
ports:
|
||||
- containerPort: 9980
|
||||
|
||||
@@ -61,7 +61,7 @@ spec:
|
||||
value: nextcloud
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-postgresql:20231130_081302-latest
|
||||
image: nextcloud/aio-postgresql:20231220_153200-latest
|
||||
name: nextcloud-aio-database
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
|
||||
@@ -55,7 +55,7 @@ spec:
|
||||
value: basic
|
||||
- name: xpack.security.enabled
|
||||
value: "false"
|
||||
image: nextcloud/aio-fulltextsearch:20231130_081302-latest
|
||||
image: nextcloud/aio-fulltextsearch:20231220_153200-latest
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
|
||||
@@ -27,7 +27,7 @@ spec:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-imaginary:20231130_081302-latest
|
||||
image: nextcloud/aio-imaginary:20231220_153200-latest
|
||||
name: nextcloud-aio-imaginary
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
|
||||
@@ -23,12 +23,12 @@ spec:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
spec:
|
||||
initContainers:
|
||||
- name: delete lost+found
|
||||
- name: "delete-lost-found"
|
||||
image: alpine
|
||||
command:
|
||||
- rm
|
||||
- "-rf"
|
||||
- /nextcloud-aio-nextcloud/lost+found
|
||||
- "/nextcloud-aio-nextcloud/lost+found"
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
mountPath: /nextcloud-aio-nextcloud-trusted-cacerts
|
||||
@@ -70,6 +70,8 @@ spec:
|
||||
value: "{{ .Values.APPS_ALLOWLIST }}"
|
||||
- name: ADDITIONAL_TRUSTED_PROXY
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
|
||||
- name: SERVERINFO_TOKEN
|
||||
value: "{{ .Values.SERVERINFO_TOKEN }}"
|
||||
- name: ADDITIONAL_APKS
|
||||
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
|
||||
- name: ADDITIONAL_PHP_EXTENSIONS
|
||||
@@ -156,7 +158,7 @@ spec:
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
- name: UPDATE_NEXTCLOUD_APPS
|
||||
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
|
||||
image: nextcloud/aio-nextcloud:20231130_081302-latest
|
||||
image: nextcloud/aio-nextcloud:20231220_153200-latest
|
||||
name: nextcloud-aio-nextcloud
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
@@ -171,6 +173,7 @@ spec:
|
||||
- mountPath: /usr/local/share/ca-certificates
|
||||
name: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 600
|
||||
volumes:
|
||||
- name: nextcloud-aio-nextcloud
|
||||
persistentVolumeClaim:
|
||||
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
value: nextcloud-aio-redis
|
||||
- name: REDIS_HOST_PASSWORD
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
image: nextcloud/aio-notify-push:20231130_081302-latest
|
||||
image: nextcloud/aio-notify-push:20231220_153200-latest
|
||||
name: nextcloud-aio-notify-push
|
||||
ports:
|
||||
- containerPort: 7867
|
||||
|
||||
@@ -43,7 +43,7 @@ spec:
|
||||
value: "{{ .Values.ONLYOFFICE_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-onlyoffice:20231130_081302-latest
|
||||
image: nextcloud/aio-onlyoffice:20231220_153200-latest
|
||||
name: nextcloud-aio-onlyoffice
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
@@ -38,7 +38,7 @@ spec:
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-redis:20231130_081302-latest
|
||||
image: nextcloud/aio-redis:20231220_153200-latest
|
||||
name: nextcloud-aio-redis
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
value: "{{ .Values.TURN_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk:20231130_081302-latest
|
||||
image: nextcloud/aio-talk:20231220_153200-latest
|
||||
name: nextcloud-aio-talk
|
||||
ports:
|
||||
- containerPort: {{ .Values.TALK_PORT }}
|
||||
|
||||
@@ -33,7 +33,7 @@ spec:
|
||||
value: "{{ .Values.RECORDING_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk-recording:20231130_081302-latest
|
||||
image: nextcloud/aio-talk-recording:20231220_153200-latest
|
||||
name: nextcloud-aio-talk-recording
|
||||
ports:
|
||||
- containerPort: 1234
|
||||
|
||||
@@ -100,12 +100,12 @@ cat << EOL > /tmp/initcontainers.clamav
|
||||
EOL
|
||||
cat << EOL > /tmp/initcontainers.nextcloud
|
||||
initContainers:
|
||||
- name: delete lost+found
|
||||
- name: "delete-lost-found"
|
||||
image: alpine
|
||||
command:
|
||||
- rm
|
||||
- "-rf"
|
||||
- /nextcloud-aio-nextcloud/lost+found
|
||||
- "/nextcloud-aio-nextcloud/lost+found"
|
||||
volumeMountsInitRmLostFound:
|
||||
- name: init-volumes
|
||||
image: alpine
|
||||
@@ -255,6 +255,8 @@ cat << EOL > /tmp/additional.config
|
||||
value: "{{ .Values.APPS_ALLOWLIST }}"
|
||||
- name: ADDITIONAL_TRUSTED_PROXY
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
|
||||
- name: SERVERINFO_TOKEN
|
||||
value: "{{ .Values.SERVERINFO_TOKEN }}"
|
||||
EOL
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
|
||||
@@ -300,6 +302,7 @@ cat << ADDITIONAL_CONFIG >> /tmp/sample.conf
|
||||
|
||||
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
|
||||
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
|
||||
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
|
||||
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
|
||||
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
|
||||
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
|
||||
|
||||
@@ -48,6 +48,7 @@ REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that
|
||||
|
||||
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
|
||||
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
|
||||
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
|
||||
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
|
||||
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
|
||||
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<files psalm-version="5.17.0@c620f6e80d0abfca532b00bda366062aaedf6e5d"/>
|
||||
<files psalm-version="5.18.0@b113f3ed0259fd6e212d87c3df80eec95a6abf19"/>
|
||||
|
||||
@@ -572,18 +572,19 @@ class DockerActionManager
|
||||
]
|
||||
);
|
||||
} catch (RequestException $e) {
|
||||
throw $e;
|
||||
throw new \Exception("Could not start container " . $container->GetIdentifier() . ": " . $e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function PullImage(Container $container) : void
|
||||
{
|
||||
$imageName = urlencode($this->BuildImageName($container));
|
||||
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', $imageName));
|
||||
$imageName = $this->BuildImageName($container);
|
||||
$encodedImageName = urlencode($imageName);
|
||||
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', $encodedImageName));
|
||||
try {
|
||||
$this->guzzleClient->post($url);
|
||||
$imageUrl = $this->BuildApiUrl(sprintf('images/%s/json', $imageName));
|
||||
$imageUrl = $this->BuildApiUrl(sprintf('images/%s/json', $encodedImageName));
|
||||
$this->guzzleClient->get($imageUrl)->getBody()->getContents();
|
||||
} catch (\Throwable $e) {
|
||||
throw new \Exception("Could not pull image " . $imageName . ". Please run 'sudo docker exec -it nextcloud-aio-mastercontainer docker pull " . $imageName . "' in order to find out why it failed.");
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
<h1>Nextcloud AIO v7.8.0</h1>
|
||||
<h1>Nextcloud AIO v7.9.1</h1>
|
||||
|
||||
{# Add 2nd tab warning #}
|
||||
<script type="text/javascript" src="second-tab-warning.js"></script>
|
||||
@@ -55,11 +55,11 @@
|
||||
{% endfor %}
|
||||
|
||||
{% if is_daily_backup_running == true %}
|
||||
<span class="status running"></span> Daily backup currently running. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer">Logs</a>)<br /><br />
|
||||
<span class="status running"></span> Daily backup currently running. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% if automatic_updates == true %}
|
||||
It will update your containers, the mastercontainer and on saturdays your Nextcloud apps if the backup is successful.<br /><br />
|
||||
{% if is_mastercontainer_update_available == true %}
|
||||
Since the mastercontainer gets updated, it will restart the container which will make it unavailable for a moment. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower">Logs</a>)<br /><br />
|
||||
Since the mastercontainer gets updated, it will restart the container which will make it unavailable for a moment. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if has_update_available == false %}
|
||||
@@ -69,7 +69,7 @@
|
||||
{% endif %}
|
||||
<a href="" class="button reload">Reload ↻</a><br/>
|
||||
{% elseif isWatchtowerRunning == true %}
|
||||
<span class="status running"></span> Mastercontainer update currently running. It will restart the mastercontainer soon which will make it unavailable for a moment. Please wait until that's done. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower">Logs</a>)<br /><br />
|
||||
<span class="status running"></span> Mastercontainer update currently running. It will restart the mastercontainer soon which will make it unavailable for a moment. Please wait until that's done. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
<a href="" class="button reload">Reload ↻</a><br/>
|
||||
{% else %}
|
||||
{% if is_backup_container_running == false and domain == "" %}
|
||||
@@ -86,7 +86,7 @@
|
||||
</form>
|
||||
{% else %}
|
||||
{% if borg_backup_host_location == '' and borg_restore_password == '' %}
|
||||
Nextcloud AIO stands for Nextcloud All-in-One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.<br><br>
|
||||
The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.<br><br>
|
||||
You can either create a new AIO instance or restore a former AIO instance from backup. See the two sections below.<br><br>
|
||||
{{ include('includes/aio-config.twig') }}
|
||||
<h2>New AIO instance</h2>
|
||||
@@ -128,7 +128,7 @@
|
||||
{% if borg_backup_host_location != '' and borg_restore_password != '' %}
|
||||
{% if borg_backup_mode in ['test', 'check'] %}
|
||||
{% if backup_exit_code > 0 %}
|
||||
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% if borg_backup_mode == 'test' %}
|
||||
Please adjust the path and/or the password in order to make it work!<br><br>
|
||||
{% elseif borg_backup_mode == 'check' %}
|
||||
@@ -144,7 +144,7 @@
|
||||
</details><br />
|
||||
{% endif %}
|
||||
{% elseif backup_exit_code == 0 %}
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% if borg_backup_mode == 'test' %}
|
||||
Feel free to check the integrity of the backup archive below before starting the restore process in order to make double-sure that the restore will work. This can take a long time though depending on the size of the backup archive and is thus not required.<br><br>
|
||||
<form method="POST" action="/api/docker/backup-check" class="xhr">
|
||||
@@ -167,7 +167,7 @@
|
||||
{% endif %}
|
||||
{% elseif borg_backup_mode == 'restore' %}
|
||||
{% if backup_exit_code > 0 %}
|
||||
<span class="status error"></span> Last restore failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status error"></span> Last restore failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
Somehow the restore failed which is unexpected! Please adjust the path and password, test it and try to restore again!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -198,14 +198,14 @@
|
||||
|
||||
{% if was_start_button_clicked == true %}
|
||||
{% if current_channel starts with 'latest' or current_channel starts with 'beta' or current_channel starts with 'develop' %}
|
||||
You are running the <a href="https://github.com/nextcloud/all-in-one#how-to-switch-the-channel"><b>{{ current_channel }}</b></a> channel. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer">Logs</a>)<br><br>
|
||||
You are running the <a href="https://github.com/nextcloud/all-in-one#how-to-switch-the-channel"><b>{{ current_channel }}</b></a> channel. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)<br><br>
|
||||
{% else %}
|
||||
No channel was found. This means that AIO is not able to update itself and its component and will also not be able to report about updates. Updates need to be done externally.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if is_backup_container_running == true %}
|
||||
<span class="status running"></span> Backup container is currently running. (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status running"></span> Backup container is currently running. (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
<a href="" class="button reload">Reload ↻</a><br/><br>
|
||||
{% endif %}
|
||||
|
||||
@@ -257,21 +257,21 @@
|
||||
<li>
|
||||
{% if class(container.GetStartingState()) == 'AIO\\Container\\State\\StartingState' %}
|
||||
<span class="status running"></span>
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}">Starting</a>)
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}" target="_blank" rel="noopener">Starting</a>)
|
||||
{% if container.GetDocumentation() != '' %}
|
||||
(<a href="{{ container.GetDocumentation() }}">docs</a>)
|
||||
{% endif %}
|
||||
</span>
|
||||
{% elseif class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %}
|
||||
<span class="status success"></span>
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}">Running</a>)
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}" target="_blank" rel="noopener">Running</a>)
|
||||
{% if container.GetDocumentation() != '' %}
|
||||
(<a href="{{ container.GetDocumentation() }}">docs</a>)
|
||||
{% endif %}
|
||||
</span>
|
||||
{% else %}
|
||||
<span class="status error"></span>
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}">Stopped</a>)
|
||||
<span>{{ container.GetDisplayName() }} (<a href="/api/docker/logs?id={{ container.GetIdentifier() }}" target="_blank" rel="noopener">Stopped</a>)
|
||||
{% if container.GetDocumentation() != '' %}
|
||||
(<a href="{{ container.GetDocumentation() }}">docs</a>)
|
||||
{% endif %}
|
||||
@@ -383,7 +383,7 @@
|
||||
{% if is_backup_container_running == false %}
|
||||
<h2>Backup and restore</h2>
|
||||
{% if backup_exit_code > 0 %}
|
||||
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% if borg_backup_mode == "check" %}
|
||||
The backup check was not successful which might points towards a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><b>this documentation</b></a><br /><br />
|
||||
<details>
|
||||
@@ -407,9 +407,9 @@
|
||||
{% endif %}
|
||||
{% elseif backup_exit_code == 0 %}
|
||||
{% if borg_backup_mode == "backup" %}
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful on {{ last_backup_time }} UTC! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful on {{ last_backup_time }} UTC! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% else %}
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
|
||||
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="login">
|
||||
<img src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
|
||||
<h1>Nextcloud AIO setup</h1>
|
||||
<p>Nextcloud AIO stands for Nextcloud All-in-One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
|
||||
<p>The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
|
||||
<p>Please note down the password to access the AIO interface and don't lose it!</p>
|
||||
<strong>Password</strong><br/> <span class="monospace">{{ password }}</span><br>
|
||||
<a href="/" class="button" target="_blank" rel="noopener">Open Nextcloud AIO login ↗</a>
|
||||
|
||||
24
readme.md
24
readme.md
@@ -1,16 +1,16 @@
|
||||
# Nextcloud All-in-One
|
||||
Nextcloud AIO stands for Nextcloud All-in-One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.
|
||||
The official Nextcloud installation method. Nextcloud AIO provides easy deployment and maintenance with most features included in this one Nextcloud instance.
|
||||
|
||||
Included are:
|
||||
- Nextcloud
|
||||
- Nextcloud Office
|
||||
- High performance backend for Nextcloud Files
|
||||
- High performance backend for Nextcloud Talk and TURN-server
|
||||
- Nextcloud Talk Recording-server
|
||||
- Backup solution (based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))
|
||||
- Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
|
||||
- ClamAV (Antivirus backend for Nextcloud)
|
||||
- Fulltextsearch
|
||||
- Nextcloud Office (optional)
|
||||
- High performance backend for Nextcloud Talk and TURN-server (optional)
|
||||
- Nextcloud Talk Recording-server (optional)
|
||||
- Backup solution (optional, based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))
|
||||
- Imaginary (optional, for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
|
||||
- ClamAV (optional, Antivirus backend for Nextcloud)
|
||||
- Fulltextsearch (optional)
|
||||
<details><summary>And much more:</summary>
|
||||
|
||||
- Simple web interface included that enables easy installation and maintenance
|
||||
@@ -252,7 +252,7 @@ No and it will not be added. If you only want to run it locally, you may have a
|
||||
No and it will not be added. However you can use [this feature](https://github.com/nextcloud/all-in-one/blob/main/multiple-instances.md) in order to create multiple AIO instances, one for each domain.
|
||||
|
||||
### Are other ports than the default 443 for Nextcloud supported?
|
||||
No and they will not be. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). If port 443 and/or 80 is blocked for you, you may use the ACME DNS-challenge or a Cloudflare Tunnel.
|
||||
No and they will not be. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). If port 443 and/or 80 is blocked for you, you may use the a Cloudflare Tunnel if you want to publish it online. You could also use the ACME DNS-challenge to get a valid certificate. However in all cases the Nextcloud interface will redirect you to port 443.
|
||||
|
||||
### Can I run Nextcloud in a subdirectory on my domain?
|
||||
No and it will not be added. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md).
|
||||
@@ -688,8 +688,8 @@ You can move the whole docker library and all its files including all Nextcloud
|
||||
### How to edit Nextclouds config.php file with a texteditor?
|
||||
You can edit Nextclouds config.php file directly from the host with your favorite text editor. E.g. like this: `sudo docker run -it --rm --volume nextcloud_aio_nextcloud:/var/www/html:rw alpine sh -c "apk add --no-cache nano && nano /var/www/html/config/config.php"`. Make sure to not break the file though which might corrupt your Nextcloud instance otherwise. In best case, create a backup using the built-in backup solution before editing the file.
|
||||
|
||||
### Custom skeleton directory
|
||||
If you want to define a custom skeleton directory, you can do so by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. You can read further on this option here: [click here](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=skeletondir#:~:text=adding%20%3Fdirect%3D1-,'skeletondirectory',-%3D%3E%20'%2Fpath%2Fto%2Fnextcloud)
|
||||
### How to change default files by creating a custom skeleton directory?
|
||||
All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
|
||||
|
||||
### Fail2ban
|
||||
You can configure your server to block certain ip-addresses using fail2ban as bruteforce protection. Here is how to set it up: https://docs.nextcloud.com/server/stable/admin_manual/installation/harden_server.html#setup-fail2ban. The logpath of AIO is by default `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log`. Do not forget to add `chain=DOCKER-USER` to your nextcloud jail config (`nextcloud.local`) otherwise the nextcloud service running on docker will still be accessible even if the IP is banned. Also, you may change the blocked ports to cover all AIO ports: by default `80,443,8080,8443,3478` (see [this](https://github.com/nextcloud/all-in-one#explanation-of-used-ports)). Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
|
||||
@@ -707,7 +707,7 @@ If you want to use the user_sql app, the easiest way is to create an additional
|
||||
It is possible to install any of these to get a GUI for your AIO database. The pgAdmin container is recommended. You can get some docs on it here: https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html. For the container to connect to the aio-database, you need to connect the container to the docker network `nextcloud-aio` and use `nextcloud-aio-database` as database host, `oc_nextcloud` as database username and the password that you get when running `sudo docker exec nextcloud-aio-nextcloud grep dbpassword config/config.php` as the password. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/3061#discussioncomment-7307045
|
||||
|
||||
### Mail server
|
||||
You can configure one yourself by using either of these three recommended projects: [Docker Mailserver](https://github.com/docker-mailserver/docker-mailserver/#docker-mailserver), [Mailu](https://github.com/Mailu/Mailu), [Maddy Mail Server](https://github.com/foxcpp/maddy#maddy-mail-server) or [Mailcow](https://github.com/mailcow/mailcow-dockerized#mailcow-dockerized-------). Docker Mailserver and Maddy Mail Server are probably a bit easier to set up as it is possible to run them using only one container but Mailcow and Mailu both have more features. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/356#discussioncomment-7133547
|
||||
You can configure one yourself by using either of these four recommended projects: [Docker Mailserver](https://github.com/docker-mailserver/docker-mailserver/#docker-mailserver), [Mailu](https://github.com/Mailu/Mailu), [Maddy Mail Server](https://github.com/foxcpp/maddy#maddy-mail-server), [Mailcow](https://github.com/mailcow/mailcow-dockerized#mailcow-dockerized-------) or [Stalwart](https://stalw.art/). There is now a community container which allows to easily add Stalwart Mail server to AIO: https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart
|
||||
|
||||
### How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
|
||||
Please see the following documentation on this: [migration.md](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
|
||||
|
||||
@@ -505,7 +505,7 @@ myNextcloudApp.use((req, res) => {
|
||||
proxy.web(req, res, {}, onProxyError);
|
||||
});
|
||||
|
||||
vhost.use(vhostFunc('<your-nextcloud-domain>', myNextcloudApp));
|
||||
vhost.use(vhostFunc('<your-nc-domain>', myNextcloudApp));
|
||||
|
||||
const httpServer = http.createServer(app);
|
||||
httpServer.listen('80');
|
||||
@@ -579,7 +579,7 @@ The examples below define the dynamic configuration in YAML files. If you rather
|
||||
http:
|
||||
routers:
|
||||
nextcloud:
|
||||
rule: "Host(`<your-nextcloud-domain>`)"
|
||||
rule: "Host(`<your-nc-domain>`)"
|
||||
entrypoints:
|
||||
- "https"
|
||||
service: nextcloud
|
||||
|
||||
Reference in New Issue
Block a user