From 4750fb228f04012eb2bfd65653c30258615faa01 Mon Sep 17 00:00:00 2001 From: ManOki Date: Sat, 24 Dec 2022 10:55:49 +0100 Subject: [PATCH] manual-install: add IMAGE_TAG to omit separate latest-arm64.yml (#1591) * manual-install: add IMAGE_TAG to omit separate latest-arm64.yml Signed-off-by: ManOki Co-authored-by: Simon L. --- manual-install/latest-arm64.yml | 208 -------------------------------- manual-install/latest.yml | 20 +-- manual-install/readme.md | 6 +- manual-install/sample.conf | 3 +- manual-install/update-yaml.sh | 10 +- 5 files changed, 18 insertions(+), 229 deletions(-) delete mode 100644 manual-install/latest-arm64.yml diff --git a/manual-install/latest-arm64.yml b/manual-install/latest-arm64.yml deleted file mode 100644 index d4eb4661..00000000 --- a/manual-install/latest-arm64.yml +++ /dev/null @@ -1,208 +0,0 @@ -version: "3.8" - -services: - nextcloud-aio-apache: - container_name: nextcloud-aio-apache - depends_on: - - nextcloud-aio-onlyoffice - - nextcloud-aio-collabora - - nextcloud-aio-talk - - nextcloud-aio-nextcloud - image: nextcloud/aio-apache:latest-arm64 - ports: - - ${APACHE_PORT}:${APACHE_PORT}/tcp - environment: - - NC_DOMAIN=${NC_DOMAIN} - - NEXTCLOUD_HOST=nextcloud-aio-nextcloud - - COLLABORA_HOST=nextcloud-aio-collabora - - TALK_HOST=nextcloud-aio-talk - - APACHE_PORT=${APACHE_PORT} - - ONLYOFFICE_HOST=nextcloud-aio-onlyoffice - - TZ=${TIMEZONE} - - APACHE_MAX_SIZE=${APACHE_MAX_SIZE} - - APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME} - volumes: - - nextcloud_aio_nextcloud:/var/www/html:ro - - nextcloud_aio_apache:/mnt/data:rw - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-database: - container_name: nextcloud-aio-database - image: nextcloud/aio-postgresql:latest-arm64 - volumes: - - nextcloud_aio_database:/var/lib/postgresql/data:rw - - nextcloud_aio_database_dump:/mnt/data:rw - environment: - - POSTGRES_PASSWORD=${DATABASE_PASSWORD} - - POSTGRES_DB=nextcloud_database - - POSTGRES_USER=nextcloud - - TZ=${TIMEZONE} - - PGTZ=${TIMEZONE} - stop_grace_period: 1800s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-nextcloud: - container_name: nextcloud-aio-nextcloud - depends_on: - - nextcloud-aio-database - - nextcloud-aio-redis - - nextcloud-aio-fulltextsearch - - nextcloud-aio-imaginary - image: nextcloud/aio-nextcloud:latest-arm64 - volumes: - - nextcloud_aio_nextcloud:/var/www/html:rw - - ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw - - ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:rw - - ${NEXTCLOUD_TRUSTED_CACERTS_DIR}:/usr/local/share/ca-certificates:ro - environment: - - POSTGRES_HOST=nextcloud-aio-database - - POSTGRES_PASSWORD=${DATABASE_PASSWORD} - - POSTGRES_DB=nextcloud_database - - POSTGRES_USER=nextcloud - - REDIS_HOST=nextcloud-aio-redis - - REDIS_HOST_PASSWORD=${REDIS_PASSWORD} - - AIO_TOKEN=${AIO_TOKEN} - - NC_DOMAIN=${NC_DOMAIN} - - ADMIN_USER=admin - - ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD} - - NEXTCLOUD_DATA_DIR=/mnt/ncdata - - OVERWRITEHOST=${NC_DOMAIN} - - OVERWRITEPROTOCOL=https - - TURN_SECRET=${TURN_SECRET} - - SIGNALING_SECRET=${SIGNALING_SECRET} - - ONLYOFFICE_SECRET=${ONLYOFFICE_SECRET} - - AIO_URL=${AIO_URL} - - NEXTCLOUD_MOUNT=${NEXTCLOUD_MOUNT} - - ONLYOFFICE_ENABLED=${ONLYOFFICE_ENABLED} - - COLLABORA_ENABLED=${COLLABORA_ENABLED} - - COLLABORA_HOST=nextcloud-aio-collabora - - TALK_ENABLED=${TALK_ENABLED} - - ONLYOFFICE_HOST=nextcloud-aio-onlyoffice - - UPDATE_NEXTCLOUD_APPS=${UPDATE_NEXTCLOUD_APPS} - - TZ=${TIMEZONE} - - TALK_PORT=${TALK_PORT} - - IMAGINARY_ENABLED=${IMAGINARY_ENABLED} - - IMAGINARY_HOST=nextcloud-aio-imaginary - - PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT} - - PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT} - - FULLTEXTSEARCH_ENABLED=${FULLTEXTSEARCH_ENABLED} - - FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch - - PHP_MAX_TIME=${NEXTCLOUD_MAX_TIME} - - TRUSTED_CACERTS_DIR=${NEXTCLOUD_TRUSTED_CACERTS_DIR} - - STARTUP_APPS=${NEXTCLOUD_STARTUP_APPS} - - ADDITIONAL_APKS=${NEXTCLOUD_ADDITIONAL_APKS} - - ADDITIONAL_PHP_EXTENSIONS=${NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS} - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-redis: - container_name: nextcloud-aio-redis - image: nextcloud/aio-redis:latest-arm64 - environment: - - REDIS_HOST_PASSWORD=${REDIS_PASSWORD} - - TZ=${TIMEZONE} - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-collabora: - container_name: nextcloud-aio-collabora - profiles: ["collabora"] - image: nextcloud/aio-collabora:latest-arm64 - environment: - - aliasgroup1=https://${NC_DOMAIN}:443 - - extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY} - - dictionaries=${COLLABORA_DICTIONARIES} - - TZ=${TIMEZONE} - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-talk: - container_name: nextcloud-aio-talk - profiles: ["talk"] - image: nextcloud/aio-talk:latest-arm64 - ports: - - ${TALK_PORT}:${TALK_PORT}/tcp - - ${TALK_PORT}:${TALK_PORT}/udp - environment: - - NC_DOMAIN=${NC_DOMAIN} - - TURN_SECRET=${TURN_SECRET} - - SIGNALING_SECRET=${SIGNALING_SECRET} - - JANUS_API_KEY=${JANUS_API_KEY} - - TZ=${TIMEZONE} - - TALK_PORT=${TALK_PORT} - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-onlyoffice: - container_name: nextcloud-aio-onlyoffice - profiles: ["onlyoffice"] - image: nextcloud/aio-onlyoffice:latest-arm64 - environment: - - TZ=${TIMEZONE} - - JWT_ENABLED=true - - JWT_HEADER=AuthorizationJwt - - JWT_SECRET=${ONLYOFFICE_SECRET} - volumes: - - nextcloud_aio_onlyoffice:/var/lib/onlyoffice:rw - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-imaginary: - container_name: nextcloud-aio-imaginary - profiles: ["imaginary"] - image: nextcloud/aio-imaginary:latest-arm64 - environment: - - TZ=${TIMEZONE} - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - - nextcloud-aio-fulltextsearch: - container_name: nextcloud-aio-fulltextsearch - profiles: ["fulltextsearch"] - image: nextcloud/aio-fulltextsearch:latest-arm64 - environment: - - TZ=${TIMEZONE} - - discovery.type=single-node - - ES_JAVA_OPTS=-Xms1024M -Xmx1024M - volumes: - - nextcloud_aio_elasticsearch:/usr/share/elasticsearch/data:rw - stop_grace_period: 10s - restart: unless-stopped - networks: - - nextcloud-aio - -volumes: - nextcloud_aio_apache: - name: nextcloud_aio_apache - nextcloud_aio_database: - name: nextcloud_aio_database - nextcloud_aio_database_dump: - name: nextcloud_aio_database_dump - nextcloud_aio_elasticsearch: - name: nextcloud_aio_elasticsearch - nextcloud_aio_nextcloud: - name: nextcloud_aio_nextcloud - nextcloud_aio_onlyoffice: - name: nextcloud_aio_onlyoffice - nextcloud_aio_nextcloud_data: - name: nextcloud_aio_nextcloud_data - -networks: - nextcloud-aio: diff --git a/manual-install/latest.yml b/manual-install/latest.yml index 6a5c89e9..2c8d94ae 100644 --- a/manual-install/latest.yml +++ b/manual-install/latest.yml @@ -8,7 +8,7 @@ services: - nextcloud-aio-collabora - nextcloud-aio-talk - nextcloud-aio-nextcloud - image: nextcloud/aio-apache:latest + image: nextcloud/aio-apache:${IMAGE_TAG} ports: - ${APACHE_PORT}:${APACHE_PORT}/tcp environment: @@ -31,7 +31,7 @@ services: nextcloud-aio-database: container_name: nextcloud-aio-database - image: nextcloud/aio-postgresql:latest + image: nextcloud/aio-postgresql:${IMAGE_TAG} volumes: - nextcloud_aio_database:/var/lib/postgresql/data:rw - nextcloud_aio_database_dump:/mnt/data:rw @@ -54,7 +54,7 @@ services: - nextcloud-aio-clamav - nextcloud-aio-fulltextsearch - nextcloud-aio-imaginary - image: nextcloud/aio-nextcloud:latest + image: nextcloud/aio-nextcloud:${IMAGE_TAG} volumes: - nextcloud_aio_nextcloud:/var/www/html:rw - ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw @@ -107,7 +107,7 @@ services: nextcloud-aio-redis: container_name: nextcloud-aio-redis - image: nextcloud/aio-redis:latest + image: nextcloud/aio-redis:${IMAGE_TAG} environment: - REDIS_HOST_PASSWORD=${REDIS_PASSWORD} - TZ=${TIMEZONE} @@ -118,8 +118,8 @@ services: nextcloud-aio-collabora: container_name: nextcloud-aio-collabora + image: nextcloud/aio-collabora:${IMAGE_TAG} profiles: ["collabora"] - image: nextcloud/aio-collabora:latest environment: - aliasgroup1=https://${NC_DOMAIN}:443 - extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY} @@ -132,8 +132,8 @@ services: nextcloud-aio-talk: container_name: nextcloud-aio-talk + image: nextcloud/aio-talk:${IMAGE_TAG} profiles: ["talk"] - image: nextcloud/aio-talk:latest ports: - ${TALK_PORT}:${TALK_PORT}/tcp - ${TALK_PORT}:${TALK_PORT}/udp @@ -151,8 +151,8 @@ services: nextcloud-aio-clamav: container_name: nextcloud-aio-clamav + image: nextcloud/aio-clamav:${IMAGE_TAG} profiles: ["clamav"] - image: nextcloud/aio-clamav:latest environment: - TZ=${TIMEZONE} volumes: @@ -164,8 +164,8 @@ services: nextcloud-aio-onlyoffice: container_name: nextcloud-aio-onlyoffice + image: nextcloud/aio-onlyoffice:${IMAGE_TAG} profiles: ["onlyoffice"] - image: nextcloud/aio-onlyoffice:latest environment: - TZ=${TIMEZONE} - JWT_ENABLED=true @@ -180,8 +180,8 @@ services: nextcloud-aio-imaginary: container_name: nextcloud-aio-imaginary + image: nextcloud/aio-imaginary:${IMAGE_TAG} profiles: ["imaginary"] - image: nextcloud/aio-imaginary:latest environment: - TZ=${TIMEZONE} stop_grace_period: 10s @@ -191,8 +191,8 @@ services: nextcloud-aio-fulltextsearch: container_name: nextcloud-aio-fulltextsearch + image: nextcloud/aio-fulltextsearch:${IMAGE_TAG} profiles: ["fulltextsearch"] - image: nextcloud/aio-fulltextsearch:latest environment: - TZ=${TIMEZONE} - discovery.type=single-node diff --git a/manual-install/readme.md b/manual-install/readme.md index 07a45c5a..ffa026b6 100644 --- a/manual-install/readme.md +++ b/manual-install/readme.md @@ -21,16 +21,16 @@ First, install docker and docker-compose if not already done. Then simply run th git clone https://github.com/nextcloud/all-in-one.git cd all-in-one/manual-install ``` -Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. +Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. For arm64 support use `IMAGE_TAG=latest-arm64` (Note: there is no clamav image for arm64). -Now copy the provided yaml file to a docker-compose file by running on x64 `cp latest.yml docker-compose.yml` and on arm64 `cp latest-arm64.yml docker-compose.yml`. +Now copy the provided yaml file to a docker-compose file by running `cp latest.yml docker-compose.yml`. Now you should be ready to go with `sudo docker-compose up`. ## Docker profiles The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. -For a complete all-in-one with collabora use `sudo docker-compose --env-file my.conf --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`. +For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`. ## How to update? Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers. diff --git a/manual-install/sample.conf b/manual-install/sample.conf index ae1ed7d0..2eaf66c9 100644 --- a/manual-install/sample.conf +++ b/manual-install/sample.conf @@ -1,8 +1,9 @@ +IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support AIO_TOKEN=123456 # Has no function but needs to be set! AIO_URL=localhost # Has no function but needs to be set! APACHE_MAX_SIZE=10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a reverse proxy. -CLAMAV_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically. +CLAMAV_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora COLLABORA_ENABLED=yes # Setting this to "yes" enables the option in Nextcloud automatically. COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container. diff --git a/manual-install/update-yaml.sh b/manual-install/update-yaml.sh index 21d6c261..ac6a9ae9 100644 --- a/manual-install/update-yaml.sh +++ b/manual-install/update-yaml.sh @@ -46,6 +46,7 @@ do done rm -f sample.conf +echo 'IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support' >> sample.conf VARIABLES="$(grep -oP '%[A-Z_a-z0-6]+%' containers.yml | sort -u)" mapfile -t VARIABLES <<< "$VARIABLES" for variable in "${VARIABLES[@]}" @@ -57,6 +58,7 @@ do done sed -i 's|_ENABLED=|_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.|' sample.conf +sed -i 's|CLAMAV_ENABLED=no|CLAMAV_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support|' sample.conf sed -i 's|TALK_ENABLED=no|TALK_ENABLED=yes|' sample.conf sed -i 's|COLLABORA_ENABLED=no|COLLABORA_ENABLED=yes|' sample.conf sed -i 's|COLLABORA_DICTIONARIES=|COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora|' sample.conf @@ -128,12 +130,6 @@ networks: NETWORK cat containers.yml > latest.yml -sed -i '/image:/s/$/:latest/' latest.yml - -cat containers.yml > latest-arm64.yml -sed -i '/image:/s/$/:latest-arm64/' latest-arm64.yml -sed -i '/ nextcloud-aio-clamav:/,/^$/d' latest-arm64.yml -sed -i '/nextcloud[-_]aio[-_]clamav/d' latest-arm64.yml -sed -i '/CLAMAV_ENABLED/d' latest-arm64.yml +sed -i "/image:/s/$/:\${IMAGE_TAG}/" latest.yml rm containers.yml