Compare commits

..

61 Commits

Author SHA1 Message Date
Simon L.
d133e285d5 Merge pull request #5495 from rriemann/elastic-no-ingest-plugin
elastic container: ingest-attachment is now module and not a plugin
2024-10-30 14:55:25 +01:00
Simon L.
ccf21e065c Merge pull request #5497 from nextcloud/enh/3673/clean-up-old-sessions
nextcloud: clean up old sessions after 24h latest
2024-10-30 14:45:09 +01:00
Simon L.
95c20fdfff nextcloud: clean up old sessions after 24h latest
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-30 10:56:06 +01:00
Robert Riemann
cf8ba936c9 elastic container: ingest-attachment is now module and not a plugin
When this command is executed in elastic search v8.15.3, then this warning shows up:

~~~
bin/elasticsearch-plugin install --batch ingest-attachment
warning: ignoring JAVA_HOME=/opt/bitnami/java; using ES_JAVA_HOME
-> Installing ingest-attachment
[ingest-attachment] is no longer a plugin but instead a module packaged with this distribution of Elasticsearch
-> Please restart Elasticsearch to activate any plugins installed
~~~

The elastic website says: "The Ingest Attachment plugin is now included in Elasticsearch. See the Ingest Attachment processor."

Source: <https://www.elastic.co/guide/en/elasticsearch/plugins/current/ingest-attachment.html>

Hence, I remove the explicit installation from the elastic container image.

Signed-off-by: Robert Riemann <robert.riemann@edps.europa.eu>
2024-10-29 15:12:15 +01:00
Simon L.
af975f6fde Merge pull request #5494 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-2.0.1
build(deps): bump strukturag/nextcloud-spreed-signaling from 2.0.0 to 2.0.1 in /Containers/talk
2024-10-29 09:07:58 +01:00
dependabot[bot]
1d96efe07c build(deps): bump strukturag/nextcloud-spreed-signaling
Bumps strukturag/nextcloud-spreed-signaling from 2.0.0 to 2.0.1.

---
updated-dependencies:
- dependency-name: strukturag/nextcloud-spreed-signaling
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-29 04:59:07 +00:00
Simon L.
a02d1644f7 Merge pull request #5488 from nextcloud/aio-dependency-update
PHP dependency updates
2024-10-28 13:04:17 +01:00
szaimen
6a74ab6363 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-28 12:03:09 +00:00
Simon L.
335ed24469 Merge pull request #5487 from nextcloud/dependabot/docker/Containers/talk/eturnal/eturnal-1.12.1
build(deps): bump eturnal/eturnal from 1.12.0 to 1.12.1 in /Containers/talk
2024-10-28 10:10:51 +01:00
Simon L.
40ab0f9f9e Merge pull request #5486 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.9.1.1
build(deps): bump collabora/code from 24.04.8.2.1 to 24.04.9.1.1 in /Containers/collabora
2024-10-28 10:10:32 +01:00
Simon L.
eac7d4fd88 Merge pull request #5485 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.4.1-10
build(deps): bump clamav/clamav from 1.4.1-9 to 1.4.1-10 in /Containers/clamav
2024-10-28 10:10:06 +01:00
dependabot[bot]
d2adea5fe4 build(deps): bump eturnal/eturnal in /Containers/talk
Bumps eturnal/eturnal from 1.12.0 to 1.12.1.

---
updated-dependencies:
- dependency-name: eturnal/eturnal
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 04:40:04 +00:00
dependabot[bot]
d2f00b44d4 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.8.2.1 to 24.04.9.1.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 04:39:27 +00:00
dependabot[bot]
017ed64f6b build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.4.1-9 to 1.4.1-10.

