From 13c2cb0b136032290006bc715fa866a28ce2d3a7 Mon Sep 17 00:00:00 2001 From: sheikhmishar Date: Fri, 4 Oct 2024 10:54:56 +0600 Subject: [PATCH 1/2] added docker socket proxy to manual install Signed-off-by: sheikhmishar --- manual-install/latest.yml | 20 ++++++++++++++++++++ manual-install/readme.md | 5 +++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/manual-install/latest.yml b/manual-install/latest.yml index e5d876ca12de..5187d403e99a 100644 --- a/manual-install/latest.yml +++ b/manual-install/latest.yml @@ -98,6 +98,9 @@ services: nextcloud-aio-imaginary: condition: service_started required: false + nextcloud-aio-docker-socket-proxy: + condition: service_started + required: false image: nextcloud/aio-nextcloud:latest init: true expose: @@ -375,6 +378,23 @@ services: cap_drop: - NET_RAW + nextcloud-aio-docker-socket-proxy: + image: nextcloud/aio-docker-socket-proxy + restart: unless-stopped + init: true + expose: + - "2375" + environment: + - "TZ=${TIMEZONE}" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + profiles: + - docker-socket-proxy + networks: + - nextcloud-aio + cap_drop: + - NET_RAW + nextcloud-aio-whiteboard: image: nextcloud/aio-whiteboard:latest init: true diff --git a/manual-install/readme.md b/manual-install/readme.md index 26aaabf14358..ac853db877c3 100644 --- a/manual-install/readme.md +++ b/manual-install/readme.md @@ -6,6 +6,7 @@ You can run the containers that are build for AIO with docker-compose. This come - You can run it without a container having access to the docker socket - You can modify all values on your own - You can run the containers with docker swarm +- You can run it entirely offline or in air-gapped environment ### Disadvantages - You lose the AIO interface @@ -30,9 +31,9 @@ Now copy the provided yaml file to a compose.yaml file by running `cp latest.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, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64). +The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary, fulltextsearch or docker-socket-proxy use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64). -For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`. (Note: there is no clamav image for arm64). +For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard --profile docker-socket-proxy up`. (Note: there is no clamav image for arm64). ## 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. From 486370c5f8164290eb9f5b96175af937d469565f Mon Sep 17 00:00:00 2001 From: sheikhmishar Date: Fri, 4 Oct 2024 11:52:54 +0600 Subject: [PATCH 2/2] added some community containers to manual install Signed-off-by: sheikhmishar --- manual-install/community-compose.yml | 99 ++++++++++++++++++++++++++++ manual-install/latest.yml | 3 + manual-install/readme.md | 6 +- 3 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 manual-install/community-compose.yml diff --git a/manual-install/community-compose.yml b/manual-install/community-compose.yml new file mode 100644 index 000000000000..ab5dc7a59e27 --- /dev/null +++ b/manual-install/community-compose.yml @@ -0,0 +1,99 @@ +services: + nextcloud-aio-local-ai: + image: szaimen/aio-local-ai:v2 + expose: "8080" + restart: unless-stopped + environment: + - "TZ=${TIMEZONE}" + - MODELS_PATH=/models + volumes: + - nextcloud_aio_localai_models:/models + - nextcloud_aio_localai_images:/tmp/generated/images/ + - ${NEXTCLOUD_DATADIR}:/nextcloud:ro + profiles: + - local-ai + networks: + - nextcloud-aio + cap_drop: + - NET_RAW + + nextcloud-aio-caddy: + image: szaimen/aio-caddy:v2 + expose: "443" + restart: unless-stopped + ports: + - 443:443/tcp + - 443:443/udp + environment: + - "TZ=${TIMEZONE}" + - "NC_DOMAIN=${NC_DOMAIN}" + - "APACHE_PORT=${APACHE_PORT}" + volumes: + - nextcloud_aio_caddy:/data + - "${NEXTCLOUD-DATADIR}:/nextcloud:ro" + profiles: + - caddy + networks: + - nextcloud-aio + cap_drop: + - NET_RAW + + nextcloud-aio-dlna: + image: thanek/nextcloud-dlna + network_mode: host + restart: unless-stopped + depends_on: + - nextcloud-aio-database + environment: + - "NC_DOMAIN=${NC_DOMAIN}" + - NC_PORT=443 + - NEXTCLOUD_DLNA_SERVER_PORT=9999 + - NEXTCLOUD_DLNA_FRIENDLY_NAME=nextcloud-aio + - NEXTCLOUD_DATA_DIR=/data + - NEXTCLOUD_DB_TYPE=postgres + - NEXTCLOUD_DB_HOST=nextcloud-aio-database + - NEXTCLOUD_DB_PORT=5432 + - NEXTCLOUD_DB_NAME=nextcloud_database + - NEXTCLOUD_DB_USER=oc_nextcloud + - "NEXTCLOUD_DB_PASS=${DATABASE_PASSWORD}" + volumes: + - ${NEXTCLOUD_DATADIR}:/data:ro + profiles: + - dlna + cap_drop: + - NET_RAW + + nextcloud-aio-facerecognition: + image: matiasdelellis/facerecognition-external-model:v1 + expose: "5000" + restart: unless-stopped + environment: + - "TZ=${TIMEZONE}" + - API_KEY=some-super-secret-api-key + - FACE_MODEL=3 + aio_variables: + - nextcloud_memory_limit=2048M + profiles: + - facerecognition + networks: + - nextcloud-aio + cap_drop: + - NET_RAW + + nextcloud-aio-jellyfin: + image: jellyfin/jellyfin + network_mode: host + restart: unless-stopped + environment: + - "TZ=${TIMEZONE}" + volumes: + - nextcloud_aio_jellyfin:"/config" + - ${NEXTCLOUD_DATADIR}:/media:ro + - ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:ro + devices: + - "/dev/dri" + profiles: + - jellyfin + cap_drop: + - NET_RAW +# TODO: inject post run commands diff --git a/manual-install/latest.yml b/manual-install/latest.yml index 5187d403e99a..13e8642d6919 100644 --- a/manual-install/latest.yml +++ b/manual-install/latest.yml @@ -1,3 +1,6 @@ +include: + - community-compose.yml + services: nextcloud-aio-apache: depends_on: diff --git a/manual-install/readme.md b/manual-install/readme.md index ac853db877c3..3ad4cf27dd58 100644 --- a/manual-install/readme.md +++ b/manual-install/readme.md @@ -12,7 +12,7 @@ You can run the containers that are build for AIO with docker-compose. This come - You lose the AIO interface - You lose update notifications and automatic updates - You lose all AIO backup and restore features -- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers +- You lose some community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers - **You need to know what you are doing, especially when modifying the compose.yaml file** - For updating, you need to strictly follow the at the bottom described update routine - Probably more @@ -31,9 +31,9 @@ Now copy the provided yaml file to a compose.yaml file by running `cp latest.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, talk, whiteboard, talk-recording, clamav, imaginary, fulltextsearch or docker-socket-proxy use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64). +The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary, fulltextsearch or docker-socket-proxy use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64). For community containers, additional profile flags are required, such as local-ai, caddy, dlna, facerecognition, jellyfin. -For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard --profile docker-socket-proxy up`. (Note: there is no clamav image for arm64). +For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard --profile docker-socket-proxy --profile caddy --profile dlna --profile facerecognition --profile jellyfin --profile local-ai up`. (Note: there is no clamav image for arm64). ## 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.