mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-22 11:20:13 +00:00
Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d55723dbea | ||
|
|
97b3f8465a | ||
|
|
f14a271bbc | ||
|
|
0eda1f9e9c | ||
|
|
224feef3e3 | ||
|
|
1acdfe05e1 | ||
|
|
a915227029 | ||
|
|
8f670a2939 | ||
|
|
d1e5e3e28f | ||
|
|
e13d6d73e5 | ||
|
|
78c1a63dfe | ||
|
|
17a19f0bae | ||
|
|
2978ba98c5 | ||
|
|
0ee7928181 | ||
|
|
27c783da9c | ||
|
|
48c0b74c4f | ||
|
|
faff549b53 | ||
|
|
8380ee5262 | ||
|
|
d750d7cfd5 | ||
|
|
05facb91a1 | ||
|
|
6a0432177a | ||
|
|
e945d5b58b | ||
|
|
e7f98c0957 | ||
|
|
cc6486ae2f | ||
|
|
64b1951f4f | ||
|
|
78b0e0042b | ||
|
|
2416b85f9d | ||
|
|
fd3f6d9018 | ||
|
|
6bc2d1d6ae | ||
|
|
75eb2fd7aa | ||
|
|
edb70a1471 | ||
|
|
c844b4dbef | ||
|
|
b866fe25db | ||
|
|
973d503212 | ||
|
|
fea71433c8 | ||
|
|
45e87ca05a | ||
|
|
15e69ec433 | ||
|
|
b54ff9503a | ||
|
|
995fca1ba6 | ||
|
|
4c7f842cb2 | ||
|
|
f7eaa74768 | ||
|
|
b5469ad372 | ||
|
|
48f6d8317a | ||
|
|
f0bf35e57c | ||
|
|
d8e3c83afc | ||
|
|
1f2920633d | ||
|
|
7254120e6c | ||
|
|
0808ab7dca | ||
|
|
99a0069460 | ||
|
|
187d86619a | ||
|
|
9ac868f636 | ||
|
|
c603b17625 |
2
.github/workflows/dependency-updates.yml
vendored
2
.github/workflows/dependency-updates.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
php-version: 8.3
|
||||
extensions: apcu
|
||||
- name: Run dependency update script
|
||||
run: |
|
||||
|
||||
2
.github/workflows/lint-php.yml
vendored
2
.github/workflows/lint-php.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.2" ]
|
||||
php-versions: [ "8.3" ]
|
||||
|
||||
name: php-lint
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up php8.2
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
php-version: 8.3
|
||||
extensions: apcu
|
||||
coverage: none
|
||||
|
||||
|
||||
4
.github/workflows/psalm-update-baseline.yml
vendored
4
.github/workflows/psalm-update-baseline.yml
vendored
@@ -12,10 +12,10 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up php8.2
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
php-version: 8.3
|
||||
extensions: apcu
|
||||
coverage: none
|
||||
|
||||
|
||||
2
.github/workflows/psalm.yml
vendored
2
.github/workflows/psalm.yml
vendored
@@ -31,7 +31,7 @@ jobs:
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
php-version: 8.3
|
||||
extensions: apcu
|
||||
coverage: none
|
||||
ini-file: development
|
||||
|
||||
2
.github/workflows/twig-lint.yml
vendored
2
.github/workflows/twig-lint.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.2
|
||||
php-version: 8.3
|
||||
extensions: apcu
|
||||
coverage: none
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ Listen 8000
|
||||
SetHandler "proxy:fcgi://${NEXTCLOUD_HOST}:9000"
|
||||
</FilesMatch>
|
||||
|
||||
<Proxy "fcgi://${NEXTCLOUD_HOST}:9000" flushpackets=on>
|
||||
</Proxy>
|
||||
|
||||
# Enable Brotli compression for js, css and svg files - other plain files are compressed by Nextcloud by default
|
||||
<IfModule mod_brotli.c>
|
||||
AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript application/x-javascript text/css image/svg+xml
|
||||
@@ -37,10 +40,6 @@ Listen 8000
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
# Fix zero file sizes
|
||||
# See https://github.com/nextcloud/server/issues/3056#issuecomment-954209565
|
||||
SetEnv proxy-sendcl 1
|
||||
|
||||
# See https://httpd.apache.org/docs/current/en/mod/core.html#limitrequestbody
|
||||
LimitRequestBody ${APACHE_MAX_SIZE}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
|
||||
FROM clamav/clamav:1.3.0-40
|
||||
FROM clamav/clamav:1.3.0-41
|
||||
|
||||
COPY clamav.conf /tmp/clamav.conf
|
||||
|
||||
|
||||
@@ -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:23.05.9.2.1
|
||||
FROM collabora/code:23.05.9.3.1
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM golang:1.22.0-alpine3.18 as go
|
||||
FROM golang:1.22.1-alpine3.18 as go
|
||||
|
||||
ENV IMAGINARY_HASH 6cd9edd1d3fb151eb773c14552886e4fc8e50138
|
||||
|
||||
@@ -23,9 +23,11 @@ RUN set -ex; \
|
||||
vips-magick \
|
||||
vips-heif \
|
||||
vips-jxl \
|
||||
vips-poppler
|
||||
vips-poppler \
|
||||
bash
|
||||
|
||||
COPY --from=go /go/bin/imaginary /usr/local/bin/imaginary
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
ENV PORT 9000
|
||||
|
||||
@@ -33,7 +35,7 @@ USER nobody
|
||||
|
||||
# https://github.com/h2non/imaginary#memory-issues
|
||||
ENV MALLOC_ARENA_MAX=2
|
||||
ENTRYPOINT ["imaginary", "-return-size", "-max-allowed-resolution", "222.2"]
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
|
||||
HEALTHCHECK CMD nc -z localhost "$PORT" || exit 1
|
||||
LABEL com.centurylinklabs.watchtower.enable="false"
|
||||
|
||||
8
Containers/imaginary/start.sh
Normal file
8
Containers/imaginary/start.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Imaginary has started"
|
||||
if [ -z "$IMAGINARY_SECRET" ]; then
|
||||
imaginary -return-size -max-allowed-resolution 222.2 "$@"
|
||||
else
|
||||
imaginary -return-size -max-allowed-resolution 222.2 -key "$IMAGINARY_SECRET" "$@"
|
||||
fi
|
||||
@@ -5,8 +5,8 @@ FROM docker:25.0.3-cli as docker
|
||||
# Caddy is a requirement
|
||||
FROM caddy:2.7.6-alpine as caddy
|
||||
|
||||
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.19/fpm/Dockerfile
|
||||
FROM php:8.2.16-fpm-alpine3.19
|
||||
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.19/fpm/Dockerfile
|
||||
FROM php:8.3.3-fpm-alpine3.19
|
||||
|
||||
EXPOSE 80
|
||||
EXPOSE 8080
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM php:8.1.27-fpm-alpine3.19
|
||||
FROM php:8.2.16-fpm-alpine3.19
|
||||
|
||||
ENV PHP_MEMORY_LIMIT 512M
|
||||
ENV PHP_UPLOAD_LIMIT 10G
|
||||
@@ -7,7 +7,7 @@ ENV PHP_MAX_TIME 3600
|
||||
ENV SOURCE_LOCATION /usr/src/nextcloud
|
||||
|
||||
# AIO settings start # Do not remove or change this line!
|
||||
ENV NEXTCLOUD_VERSION 27.1.7
|
||||
ENV NEXTCLOUD_VERSION 28.0.3
|
||||
ENV AIO_TOKEN 123456
|
||||
ENV AIO_URL localhost
|
||||
COPY supervisord.conf /supervisord.conf
|
||||
@@ -58,6 +58,7 @@ RUN set -ex; \
|
||||
; \
|
||||
\
|
||||
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \
|
||||
docker-php-ext-configure ftp --with-openssl-dir=/usr; \
|
||||
docker-php-ext-configure ldap; \
|
||||
docker-php-ext-install -j "$(nproc)" \
|
||||
bcmath \
|
||||
@@ -169,6 +170,7 @@ RUN set -ex; \
|
||||
bz2 \
|
||||
imap \
|
||||
pgsql \
|
||||
ftp \
|
||||
; \
|
||||
pecl install smbclient; \
|
||||
docker-php-ext-enable smbclient; \
|
||||
|
||||
@@ -327,6 +327,8 @@ DATADIR_PERMISSION_CONF
|
||||
|
||||
# Apply other settings
|
||||
echo "Applying other settings..."
|
||||
# Add missing indices after new installation because they seem to be missing on new installation
|
||||
php /var/www/html/occ db:add-missing-indices
|
||||
php /var/www/html/occ config:system:set upgrade.disable-web --type=bool --value=true
|
||||
php /var/www/html/occ config:system:set mail_smtpmode --value="smtp"
|
||||
php /var/www/html/occ config:system:set trashbin_retention_obligation --value="auto, 30"
|
||||
@@ -490,6 +492,10 @@ 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
|
||||
# Set maintenance window so that no warning is shown in the admin overview
|
||||
if [ -z "$(php /var/www/html/occ config:system:get maintenance_window_start)" ]; then
|
||||
php /var/www/html/occ config:system:set maintenance_window_start --type=int --value=100
|
||||
fi
|
||||
|
||||
# Apply network settings
|
||||
echo "Applying network settings..."
|
||||
@@ -699,6 +705,7 @@ fi
|
||||
if [ "$IMAGINARY_ENABLED" = 'yes' ]; then
|
||||
php /var/www/html/occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\Imaginary"
|
||||
php /var/www/html/occ config:system:set preview_imaginary_url --value="http://$IMAGINARY_HOST:9000"
|
||||
php /var/www/html/occ config:system:set preview_imaginary_key --value="$IMAGINARY_SECRET"
|
||||
else
|
||||
if [ -n "$(php /var/www/html/occ config:system:get preview_imaginary_url)" ]; then
|
||||
php /var/www/html/occ config:system:delete enabledPreviewProviders 0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Nextcloud All-in-One</name>
|
||||
<summary>Provides a login link for admins.</summary>
|
||||
<description>Add a link to the admin settings that gives access to the Nextcloud All-in-One admin interface</description>
|
||||
<version>0.4.0</version>
|
||||
<version>0.5.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Azul</author>
|
||||
<namespace>AllInOne</namespace>
|
||||
@@ -13,7 +13,7 @@
|
||||
<category>monitoring</category>
|
||||
<bugs>https://github.com/nextcloud/all-in-one/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="26" max-version="27"/>
|
||||
<nextcloud min-version="27" max-version="28"/>
|
||||
</dependencies>
|
||||
|
||||
<settings>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## Caddy with geoblocking
|
||||
This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed.
|
||||
This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed.
|
||||
|
||||
### Notes
|
||||
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
|
||||
@@ -7,6 +7,7 @@ This container bundles caddy and auto-configures it for you. It also covers http
|
||||
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, make sure that you point `bw.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
|
||||
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart, make sure that you point `mail.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for stalwart.
|
||||
- After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active!
|
||||
- You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup.
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
### Repository
|
||||
|
||||
39
community-containers/jellyfin/jellyfin.json
Normal file
39
community-containers/jellyfin/jellyfin.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-jellyfin",
|
||||
"display_name": "Jellyfin",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin",
|
||||
"image": "jellyfin/jellyfin",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "host",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_jellyfin",
|
||||
"destination": "/config",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/media",
|
||||
"writeable": false
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_MOUNT%",
|
||||
"destination": "%NEXTCLOUD_MOUNT%",
|
||||
"writeable": false
|
||||
}
|
||||
],
|
||||
"devices": [
|
||||
"/dev/dri"
|
||||
],
|
||||
"backup_volumes": [
|
||||
"nextcloud_aio_jellyfin"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
community-containers/jellyfin/readme.md
Normal file
18
community-containers/jellyfin/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
## Jellyfin
|
||||
This container bundles Jellyfin and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- This container is incompatible with the [Plex](https://github.com/nextcloud/all-in-one/tree/main/community-containers/plex) community container. So make sure that you do not enable both at the same time!
|
||||
- This container does not work on Docker Desktop since it needs `network_mode: host` in order to work correctly.
|
||||
- After adding and starting the container, you can directly visit http://ip.address.of.server:8096/ and access your new Jellyfin instance!
|
||||
- In order to access your Jellyfin outside the local network, you have to set up your own reverse proxy. You can set up a reverse proxy following [these instructions](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md) and [Jellyfin's networking documentation](https://jellyfin.org/docs/general/networking/#running-jellyfin-behind-a-reverse-proxy), OR use the [Caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container that will automatically configure `media.$NC_DOMAIN` to redirect to your Jellyfin.
|
||||
- ⚠️ After the initial start, Jellyfin shows a configuration page to set up the root password, etc. **Be careful to initialize your Jellyfin before adding the DNS record.**
|
||||
- The data of Jellyfin will be automatically included in AIO's backup solution!
|
||||
- See [here](https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers) how to add it to the AIO stack.
|
||||
|
||||
|
||||
### Repository
|
||||
https://github.com/jellyfin/jellyfin
|
||||
|
||||
### Maintainer
|
||||
https://github.com/airopi
|
||||
@@ -5,7 +5,7 @@
|
||||
"display_name": "Local AI",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai",
|
||||
"image": "szaimen/aio-local-ai",
|
||||
"image_tag": "v1",
|
||||
"image_tag": "v2",
|
||||
"internal_port": "8080",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
This container bundles Local AI and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- Make sure to have enough storage space available. This container alone needs ~14GB storage on x64, on arm64 only ~4GB. Every model that you add to `models.yaml` will of course use additional space which adds up quite fast.
|
||||
- This container does not work on arm64! If you add the container on arm64, it will fail to start because no image for arm64 is available!
|
||||
- Make sure to have enough storage space available. This container alone needs ~14GB storage. Every model that you add to `models.yaml` will of course use additional space which adds up quite fast.
|
||||
- After the container was started the first time, you should see a new `nextcloud-aio-local-ai` folder when you open the files app with the default `admin` user. In there you should see a `models.yaml` config file. You can now add models in there. Please refer [here](https://github.com/go-skynet/model-gallery/blob/main/index.yaml) where you can get further urls that you can put in there. Afterwards restart all containers from the AIO interface and the models should automatically get downloaded by the local-ai container and activated.
|
||||
- Example for content of `models.yaml` (if you add all of them, it takes around 10GB additional space):
|
||||
```yaml
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
This container bundles Plex and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- This container is incompatible with the [Jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) community container. So make sure that you do not enable both at the same time!
|
||||
- This is not working on arm64 since Plex does only provide x64 docker images.
|
||||
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
|
||||
- If you have a firewall like ufw configured, you might need to open all Plex ports in there first in order to make it work. Especially port 32400 is important!
|
||||
|
||||
@@ -33,7 +33,7 @@ The procedure for migrating the files and the database works like this:
|
||||
```
|
||||
1. Create a new database by running:
|
||||
```
|
||||
export PG_USER="ncadmin"
|
||||
export PG_USER="ncadmin" # This is a temporary user that gets created for the dump but is then overwritten by the correct one later on
|
||||
export PG_PASSWORD="my-temporary-password"
|
||||
export PG_DATABASE="nextcloud_db"
|
||||
sudo -u postgres psql <<END
|
||||
@@ -69,7 +69,7 @@ The procedure for migrating the files and the database works like this:
|
||||
1. Now save the file by pressing `[CTRL] + [o]` then `[ENTER]` and close nano by pressing `[CTRL] + [x]`
|
||||
1. In order to make sure that everything is good, you can now run `grep "/your/old/datadir" database-dump.sql` which should not bring up further results.<br>
|
||||
1. **Please note:** Unfortunately it is not possible to import a database dump from a former database owner with the name `nextcloud`. You can check if that is the case with this command: `grep "Name: oc_appconfig; Type: TABLE; Schema: public; Owner:" database-dump.sql | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g'`. If it returns `nextcloud`, you need to rename the owner in the dump file manually. A command like the following should work, however please note that it is possible that it will overwrite wrong lines. You can thus first check which lines it will change with `grep "Owner: nextcloud$" database-dump.sql`. If only correct looking lines get returned, feel free to change them with `sed -i 's|Owner: nextcloud$|Owner: ncadmin|' database-dump.sql`.
|
||||
The same applies for the second statement, check with `grep " OWNER TO nextcloud;$" database-dump.sql` and replace with `sed -i 's| OWNER TO nextcloud;$| OWNER TO ncadmin;$|' database-dump.sql`.
|
||||
The same applies for the second statement, check with `grep " OWNER TO nextcloud;$" database-dump.sql` and replace with `sed -i 's| OWNER TO nextcloud;$| OWNER TO ncadmin;|' database-dump.sql`.
|
||||
1. Next, copy the database dump into the correct place and prepare the database container which will import from the database dump automatically the next container start:
|
||||
```
|
||||
sudo docker run --rm --volume nextcloud_aio_database_dump:/mnt/data:rw alpine rm /mnt/data/database-dump.sql
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: nextcloud-aio-helm-chart
|
||||
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
|
||||
version: 7.13.0
|
||||
version: 7.13.1
|
||||
apiVersion: v2
|
||||
keywords:
|
||||
- latest
|
||||
|
||||
@@ -13,6 +13,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -59,13 +61,17 @@ spec:
|
||||
value: nextcloud-aio-talk
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-apache:20240228_172209-latest
|
||||
image: nextcloud/aio-apache:20240308_092935-latest
|
||||
name: nextcloud-aio-apache
|
||||
ports:
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
protocol: TCP
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
protocol: UDP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -14,6 +14,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -50,11 +52,15 @@ spec:
|
||||
value: "90"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-clamav:20240228_172209-latest
|
||||
image: nextcloud/aio-clamav:20240308_092935-latest
|
||||
name: nextcloud-aio-clamav
|
||||
ports:
|
||||
- containerPort: 3310
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/clamav
|
||||
subPath: data
|
||||
|
||||
@@ -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:20240228_172209-latest
|
||||
image: nextcloud/aio-collabora:20240308_092935-latest
|
||||
name: nextcloud-aio-collabora
|
||||
ports:
|
||||
- containerPort: 9980
|
||||
@@ -46,4 +46,6 @@ spec:
|
||||
capabilities:
|
||||
add:
|
||||
- MKNOD
|
||||
drop:
|
||||
- NET_RAW
|
||||
{{- end }}
|
||||
|
||||
@@ -13,6 +13,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -61,11 +63,15 @@ spec:
|
||||
value: nextcloud
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-postgresql:20240228_172209-latest
|
||||
image: nextcloud/aio-postgresql:20240308_092935-latest
|
||||
name: nextcloud-aio-database
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql/data
|
||||
subPath: data
|
||||
|
||||
@@ -14,6 +14,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -55,11 +57,15 @@ spec:
|
||||
value: basic
|
||||
- name: xpack.security.enabled
|
||||
value: "false"
|
||||
image: nextcloud/aio-fulltextsearch:20240228_172209-latest
|
||||
image: nextcloud/aio-fulltextsearch:20240308_092935-latest
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/elasticsearch/data
|
||||
name: nextcloud-aio-elasticsearch
|
||||
|
||||
@@ -27,7 +27,7 @@ spec:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-imaginary:20240228_172209-latest
|
||||
image: nextcloud/aio-imaginary:20240308_092935-latest
|
||||
name: nextcloud-aio-imaginary
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
@@ -36,4 +36,6 @@ spec:
|
||||
capabilities:
|
||||
add:
|
||||
- SYS_NICE
|
||||
drop:
|
||||
- NET_RAW
|
||||
{{- end }}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{{- if ne .Values.NAMESPACE "default" }}
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: "{{ .Values.NAMESPACE }}"
|
||||
namespace: "{{ .Values.NAMESPACE }}"
|
||||
{{- end }}
|
||||
|
||||
@@ -13,6 +13,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -158,13 +160,17 @@ spec:
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
- name: UPDATE_NEXTCLOUD_APPS
|
||||
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
|
||||
image: nextcloud/aio-nextcloud:20240228_172209-latest
|
||||
image: nextcloud/aio-nextcloud:20240308_092935-latest
|
||||
name: nextcloud-aio-nextcloud
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
protocol: TCP
|
||||
- containerPort: 9001
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -13,6 +13,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -50,11 +52,15 @@ spec:
|
||||
value: nextcloud-aio-redis
|
||||
- name: REDIS_HOST_PASSWORD
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
image: nextcloud/aio-notify-push:20240228_172209-latest
|
||||
image: nextcloud/aio-notify-push:20240308_092935-latest
|
||||
name: nextcloud-aio-notify-push
|
||||
ports:
|
||||
- containerPort: 7867
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -14,6 +14,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -43,11 +45,15 @@ spec:
|
||||
value: "{{ .Values.ONLYOFFICE_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-onlyoffice:20240228_172209-latest
|
||||
image: nextcloud/aio-onlyoffice:20240308_092935-latest
|
||||
name: nextcloud-aio-onlyoffice
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/onlyoffice
|
||||
name: nextcloud-aio-onlyoffice
|
||||
|
||||
@@ -13,6 +13,8 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
@@ -38,11 +40,15 @@ spec:
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-redis:20240228_172209-latest
|
||||
image: nextcloud/aio-redis:20240308_092935-latest
|
||||
name: nextcloud-aio-redis
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: nextcloud-aio-redis
|
||||
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
value: "{{ .Values.TURN_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk:20240228_172209-latest
|
||||
image: nextcloud/aio-talk:20240308_092935-latest
|
||||
name: nextcloud-aio-talk
|
||||
ports:
|
||||
- containerPort: {{ .Values.TALK_PORT }}
|
||||
@@ -46,4 +46,8 @@ spec:
|
||||
protocol: UDP
|
||||
- containerPort: 8081
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
{{- end }}
|
||||
|
||||
@@ -33,9 +33,13 @@ spec:
|
||||
value: "{{ .Values.RECORDING_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk-recording:20240228_172209-latest
|
||||
image: nextcloud/aio-talk-recording:20240308_092935-latest
|
||||
name: nextcloud-aio-talk-recording
|
||||
ports:
|
||||
- containerPort: 1234
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- NET_RAW
|
||||
{{- end }}
|
||||
|
||||
@@ -214,14 +214,14 @@ find ./ -name '*service.yaml' -exec sed -i "/^spec:/a\ \ ipFamilyPolicy: PreferD
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*.yaml' -exec sed -i "s|'{{|\"{{|g;s|}}'|}}\"|g" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*.yaml' -exec sed -i "/type: Recreate/d" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*.yaml' -exec sed -i "/strategy:/d" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ \( -not -name '*service.yaml' -name '*.yaml' \) -exec sed -i "/^status:/d" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ \( -not -name '*persistentvolumeclaim.yaml' -name '*.yaml' \) -exec sed -i "/resources:/d" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name "*namespace.yaml" -exec sed -i "1i\\{{- if ne .Values.NAMESPACE \"default\" }}" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name "*namespace.yaml" -exec sed -i "$ a {{- end }}" \{} \;
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*.yaml' -exec sed -i "/creationTimestamp: null/d" \{} \;
|
||||
VOLUMES="$(find ./ -name '*persistentvolumeclaim.yaml' | sed 's|-persistentvolumeclaim.yaml||g;s|.*nextcloud-aio-||g' | sort)"
|
||||
mapfile -t VOLUMES <<< "$VOLUMES"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "8.2.*",
|
||||
"php": "8.3.*",
|
||||
"ext-json": "*",
|
||||
"ext-sodium": "*",
|
||||
"ext-curl": "*",
|
||||
@@ -22,6 +22,6 @@
|
||||
"psalm": "psalm --threads=1",
|
||||
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
|
||||
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l {} \\;",
|
||||
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.2 \\;"
|
||||
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.3 \\;"
|
||||
}
|
||||
}
|
||||
|
||||
28
php/composer.lock
generated
28
php/composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "b0074cfbf6b5cde6d6d2207286ad2e85",
|
||||
"content-hash": "4dcdd3b6df3f2041895d4db74bd45102",
|
||||
"packages": [
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
@@ -1148,16 +1148,16 @@
|
||||
},
|
||||
{
|
||||
"name": "slim/slim",
|
||||
"version": "4.12.0",
|
||||
"version": "4.13.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Slim.git",
|
||||
"reference": "e9e99c2b24398b967841c6c4c3048622cc7e2b18"
|
||||
"reference": "038fd5713d5a41636fdff0e8dcceedecdd17fc17"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim/zipball/e9e99c2b24398b967841c6c4c3048622cc7e2b18",
|
||||
"reference": "e9e99c2b24398b967841c6c4c3048622cc7e2b18",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim/zipball/038fd5713d5a41636fdff0e8dcceedecdd17fc17",
|
||||
"reference": "038fd5713d5a41636fdff0e8dcceedecdd17fc17",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1166,7 +1166,7 @@
|
||||
"php": "^7.4 || ^8.0",
|
||||
"psr/container": "^1.0 || ^2.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.1",
|
||||
"psr/http-message": "^1.1 || ^2.0",
|
||||
"psr/http-server-handler": "^1.0",
|
||||
"psr/http-server-middleware": "^1.0",
|
||||
"psr/log": "^1.1 || ^2.0 || ^3.0"
|
||||
@@ -1174,19 +1174,19 @@
|
||||
"require-dev": {
|
||||
"adriansuter/php-autoload-override": "^1.4",
|
||||
"ext-simplexml": "*",
|
||||
"guzzlehttp/psr7": "^2.5",
|
||||
"guzzlehttp/psr7": "^2.6",
|
||||
"httpsoft/http-message": "^1.1",
|
||||
"httpsoft/http-server-request": "^1.1",
|
||||
"laminas/laminas-diactoros": "^2.17",
|
||||
"laminas/laminas-diactoros": "^2.17 || ^3",
|
||||
"nyholm/psr7": "^1.8",
|
||||
"nyholm/psr7-server": "^1.0",
|
||||
"phpspec/prophecy": "^1.17",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"nyholm/psr7-server": "^1.1",
|
||||
"phpspec/prophecy": "^1.19",
|
||||
"phpspec/prophecy-phpunit": "^2.1",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"slim/http": "^1.3",
|
||||
"slim/psr7": "^1.6",
|
||||
"squizlabs/php_codesniffer": "^3.7"
|
||||
"squizlabs/php_codesniffer": "^3.9"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-simplexml": "Needed to support XML format in BodyParsingMiddleware",
|
||||
@@ -1259,7 +1259,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-07-23T04:54:29+00:00"
|
||||
"time": "2024-03-03T21:25:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/twig-view",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "8.2.*",
|
||||
"php": "8.3.*",
|
||||
"ext-json": "*",
|
||||
"ext-sodium": "*",
|
||||
"ext-curl": "*",
|
||||
|
||||
@@ -146,7 +146,8 @@
|
||||
"NEXTCLOUD_PASSWORD",
|
||||
"TURN_SECRET",
|
||||
"SIGNALING_SECRET",
|
||||
"FULLTEXTSEARCH_PASSWORD"
|
||||
"FULLTEXTSEARCH_PASSWORD",
|
||||
"IMAGINARY_SECRET"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
@@ -220,7 +221,8 @@
|
||||
"APACHE_PORT=%APACHE_PORT%",
|
||||
"APACHE_IP_BINDING=%APACHE_IP_BINDING%",
|
||||
"ADDITIONAL_TRUSTED_PROXY=%CADDY_IP_ADDRESS%",
|
||||
"THIS_IS_AIO=true"
|
||||
"THIS_IS_AIO=true",
|
||||
"IMAGINARY_SECRET=%IMAGINARY_SECRET%"
|
||||
],
|
||||
"stop_grace_period": 600,
|
||||
"restart": "unless-stopped",
|
||||
@@ -646,7 +648,8 @@
|
||||
],
|
||||
"internal_port": "9000",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%"
|
||||
"TZ=%TIMEZONE%",
|
||||
"IMAGINARY_SECRET=%IMAGINARY_SECRET%"
|
||||
],
|
||||
"restart": "unless-stopped",
|
||||
"cap_add": [
|
||||
@@ -664,6 +667,9 @@
|
||||
"read_only": true,
|
||||
"tmpfs": [
|
||||
"/tmp"
|
||||
],
|
||||
"secrets": [
|
||||
"IMAGINARY_SECRET"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -566,6 +566,9 @@ class DockerActionManager
|
||||
}
|
||||
$mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
|
||||
}
|
||||
// Special things for the caddy community container
|
||||
} elseif ($container->GetIdentifier() === 'nextcloud-aio-caddy') {
|
||||
$requestBody['HostConfig']['ExtraHosts'] = ['host.docker.internal:host-gateway'];
|
||||
}
|
||||
|
||||
if (count($mounts) > 0) {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
<h1>Nextcloud AIO v7.13.1</h1>
|
||||
<h1>Nextcloud AIO v8.0.0</h1>
|
||||
|
||||
{# Add 2nd tab warning #}
|
||||
<script type="text/javascript" src="second-tab-warning.js"></script>
|
||||
@@ -28,7 +28,7 @@
|
||||
{% set isBackupOrRestoreRunning = false %}
|
||||
{% set isApacheStarting = false %}
|
||||
{# Setting newMajorVersion to '' will hide corresponding options/elements, can be set to an integer like 26 in order to show corresponding elements. If set, also increase installLatestMajor in https://github.com/nextcloud/all-in-one/blob/main/php/src/Controller/DockerController.php #}
|
||||
{% set newMajorVersion = 28 %}
|
||||
{% set newMajorVersion = '' %}
|
||||
|
||||
{% if is_backup_container_running == true %}
|
||||
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
|
||||
|
||||
Reference in New Issue
Block a user