---
updated-dependencies:
- dependency-name: clamav/clamav
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 04:39:26 +00:00
sunjam
b814a51d0b Update readme.md local documentation (#5473)
Adding more wording to local description to clarify it relates to having "no domain" and other keywords/phrases users must be missing, because so many people are confused about this.

Signed-off-by: sunjam <sunjam@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2024-10-27 15:43:10 +01:00
Simon L.
37d4366392 Merge pull request #5481 from nextcloud/ernolf/ui-darkmode-fixes
aio-interface: fix dark-mode and checkbox style
2024-10-27 14:59:43 +01:00
ernolf
4ff189fce1 fix(ui): adjust height of main to fit in container
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-26 14:49:28 +02:00
Simon L.
dc9d10d4e6 Merge pull request #5476 from nextcloud/enh/5469/feature-inline-config
refactor compose.yaml: adjust the caddy setup to feature inline config
2024-10-25 23:48:38 +02:00
ernolf
55b5469260 fix(ui): correct style for disabled checkbox labels
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-25 20:43:42 +02:00
ernolf
3f3ae167e9 fix(ui): split theme & icon load to prevent flicker, errors
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-25 20:30:30 +02:00
Simon L.
d35d97b316 refactor compose.yaml: adjust the caddy setup to feature inline config
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-25 11:01:06 +02:00
Simon L.
a0ce2c1bec Merge pull request #5470 from nextcloud/enh/noid/document-more-varilables
compose.yaml: document additional available envs
2024-10-25 09:36:40 +02:00
Simon L.
67944aa009 Merge pull request #5475 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.2.25-fpm-alpine3.20
build(deps): bump php from 8.2.24-fpm-alpine3.20 to 8.2.25-fpm-alpine3.20 in /Containers/nextcloud
2024-10-25 09:36:16 +02:00
Simon L.
c183fe3d4c Merge pull request #5474 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.3.13-fpm-alpine3.20
build(deps): bump php from 8.3.12-fpm-alpine3.20 to 8.3.13-fpm-alpine3.20 in /Containers/mastercontainer
2024-10-25 09:35:57 +02:00
dependabot[bot]
0066ad6a37 build(deps): bump php in /Containers/nextcloud
Bumps php from 8.2.24-fpm-alpine3.20 to 8.2.25-fpm-alpine3.20.

---
updated-dependencies:
- dependency-name: php
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 05:00:57 +00:00
dependabot[bot]
459edf573c build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.3.12-fpm-alpine3.20 to 8.3.13-fpm-alpine3.20.

---
updated-dependencies:
- dependency-name: php
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 05:00:45 +00:00
Simon L.
bdc782e74c compose.yaml: document additional available envs
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-24 15:59:49 +02:00
Simon L.
997b986dfe Merge pull request #5467 from nextcloud/enh/noid/add-tailscale-to-local-instance
local-instance-docs: add content and add tailscale network as option
2024-10-24 14:38:31 +02:00
Simon L.
68d75dc01a local-instance-docs: add content and add tailscale network as option
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-24 13:09:22 +02:00
Simon L.
d9142871f6 Refactor manual-install Compose.yml: Simplify Environment Variables (#5459)
* 🔧 Refactor manual-install Compose.yml: Simplify Environment Variables

- Removed explicit values for environment variables in `docker-compose.yml`.
- Utilized default values for better flexibility and maintainability.
- Updated network configuration to use the default bridge driver.

Note: Using `network: default` is sufficient within Docker Compose; there's no need to create a separate `nextcloud-network` for all hosts. 🚀


Signed-off-by: lll <2844835+flll@users.noreply.github.com>
2024-10-24 12:03:53 +02:00
Simon L.
680310c3e8 Merge pull request #5441 from nextcloud/enh/noid/add-db-type
nextcloud&notify-push: allow to adjust the DATABASE_TYPE
2024-10-24 10:18:00 +02:00
Simon L.
026b1b87fa Merge pull request #5460 from nextcloud/enh/noid/tailscale
readme: add tailscale network instructions
2024-10-22 11:57:28 +02:00
Simon L.
5849a1fce9 readme: add tailscale network
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-22 11:13:41 +02:00
Simon L.
3dfbf3d9ab Revert "change Hint to github hint" because it does not seem to work inside a details tag
This reverts commit 5b4edc2c34.
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-22 11:05:51 +02:00
Simon L.
bff1d6138b Merge pull request #5457 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.4.1-9
build(deps): bump clamav/clamav from 1.4.1-8 to 1.4.1-9 in /Containers/clamav
2024-10-22 08:33:18 +02:00
dependabot[bot]
5100bcddda build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.4.1-8 to 1.4.1-9.

---
updated-dependencies:
- dependency-name: clamav/clamav
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 04:36:19 +00:00
Simon L.
86e2d559d2 Merge pull request #5440 from nextcloud/enh/noid/add-rp-examples
rp-docs: add links to examples direclty to each rp section
2024-10-21 15:38:51 +02:00
Simon L.
a1bc150612 Merge pull request #5409 from flll/patch-2
[reverse-proxy.md] Add Tailscale integration setup
2024-10-21 10:28:15 +02:00
Simon L.
70e31a40b4 update wording
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-21 10:27:35 +02:00
Simon L.
5b4edc2c34 address review
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-21 10:01:02 +02:00
Simon L.
4be6d492ea nextcloud&notify-push: allow to adjust the DATABASE_TYPE
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 17:50:31 +02:00
lll
42a39397e4 to wiki
Signed-off-by: lll <2844835+flll@users.noreply.github.com>
2024-10-18 23:40:21 +09:00
Simon L.
8fae9b669f rp-docs: add links to examples direclty to each rp section
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 16:30:06 +02:00
Simon L.
9bf38d2795 only apply saved theme when dom content has loaded
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 15:56:39 +02:00
Simon L.
0e960b8ca4 increase to 9.8.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 15:04:59 +02:00
Simon L.
327c91d0b7 Merge pull request #5434 from nextcloud/ernolf/darkmode-fix
aio-interface: fix dark-mode
2024-10-18 14:59:02 +02:00
Simon L.
2d78730f75 Merge pull request #5438 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-10-18 14:58:10 +02:00
Simon L.
9da4094ff8 fix mobile layout
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 14:57:06 +02:00
szaimen
0067ec3bca nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-18 12:11:10 +00:00
Simon L.
a530cee7e4 update OO
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-18 13:47:10 +02:00
Simon L.
737decb114 Merge pull request #5437 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.22-scratch
build(deps): bump nats from 2.10.21-scratch to 2.10.22-scratch in /Containers/talk
2024-10-18 08:26:48 +02:00
Simon L.
7da2f3da65 Merge pull request #5435 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.15.3
build(deps): bump elasticsearch from 8.15.2 to 8.15.3 in /Containers/fulltextsearch
2024-10-18 08:26:11 +02:00
dependabot[bot]
fa9ae2bc53 build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.21-scratch to 2.10.22-scratch.

---
updated-dependencies:
- dependency-name: nats
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 04:44:08 +00:00
dependabot[bot]
99caab3625 build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.15.2 to 8.15.3.

---
updated-dependencies:
- dependency-name: elasticsearch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 04:43:28 +00:00
ernolf
de372c11f3 fix(ui): ad darkmode for loading spinner
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-17 19:53:11 +02:00
ernolf
a5b25ab56b fix(ui): ensure theme-toggle button is visible on first visit
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-17 19:53:11 +02:00
ernolf
2b6e81c074 fix(ui): make loading-overlay cover the logout button
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2024-10-17 17:08:38 +02:00
Simon L.
97dcab58d8 Merge pull request #5431 from nextcloud/aio-dependency-update
PHP dependency updates
2024-10-17 14:20:00 +02:00
szaimen
814a1eca53 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-17 12:02:46 +00:00
Simon L.
7ac2d60e51 local-ai: add hint how to improve ai task pickup speed
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-10-17 13:20:33 +02:00
lll
17362bc234 [reverse-proxy.md] Add Tailscale integration setup
- Detailed explanation of integrating Tailscale, Caddy, and AIO
- Add example configuration for Compose file
- Include example Caddyfile configuration
- Provide instructions for setting environment variables
- Include notes on security and network configuration


Signed-off-by: lll <2844835+flll@users.noreply.github.com>
2024-10-13 18:56:34 +09:00
24 changed files with 293 additions and 188 deletions

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
FROM clamav/clamav:1.4.1-8
FROM clamav/clamav:1.4.1-10
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
FROM collabora/code:24.04.8.2.1
FROM collabora/code:24.04.9.1.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:8.15.2
FROM elasticsearch:8.15.3
USER root
@@ -14,8 +14,7 @@ RUN set -ex; \
apt-get install -y --no-install-recommends \
tzdata \
; \
rm -rf /var/lib/apt/lists/*; \
elasticsearch-plugin install --batch ingest-attachment
rm -rf /var/lib/apt/lists/*;
USER 1000:0

View File

@@ -6,7 +6,7 @@ FROM docker:27.3.1-cli AS docker
FROM caddy:2.8.4-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.20/fpm/Dockerfile
FROM php:8.3.12-fpm-alpine3.20
FROM php:8.3.13-fpm-alpine3.20
EXPOSE 80
EXPOSE 8080

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM php:8.2.24-fpm-alpine3.20
FROM php:8.2.25-fpm-alpine3.20
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=10G
@@ -80,7 +80,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install igbinary-3.2.16; \
pecl install APCu-5.1.24; \
pecl install -D 'enable-memcached-igbinary="yes"' memcached-3.2.0; \
pecl install -D 'enable-memcached-igbinary="yes"' memcached-3.3.0; \
pecl install -D 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"' redis-6.1.0; \
pecl install imagick-3.7.0; \
\
@@ -134,6 +134,7 @@ RUN set -ex; \
echo 'redis.session.locking_enabled = 1'; \
echo 'redis.session.lock_retries = -1'; \
echo 'redis.session.lock_wait_time = 10000'; \
echo 'session.gc_maxlifetime = 86400'; \
} > /usr/local/etc/php/conf.d/redis-session.ini; \
\
mkdir -p /var/www/data; \

View File

@@ -20,6 +20,11 @@ run_upgrade_if_needed_due_to_app_update() {
fi
}
# Adjust DATABASE_TYPE to by Nextcloud supported value
if [ "$DATABASE_TYPE" = postgres ]; then
export DATABASE_TYPE=pgsql
fi
# Only start container if redis is accessible
# shellcheck disable=SC2153
while ! nc -z "$REDIS_HOST" "6379"; do
@@ -237,12 +242,12 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
);
DATADIR_PERMISSION_CONF
echo "Installing with PostgreSQL database"
echo "Installing with $DATABASE_TYPE database"
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
INSTALL_OPTIONS+=(--database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST" --database-port "$POSTGRES_PORT")
INSTALL_OPTIONS+=(--database "$DATABASE_TYPE" --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST" --database-port "$POSTGRES_PORT")
echo "Starting Nextcloud installation..."
if ! php /var/www/html/occ maintenance:install "${INSTALL_OPTIONS[@]}"; then

View File

@@ -17,6 +17,11 @@ done
POSTGRES_USER="oc_$POSTGRES_USER"
export POSTGRES_USER
# Check that db type is not empty
if [ -z "$DATABASE_TYPE" ]; then
export DATABASE_TYPE=postgres
fi
# Fix false database connection on old instances
if [ -f "/var/www/html/config/config.php" ]; then
sleep 2

View File

@@ -1,13 +1,13 @@
#!/bin/bash
if [ -z "$NEXTCLOUD_HOST" ]; then
echo "NEXTCLOUD_HOST need to be provided. Exiting!"
echo "NEXTCLOUD_HOST needs to be provided. Exiting!"
exit 1
elif [ -z "$POSTGRES_HOST" ]; then
echo "POSTGRES_HOST need to be provided. Exiting!"
echo "POSTGRES_HOST needs to be provided. Exiting!"
exit 1
elif [ -z "$REDIS_HOST" ]; then
echo "REDIS_HOST need to be provided. Exiting!"
echo "REDIS_HOST needs to be provided. Exiting!"
exit 1
fi
@@ -52,9 +52,16 @@ fi
if [ -z "$REDIS_DB_INDEX" ]; then
REDIS_DB_INDEX=0
fi
# Set a default for db type
if [ -z "$DATABASE_TYPE" ]; then
DATABASE_TYPE=postgres
elif [ "$DATABASE_TYPE" != postgres ] && [ "$DATABASE_TYPE" != mysql ]; then
echo "DB type must be either postgres or mysql"
exit 1
fi
# Set sensitive values as env
export DATABASE_URL="postgres://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
export DATABASE_URL="$DATABASE_TYPE://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST/$REDIS_DB_INDEX"
# Run it

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:8.1.3.2
FROM onlyoffice/documentserver:8.2.0.1
# USER root is probably used

View File

@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM nats:2.10.21-scratch AS nats
FROM eturnal/eturnal:1.12.0 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.0 AS signaling
FROM nats:2.10.22-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.1 AS signaling
FROM alpine:3.20.3 AS janus
ARG JANUS_VERSION=v0.14.4

View File

@@ -19,6 +19,7 @@ This container bundles Local AI and auto-configures it for you.
name: gpt4all-j
```
- To make it work, you first need to browse `https://your-nc-domain.com/settings/admin/ai` and enable or disable specific features for your models in the openAI settings. Afterwards using the Nextcloud Assistant should work.
- See [this guide](https://github.com/nextcloud/all-in-one/discussions/5430) for how to improve AI task pickup speed
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository

View File

@@ -14,6 +14,7 @@ services:
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# environment: # Is needed when using any of the options below
# AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# AIO_COMMUNITY_CONTAINERS: # With this variable, you can add community containers very easily. See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
# APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
@@ -29,25 +30,39 @@ services:
# NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
# NEXTCLOUD_ENABLE_DRI_DEVICE: true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
# NEXTCLOUD_KEEP_DISABLED_APPS: false # Setting this to true will keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed. See https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps
# SKIP_DOMAIN_VALIDATION: false # This should only be set to true if things are correctly configured. See https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-skip-the-domain-validation
# TALK_PORT: 3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
# WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
# security_opt: ["label:disable"] # Is needed when using SELinux
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
# caddy:
# image: caddy:alpine
# restart: always
# container_name: caddy
# volumes:
# - ./Caddyfile:/etc/caddy/Caddyfile
# - ./certs:/certs
# - ./config:/config
# - ./data:/data
# - ./sites:/srv
# network_mode: "host"
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/discussions/575
# # Hint: You need to uncomment APACHE_PORT: 11000 above, adjust cloud.example.com to your domain and uncomment the necessary docker volumes at the bottom of this file in order to make it work
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
# caddy:
# image: caddy:alpine
# restart: always
# container_name: caddy
# volumes:
# - caddy_certs:/certs
# - caddy_config:/config
# - caddy_data:/data
# - caddy_sites:/srv
# network_mode: "host"
# configs:
# - source: Caddyfile
# target: /etc/caddy/Caddyfile
# configs:
# Caddyfile:
# content: |
# # Adjust cloud.example.com to your domain below
# https://cloud.example.com:443 {
# reverse_proxy localhost:11000
# }
volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
# caddy_certs:
# caddy_config:
# caddy_data:
# caddy_sites:

View File

@@ -1,5 +1,12 @@
# Local instance
It is possible due to several reasons that you do not want or cannot open Nextcloud to the public internet. However AIO requires a valid certificate to work correctly. Below is discussed how you can achieve both: Having a valid certificate for Nextcloud and only using it locally.
It is possible due to several reasons that you do not want or cannot open Nextcloud to the public internet. Perhaps you were hoping to access AIO directly from an `ip.add.r.ess` (unsupported) or without a valid domain. However, AIO requires a valid certificate to work correctly. Below is discussed how you can achieve both: Having a valid certificate for Nextcloud and only using it locally.
### Content
- [1. The recommended way](#1-the-recommended-way)
- [2. Use the ACME DNS-challenge](#2-use-the-acme-dns-challenge)
- [3. Use Cloudflare](#3-use-cloudflare)
- [4. Buy a certificate and use that](#4-buy-a-certificate-and-use-that)
- [5. Tailscale network](#5-tailscale-network)
## 1. The recommended way
The recommended way is the following:
@@ -9,7 +16,7 @@ The recommended way is the following:
1. Enter the ip-address of your local dns-server in the daemon.json file for docker so that you are sure that all docker containers use the correct local dns-server.
1. Now, entering the domain in the AIO-interface should work as expected and should allow you to continue with the setup
Here is a video that does shows this a bit more in detail: https://youtu.be/zk-y2wVkY4c
**Hint:** You may have a look at [this video](https://youtu.be/zk-y2wVkY4c) for a more complete but possibly outdated example.
## 2. Use the ACME DNS-challenge
You can alternatively use the ACME DNS-challenge to get a valid certificate for Nextcloud. Here is described how to set it up: https://github.com/nextcloud/all-in-one#how-to-get-nextcloud-running-using-the-acme-dns-challenge
@@ -19,3 +26,6 @@ If you do not have any control over the network, you may think about using Cloud
## 4. Buy a certificate and use that
If none of the above ways work for you, you may simply buy a certificate from an issuer for your domain. You then download the certificate onto your server, configure AIO in [reverse proxy mode](./reverse-proxy.md) and use the certificate for your domain in your reverse proxy config.
## 5. Tailscale network
For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439

View File

@@ -25,15 +25,15 @@ services:
- ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/tcp
- ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/udp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NC_DOMAIN
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- APACHE_HOST=nextcloud-aio-apache
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk
- APACHE_PORT=${APACHE_PORT}
- APACHE_PORT
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- TZ=${TIMEZONE}
- APACHE_MAX_SIZE=${APACHE_MAX_SIZE}
- APACHE_MAX_SIZE
- APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME}
- NOTIFY_PUSH_HOST=nextcloud-aio-notify-push
- WHITEBOARD_HOST=nextcloud-aio-whiteboard
@@ -41,8 +41,6 @@ services:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
restart: unless-stopped
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /var/log/supervisord
@@ -70,8 +68,6 @@ services:
stop_grace_period: 1800s
restart: unless-stopped
shm_size: 268435456
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /var/run/postgresql
@@ -116,52 +112,50 @@ services:
- POSTGRES_USER=nextcloud
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- NC_DOMAIN=${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}
- NEXTCLOUD_MOUNT=${NEXTCLOUD_MOUNT}
- CLAMAV_ENABLED=${CLAMAV_ENABLED}
- TURN_SECRET
- SIGNALING_SECRET
- ONLYOFFICE_SECRET
- NEXTCLOUD_MOUNT
- CLAMAV_ENABLED
- CLAMAV_HOST=nextcloud-aio-clamav
- ONLYOFFICE_ENABLED=${ONLYOFFICE_ENABLED}
- COLLABORA_ENABLED=${COLLABORA_ENABLED}
- ONLYOFFICE_ENABLED
- COLLABORA_ENABLED
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_ENABLED=${TALK_ENABLED}
- TALK_ENABLED
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- UPDATE_NEXTCLOUD_APPS=${UPDATE_NEXTCLOUD_APPS}
- UPDATE_NEXTCLOUD_APPS
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
- IMAGINARY_ENABLED=${IMAGINARY_ENABLED}
- TALK_PORT
- IMAGINARY_ENABLED
- IMAGINARY_HOST=nextcloud-aio-imaginary
- CLAMAV_MAX_SIZE=${APACHE_MAX_SIZE}
- PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT}
- PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT}
- FULLTEXTSEARCH_ENABLED=${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}
- INSTALL_LATEST_MAJOR=${INSTALL_LATEST_MAJOR}
- TALK_RECORDING_ENABLED=${TALK_RECORDING_ENABLED}
- RECORDING_SECRET=${RECORDING_SECRET}
- INSTALL_LATEST_MAJOR
- TALK_RECORDING_ENABLED
- RECORDING_SECRET
- TALK_RECORDING_HOST=nextcloud-aio-talk-recording
- FULLTEXTSEARCH_PASSWORD=${FULLTEXTSEARCH_PASSWORD}
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
- APACHE_PORT=${APACHE_PORT}
- IMAGINARY_SECRET=${IMAGINARY_SECRET}
- WHITEBOARD_SECRET=${WHITEBOARD_SECRET}
- WHITEBOARD_ENABLED=${WHITEBOARD_ENABLED}
- FULLTEXTSEARCH_PASSWORD
- REMOVE_DISABLED_APPS
- APACHE_PORT
- IMAGINARY_SECRET
- WHITEBOARD_SECRET
- WHITEBOARD_ENABLED
stop_grace_period: 600s
restart: unless-stopped
networks:
- nextcloud-aio
cap_drop:
- NET_RAW
@@ -173,7 +167,7 @@ services:
volumes:
- nextcloud_aio_nextcloud:/nextcloud:ro
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NC_DOMAIN
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
@@ -183,8 +177,6 @@ services:
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
restart: unless-stopped
networks:
- nextcloud-aio
read_only: true
cap_drop:
- NET_RAW
@@ -200,8 +192,6 @@ services:
volumes:
- nextcloud_aio_redis:/data:rw
restart: unless-stopped
networks:
- nextcloud-aio
read_only: true
cap_drop:
- NET_RAW
@@ -221,8 +211,6 @@ services:
restart: unless-stopped
profiles:
- collabora
networks:
- nextcloud-aio
cap_add:
- MKNOD
- SYS_ADMIN
@@ -238,19 +226,17 @@ services:
expose:
- "8081"
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NC_DOMAIN
- TALK_HOST=nextcloud-aio-talk
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- TURN_SECRET
- SIGNALING_SECRET
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
- TALK_PORT
- INTERNAL_SECRET=${TALK_INTERNAL_SECRET}
restart: unless-stopped
profiles:
- talk
- talk-recording
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /var/log/supervisord
@@ -267,16 +253,14 @@ services:
expose:
- "1234"
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NC_DOMAIN
- TZ=${TIMEZONE}
- RECORDING_SECRET=${RECORDING_SECRET}
- RECORDING_SECRET
- INTERNAL_SECRET=${TALK_INTERNAL_SECRET}
shm_size: 2147483648
restart: unless-stopped
profiles:
- talk-recording
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /tmp
@@ -298,8 +282,6 @@ services:
restart: unless-stopped
profiles:
- clamav
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /var/lock
@@ -323,8 +305,6 @@ services:
restart: unless-stopped
profiles:
- onlyoffice
networks:
- nextcloud-aio
cap_drop:
- NET_RAW
@@ -335,7 +315,7 @@ services:
- "9000"
environment:
- TZ=${TIMEZONE}
- IMAGINARY_SECRET=${IMAGINARY_SECRET}
- IMAGINARY_SECRET
restart: unless-stopped
cap_add:
- SYS_NICE
@@ -343,8 +323,6 @@ services:
- NET_RAW
profiles:
- imaginary
networks:
- nextcloud-aio
read_only: true
tmpfs:
- /tmp
@@ -364,14 +342,12 @@ services:
- http.port=9200
- xpack.license.self_generated.type=basic
- xpack.security.enabled=false
- FULLTEXTSEARCH_PASSWORD=${FULLTEXTSEARCH_PASSWORD}
- FULLTEXTSEARCH_PASSWORD
volumes:
- nextcloud_aio_elasticsearch:/usr/share/elasticsearch/data:rw
restart: unless-stopped
profiles:
- fulltextsearch
networks:
- nextcloud-aio
cap_drop:
- NET_RAW
@@ -391,8 +367,6 @@ services:
profiles:
- whiteboard
read_only: true
networks:
- nextcloud-aio
cap_drop:
- NET_RAW
@@ -417,5 +391,5 @@ volumes:
name: nextcloud_aio_nextcloud_data
networks:
nextcloud-aio:
name: nextcloud-aio
default:
driver: bridge

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#!/bin/bash -ex
set -ex
type {jq,sudo} || { echo "Commands not found. Please install them"; exit 127; }
jq -c . ./php/containers.json > /tmp/containers.json
sed -i 's|aio_services_v1|services|g' /tmp/containers.json
@@ -18,6 +18,7 @@ OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].devices)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].backup_volumes)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].nextcloud_exec_commands)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].image_tag)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].networks)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-watchtower"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-domaincheck"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-borgbackup"))')"
@@ -25,7 +26,7 @@ OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "next
OUTPUT="$(echo "$OUTPUT" | jq '.services[] |= if has("depends_on") then .depends_on |= if contains(["nextcloud-aio-docker-socket-proxy"]) then del(.[index("nextcloud-aio-docker-socket-proxy")]) else . end else . end')"
OUTPUT="$(echo "$OUTPUT" | jq '.services[] |= if has("depends_on") then .depends_on |= map({ (.): { "condition": "service_started", "required": false } }) else . end' | jq '.services[] |= if has("depends_on") then .depends_on |= reduce .[] as $item ({}; . + $item) else . end')"
snap install yq
sudo snap install yq
mkdir -p ./manual-install
echo "$OUTPUT" | yq -P > ./manual-install/containers.yml
@@ -139,13 +140,12 @@ done
cat << NETWORK >> containers.yml
networks:
nextcloud-aio:
name: nextcloud-aio
default:
driver: bridge
NETWORK
cat containers.yml > latest.yml
mv containers.yml latest.yml
sed -i "/image:/s/$/:latest/" latest.yml
rm containers.yml
sed -i 's/\( *- \(\w*\)\)=\${\2\}/\1/' latest.yml
set +ex

View File

@@ -1,9 +1,11 @@
#!/bin/bash
[ -z "$1" ] && { echo "Error: Docker tag is not specified. Usage: ./nextcloud-aio-helm-chart/update-helm.sh <Docker tag>"; exit 2; }
DOCKER_TAG="$1"
# The logic needs the files in ./helm-chart
mv ./nextcloud-aio-helm-chart ./helm-chart
cp -r ./nextcloud-aio-helm-chart ./helm-chart
# Clean
rm -f ./helm-chart/values.yaml
@@ -15,13 +17,15 @@ chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose
# Install yq
snap install yq
sudo snap install yq
set -ex
# Conversion of docker-compose
cd manual-install
cp latest.yml latest.yml.backup
sed -i -E '/^( *- )(NET_RAW|SYS_NICE|MKNOD|SYS_ADMIN)$/!s/( *- )([A-Z_]+)$/\1\2=${\2}/' latest.yml
cp sample.conf /tmp/
sed -i 's|^|export |' /tmp/sample.conf
# shellcheck disable=SC1091
@@ -41,8 +45,7 @@ sed -i "/NEXTCLOUD_DATADIR/d" latest.yml
sed -i "/\${NEXTCLOUD_MOUNT}/d" latest.yml
sed -i "/^volumes:/a\ \ nextcloud_aio_nextcloud_trusted_cacerts:\n \ \ \ \ name: nextcloud_aio_nextcloud_trusted_cacerts" latest.yml
sed -i "s|\${NEXTCLOUD_TRUSTED_CACERTS_DIR}:|nextcloud_aio_nextcloud_trusted_cacerts:|g#" latest.yml
sed -i 's|\${|{{ .Values.|g' latest.yml
sed -i 's|}| }}|g' latest.yml
sed -i 's/\${/{{ .Values./g; s/}/ }}/g' latest.yml
yq -i 'del(.services.[].profiles)' latest.yml
# Delete read_only and tmpfs setting while https://github.com/kubernetes/kubernetes/issues/48912 is not fixed
yq -i 'del(.services.[].read_only)' latest.yml

60
php/composer.lock generated
View File

@@ -134,16 +134,16 @@
},
{
"name": "guzzlehttp/promises",
"version": "2.0.3",
"version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
"reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
"reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
"url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
"reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
"shasum": ""
},
"require": {
@@ -197,7 +197,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.0.3"
"source": "https://github.com/guzzle/promises/tree/2.0.4"
},
"funding": [
{
@@ -213,7 +213,7 @@
"type": "tidelift"
}
],
"time": "2024-07-18T10:29:17+00:00"
"time": "2024-10-17T10:06:22+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -2940,16 +2940,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.12",
"version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "72d080eb9edf80e36c19be61f72c98ed8273b765"
"reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765",
"reference": "72d080eb9edf80e36c19be61f72c98ed8273b765",
"url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
"reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
"shasum": ""
},
"require": {
@@ -3014,7 +3014,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.12"
"source": "https://github.com/symfony/console/tree/v6.4.13"
},
"funding": [
{
@@ -3030,20 +3030,20 @@
"type": "tidelift"
}
],
"time": "2024-09-20T08:15:52+00:00"
"time": "2024-10-09T08:40:40+00:00"
},
{
"name": "symfony/filesystem",
"version": "v7.1.5",
"version": "v7.1.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a"
"reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a",
"reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4",
"reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4",
"shasum": ""
},
"require": {
@@ -3080,7 +3080,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v7.1.5"
"source": "https://github.com/symfony/filesystem/tree/v7.1.6"
},
"funding": [
{
@@ -3096,20 +3096,20 @@
"type": "tidelift"
}
],
"time": "2024-09-17T09:16:35+00:00"
"time": "2024-10-25T15:11:02+00:00"
},
{
"name": "symfony/finder",
"version": "v6.4.11",
"version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453"
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
"reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
"url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
"shasum": ""
},
"require": {
@@ -3144,7 +3144,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v6.4.11"
"source": "https://github.com/symfony/finder/tree/v6.4.13"
},
"funding": [
{
@@ -3160,7 +3160,7 @@
"type": "tidelift"
}
],
"time": "2024-08-13T14:27:37+00:00"
"time": "2024-10-01T08:30:56+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -3406,16 +3406,16 @@
},
{
"name": "symfony/string",
"version": "v7.1.5",
"version": "v7.1.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "d66f9c343fa894ec2037cc928381df90a7ad4306"
"reference": "61b72d66bf96c360a727ae6232df5ac83c71f626"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306",
"reference": "d66f9c343fa894ec2037cc928381df90a7ad4306",
"url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626",
"reference": "61b72d66bf96c360a727ae6232df5ac83c71f626",
"shasum": ""
},
"require": {
@@ -3473,7 +3473,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.1.5"
"source": "https://github.com/symfony/string/tree/v7.1.6"
},
"funding": [
{
@@ -3489,7 +3489,7 @@
"type": "tidelift"
}
],
"time": "2024-09-20T08:28:38+00:00"
"time": "2024-09-25T14:20:29+00:00"
},
{
"name": "vimeo/psalm",

View File

@@ -14,6 +14,10 @@
--color-info: #0071ad;
--color-info-hover: #00aaef;
--color-border-maxcontrast: #7d7d7d;
--color-loader: #f3f3f3;
--color-disabled: #d3d3d3; /* light gray background for disabled checkboxes */
--color-border-disabled: #a9a9a9; /* darker gray border for disabled checkboxes */
--color-text-disabled: #a9a9a9; /* matching label text color for disabled checkboxes */
--border: .5px;
--border-hover: 2px;
--border-radius: 7px;
@@ -21,6 +25,21 @@
--default-font-size: 13px;
--checkbox-size: 16px;
--max-width: 500px;
--container-top-margin: 20px;
--container-bottom-margin: 20px;
--container-padding: 2px;
--container-height-calculation-difference: calc(var(--container-top-margin) + var(--container-bottom-margin));
--main-height-calculation-difference: calc(var(--container-height-calculation-difference) + calc(var(--container-padding) * 2));
--main-padding: 50px;
}
/* Breakpoint calculation: 500px (max-width) + 100px (main-padding * 2) + 200px (additional space) = 800px
Note: Unfortunately, it's not possible to calculate this dynamically using CSS variables in media queries */
@media only screen and (max-width: 800px) {
:root {
--container-top-margin: 50px;
--container-bottom-margin: 0px;
}
}
[data-theme="dark"] {
@@ -35,6 +54,7 @@
--color-error-text: #ff8080;
--color-info: #00aeff;
--color-info-hover: #33beff;
--color-loader: var(--color-border-maxcontrast);
--border-hover: var(--border);
}
@@ -235,6 +255,7 @@ select:hover {
textarea {
border-radius: var(--border-radius);
border: .5px solid var(--color-main-border);
max-width: 100%;
}
input[type="text"]:focus,
@@ -273,26 +294,26 @@ html[data-theme="dark"] ::-webkit-scrollbar-track {
}
.container {
margin: 20px auto;
padding: 2px;
max-width: calc(var(--max-width) + 108px);
margin: var(--container-top-margin) auto var(--container-bottom-margin) auto;
padding: var(--container-padding);
max-width: calc(var(--max-width) + calc(var(--main-padding) * 2) + 8px);
background-color: var(--color-main-background);
border-radius: var(--border-radius-large);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
max-height: calc(100dvh - 40px);
max-height: calc(100dvh - var(--container-height-calculation-difference));
overflow: hidden;
}
main {
padding-left: 50px;
padding-right: 50px;
padding-left: var(--main-padding);
padding-right: var(--main-padding);
background-color: transparent; /* transparent, since color comes from outer container */
color: var(--color-main-text);
max-height: calc(100dvh - 44px);
max-height: calc(100dvh - var(--main-height-calculation-difference));
overflow-y: auto;
box-sizing: border-box;
word-break: break-word;
max-width: calc(var(--max-width) + 100px);
max-width: calc(var(--max-width) + calc(var(--main-padding) * 2));
margin: 0 auto;
}
@@ -324,7 +345,8 @@ header > form {
margin-right: 30px;
}
input[type="checkbox"] {
/* Standard styling for enabled checkboxes */
input[type="checkbox"]:not(:disabled) {
width: var(--checkbox-size);
height: var(--checkbox-size);
-webkit-appearance: none; /* remove default styling */
@@ -338,33 +360,63 @@ input[type="checkbox"] {
margin-top: -1px; /* adjust for better alignment */
}
input[type="checkbox"]:checked {
/* Hover effects for enabled checkboxes */
input[type="checkbox"]:not(:disabled):hover {
border-color: var(--color-info-hover);
}
/* Checkmark styling for enabled checkboxes */
input[type="checkbox"]:checked:not(:disabled) {
background-color: var(--color-nextcloud-blue);
border-color: var(--color-border-maxcontrast);
}
input[type="checkbox"]:checked::after {
content: ''; /* Create a pseudo-element for the checkmark */
position: absolute; /* Position it absolutely */
input[type="checkbox"]:checked:not(:disabled)::after {
content: ''; /* Creates a pseudo-element for the checkmark */
position: absolute; /* Positions it absolutely */
left: 4px; /* Positioning of the checkmark */
top: 0; /* Positioning of the checkmark */
width: 4px; /* Width of the checkmark */
height: 9px; /* Height of the checkmark */
border: solid white; /* Color of the checkmark */
border-width: 0 2px 3px 0; /* Create the checkmark shape */
transform: rotate(45deg); /* Rotate to form a checkmark */
border-width: 0 2px 3px 0; /* Creates the checkmark shape */
transform: rotate(45deg); /* Rotates to form a checkmark */
}
input[type="checkbox"]:hover {
border-color: var(--color-info-hover);
/* Styling for disabled checkboxes (grayed out, no hover, no pointer) */
input[type="checkbox"]:disabled:not(:checked) {
background-color: var(--color-disabled);
border-color: var(--color-border-disabled);
cursor: default;
opacity: 0.5; /* Makes the checkbox appear faded */
}
/* Styling for disabled checked checkboxes (no pointer) */
input[type="checkbox"]:disabled:checked {
cursor: default;
}
input[type="checkbox"]:disabled:hover {
border-color: var(--color-border-disabled); /* Keeps disabled state without hover effect */
}
/* General Label styling */
label {
cursor: pointer;
margin-left: 4px;
line-height: var(--checkbox-size);
}
/* Label cursor for disabled checkboxes */
input[type="checkbox"]:disabled + label {
cursor: default;
}
/* Label styling for disabled, not checked checkboxes */
input[type="checkbox"]:disabled:not(:checked) + label {
color: var(--color-text-disabled);
}
.loading {
color: grey;
}
@@ -385,7 +437,7 @@ label {
}
.loader {
border: 16px solid #f3f3f3;
border: 16px solid var(--color-loader);
border-radius: 50%;
border-top: 16px solid var(--color-nextcloud-blue);
width: 120px;
@@ -418,6 +470,7 @@ label {
font-size: 36px; /* Adjust font size */
cursor: pointer; /* Change cursor to pointer */
outline: none;
z-index: 9999; /* Ensures the icon is on top of every layer */
}
/* Icon styling: default state */
@@ -449,7 +502,6 @@ label {
position: relative; /* Ensures stacking order */
filter: grayscale(0%); /* Restore full color */
opacity: 1; /* Fully visible on hover */
z-index: 1; /* Ensures the icon is on top of the shadow */
}
/* Inner glow when hovered */
@@ -461,4 +513,4 @@ label {
/* Remove hover effects when not hovering */
#theme-toggle:not(:hover) #theme-icon {
opacity: 0.6; /* Slightly transparent */
}
}

View File

@@ -1,7 +1,7 @@
// Function to toggle theme
function toggleTheme() {
const currentTheme = document.documentElement.getAttribute('data-theme');
const newTheme = (currentTheme === 'dark') ? 'light' : 'dark';
const newTheme = (currentTheme === 'dark') ? '' : 'dark'; // Toggle between no theme and dark theme
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
@@ -10,17 +10,28 @@ function toggleTheme() {
themeIcon.textContent = newTheme === 'dark' ? '☀️' : '🌙'; // Switch between moon and sun icons
}
// Function to apply saved theme from localStorage
function applySavedTheme() {
// Function to immediately apply saved theme without icon update
function applySavedThemeImmediately() {
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
document.documentElement.setAttribute('data-theme', savedTheme);
// Ensure the icon is set correctly based on the saved theme
const themeIcon = document.getElementById('theme-icon');
themeIcon.textContent = savedTheme === 'dark' ? '☀️' : '🌙';
if (savedTheme === 'dark') {
document.documentElement.setAttribute('data-theme', 'dark');
} else {
document.documentElement.removeAttribute('data-theme'); // Default to light theme
}
}
// Function to apply theme-icon update
function setThemeIcon() {
const savedTheme = localStorage.getItem('theme');
if (savedTheme === 'dark') {
document.getElementById('theme-icon').textContent = '☀️'; // Sun icon for dark mode
} else {
document.getElementById('theme-icon').textContent = '🌙'; // Moon icon for light mode
}
}
// Immediately apply the saved theme to avoid flickering
applySavedThemeImmediately();
// Apply theme when the page loads
document.addEventListener('DOMContentLoaded', applySavedTheme);
document.addEventListener('DOMContentLoaded', setThemeIcon);

View File

@@ -17,7 +17,7 @@
<div class="container">
<main>
<h1>Nextcloud AIO v9.7.0</h1>
<h1>Nextcloud AIO v9.8.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -683,7 +683,4 @@
</main>
</div>
<div id="overlay">
<div class="loader"></div>
</div>
{% endblock %}
{% endblock %}

View File

@@ -4,13 +4,18 @@
<link rel="stylesheet" href="/style.css?v3" media="all" />
<link rel="icon" href="/img/favicon.png">
<script type="text/javascript" src="forms.js"></script>
<script type="text/javascript" src="toggle-dark-mode.js"></script>
</head>
<body>
<div class="wrapper">
{% block body %}{% endblock %}
</div>
<button id="theme-toggle" onclick="toggleTheme()"><span id="theme-icon"/></button>
<script type="text/javascript" src="toggle-dark-mode.js"></script>
<div id="overlay">
<div class="loader"></div>
</div>
<button id="theme-toggle" onclick="toggleTheme()">
<span id="theme-icon"></span>
</button>
</body>
</html>
</html>

View File

@@ -22,7 +22,4 @@
{% endif %}
</div>
<script type="text/javascript" src="before-unload.js"></script>
<div id="overlay">
<div class="loader"></div>
</div>
{% endblock %}
{% endblock %}

View File

@@ -27,6 +27,7 @@ Included are:
- A+ security in Nextcloud security scan
- Ready to be used behind existing [Reverse proxies](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
- Can be used behind [Cloudflare Tunnel](https://github.com/nextcloud/all-in-one#how-to-run-nextcloud-behind-a-cloudflare-tunnel)
- Can be used inside [Tailscale network](https://github.com/nextcloud/all-in-one/discussions/5439)
- Ready for big file uploads up to 10 GB on public links, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud) (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients since chunking is used in that case)
- PHP and web server timeouts set to 3600s, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud) (important for big file uploads)
- Defaults to a max of 512 MB RAM per PHP process, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud)
@@ -239,6 +240,9 @@ Another but untested way is to install Portainer on your TrueNAS SCALE from here
### How to run Nextcloud behind a Cloudflare Tunnel?
Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel. However please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding.
### How to run Nextcloud inside a Tailscale network?
For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
### Disrecommended VPS providers
- *Older* Strato VPS using Virtuozzo caused problems though ones from Q3 2023 and later should work.
If your VPS has a `/proc/user_beancounters` file and a low `numproc` limit set in it
@@ -257,8 +261,11 @@ In general recommended VPS are those that are KVM/non-virtualized as Docker shou
### How to get Nextcloud running using the ACME DNS-challenge?
You can install AIO in reverse proxy mode where is also documented how to get it running using the ACME DNS-challenge for getting a valid certificate for AIO. See the [reverse proxy documentation](./reverse-proxy.md). (Meant is the `Caddy with ACME DNS-challenge` section). Also see https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let%27s-Encrypt-certs#getting-a-custom-caddy-build for additional docs on this topic.
### How to run Nextcloud locally?
If you do not want to open Nextcloud to the public internet, you may have a look at the following documentation how to set it up locally: [local-instance.md](./local-instance.md)
### How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.
If you do not want to open Nextcloud to the public internet, you may have a look at the following documentation on how to set it up locally: [local-instance.md](./local-instance.md), but keep in mind you're still required to have https working properly.
### Can I use an ip-address for Nextcloud instead of a domain?
No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md) for configuration without a traditional domain. Or, [consider using NextcloudPi](nextcloudpi.com) for ip-address access locally (it bundles fewer features than AIO).
### Can I run AIO offline or in an airgapped system?
No. This is not possible and will not be added due to multiple reasons: update checks, app installs via app-store, downloading additional docker images on demand and more.
@@ -266,9 +273,6 @@ No. This is not possible and will not be added due to multiple reasons: update c
### Are self-signed certificates supported for Nextcloud?
No and they will not be. If you want to run it locally, without opening Nextcloud to the public internet, please have a look at the [local instance documentation](./local-instance.md).
### Can I use an ip-address for Nextcloud instead of a domain?
No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md)
### Can I use AIO with multiple domains?
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.

View File

@@ -145,6 +145,8 @@ To make the config work you can run the following command:
<summary>click here to expand</summary>
**Hint:** You may have a look at [this guide](https://github.com/nextcloud/all-in-one/discussions/575#discussion-4055615) for a more complete but possibly outdated example.
Add this to your Caddyfile:
```
@@ -204,6 +206,9 @@ For a reverse proxy example guide for Citrix ADC VPX / Citrix Netscaler, see thi
<summary>click here to expand</summary>
**Hint:** You may have a look at [this guide](https://github.com/nextcloud/all-in-one/discussions/2845#discussioncomment-6423237) for a more complete but possibly outdated example.
Although it does not seem like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. Please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding. Here is then how to make it work:
1. Install the Cloudflare Tunnel on the same machine where AIO will be running on and point the Tunnel with the domain that you want to use for AIO to `http://localhost:11000`.<br>
@@ -317,6 +322,8 @@ backend Nextcloud
<summary>click here to expand</summary>
**Hint:** You may have a look at [this guide](https://github.com/nextcloud/all-in-one/discussions/588#discussioncomment-2811152) for a more complete but possibly outdated example.
**Disclaimer:** This config was tested and should normally work on all modern Nginx versions. Improvements to the config are very welcome!
Add the below template to your Nginx config.
@@ -401,8 +408,6 @@ server {
⚠️ **Please note:** look into [this](#adapting-the-sample-web-server-configurations-below) to adapt the above example configuration.
**Advice:** You may have a look at [this](https://github.com/nextcloud/all-in-one/discussions/588#discussioncomment-2811152) for a more complete example.
</details>
### Nginx-Proxy-Manager - NPM
@@ -411,6 +416,8 @@ server {
<summary>click here to expand</summary>
**Hint:** You may have a look at [this guide](https://github.com/nextcloud/all-in-one/discussions/588#discussioncomment-3040493) for a more complete but possibly oudated example.
First, make sure the environmental variables `PUID` and `PGID` in the `compose.yaml` file for NPM are either unset or set to `0`.
If you need to change the GID/PID then please add `net.ipv4.ip_unprivileged_port_start=0` at the end of `/etc/sysctl.conf`. Note: this will cause that non root users can bind privileged ports.
@@ -560,6 +567,8 @@ See these screenshots for a working config:
<summary>click here to expand</summary>
**Hint:** You may have a look at [this video](https://www.youtube.com/watch?v=VLPSRrLMDmA) for a more complete but possibly outdated example.
**Disclaimer:** it might be possible that the config below is not working 100% correctly, yet. Improvements to it are very welcome!
Traefik's building blocks (router, service, middlewares) need to be defined using dynamic configuration similar to [this](https://doc.traefik.io/traefik/providers/file/#configuration-examples) official Traefik configuration example. Using **docker labels _won't work_** because of the nature of the project.
@@ -638,7 +647,6 @@ The examples below define the dynamic configuration in YAML files. If you rather
---
⚠️ **Please note:** look into [this](#adapting-the-sample-web-server-configurations-below) to adapt the above example configuration.
**Hint**: see https://www.youtube.com/watch?v=VLPSRrLMDmA for a video on configuring Traefik.
</details>
@@ -710,6 +718,17 @@ Add the following `web.config` file to the root of the site you created as the r
</details>
### Tailscale
<details>
<summary>click here to expand</summary>
For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
</details>
### Others
<details>