Compare commits

..

11 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] ee72a128a9 reuse: move helm chart and sample.conf SPDX headers to REUSE.toml; fix workflow license
Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 13:00:54 +00:00
copilot-swe-agent[bot] b1046f0269 reuse: fix PHP files to keep declare(strict_types=1) directly after <?php
Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 13:00:48 +00:00
copilot-swe-agent[bot] 4f43a212c3 reuse: fix Dockerfiles to keep # syntax= directive on line 1
Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 13:00:44 +00:00
copilot-swe-agent[bot] 0098c23e0d reuse: add AUTHORS.md with all contributors
Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:14:00 +00:00
copilot-swe-agent[bot] 06940f8e66 reuse: add SPDX headers to remaining root-level files
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:48 +00:00
copilot-swe-agent[bot] efb037f48b reuse: add SPDX headers to app, community-containers, helm chart, and docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:44 +00:00
copilot-swe-agent[bot] a2f5895265 reuse: add SPDX headers to PHP source files, templates, and JS/CSS
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:37 +00:00
copilot-swe-agent[bot] ac02e17a20 reuse: add SPDX headers to container config files
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:31 +00:00
copilot-swe-agent[bot] 9c1a086642 reuse: add SPDX headers to Dockerfiles and container shell scripts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:26 +00:00
copilot-swe-agent[bot] 000248d67a reuse: add REUSE.toml with annotations for binary, JSON, and vendor files
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:10:22 +00:00
copilot-swe-agent[bot] b0845e1f02 reuse: add LICENSES directory with AGPL-3.0-only, AGPL-3.0-or-later, and MIT license texts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
2026-05-11 10:05:32 +00:00
269 changed files with 3054 additions and 1621 deletions
-20
View File
@@ -1,20 +0,0 @@
# https://editorconfig.org
# Tip: to find files violating the rules set out here, run `docker run --rm --volume=$PWD:/check mstruebing/editorconfig-checker`
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.yaml]
indent_size = 2
[*.yml]
indent_size = 2
+5
View File
@@ -1,3 +1,8 @@
<!--
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
--- ---
name: 🐛 Bug report - no questions and no support! name: 🐛 Bug report - no questions and no support!
about: Help us improving by reporting a bug - this category is not for questions and also not for support! Please use one of the options below for questions and support about: Help us improving by reporting a bug - this category is not for questions and also not for support! Please use one of the options below for questions and support
@@ -1,3 +1,8 @@
<!--
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
--- ---
name: 📖 Existing feature/documentation enhancement name: 📖 Existing feature/documentation enhancement
about: Suggest an enhancement of an existing feature/documentation - for other types, please use the feature request option below about: Suggest an enhancement of an existing feature/documentation - for other types, please use the feature request option below
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: 📘 Documentation on Nextcloud AIO - name: 📘 Documentation on Nextcloud AIO
+3 -1
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
version: 2 version: 2
updates: updates:
- package-ecosystem: "github-actions" - package-ecosystem: "github-actions"
@@ -31,7 +34,6 @@ updates:
- "/Containers/collabora" - "/Containers/collabora"
- "/Containers/docker-socket-proxy" - "/Containers/docker-socket-proxy"
- "/Containers/domaincheck" - "/Containers/domaincheck"
- "/Containers/eurooffice"
- "/Containers/fulltextsearch" - "/Containers/fulltextsearch"
- "/Containers/imaginary" - "/Containers/imaginary"
- "/Containers/mastercontainer" - "/Containers/mastercontainer"
+5 -5
View File
@@ -1,10 +1,10 @@
<!--
SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
<!-- <!--
- 🚨 SECURITY INFO - 🚨 SECURITY INFO
- -
- Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/). This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime. - Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/). This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
--> -->
<!-- Please check the below checkmarks if applicable -->
- [ ] The PR was tested and verified that it works locally
- [ ] The PR was completely or partially created with AI
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
changelog: changelog:
categories: categories:
- title: 🏕 New features and other improvements - title: 🏕 New features and other improvements
+1 -4
View File
@@ -10,16 +10,13 @@ on:
jobs: jobs:
release: release:
# Do not run this workflow on forked repositories, as they might not have the `gh-pages` branch created, or might
# want to use it for other purposes than publishing helm charts
if: github.repository == 'nextcloud/all-in-one'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Turnstyle - name: Turnstyle
uses: softprops/turnstyle@e15e934b3f69ee283ba389ea05c8886baa656d93 # v2 uses: softprops/turnstyle@e565d2d86403c5d23533937e95980570545e5586 # v2
with: with:
continue-after-seconds: 180 continue-after-seconds: 180
env: env:
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
action: action:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: dessant/lock-threads@89ae32b08ed1a541efecbab17912962a5e38981c # v5 - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v5
with: with:
issue-inactive-days: '14' issue-inactive-days: '14'
process-only: 'issues' process-only: 'issues'
+2 -2
View File
@@ -30,9 +30,9 @@ jobs:
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with: with:
node-version: 24.15.0 node-version: lts/*
- name: Install dependencies - name: Install dependencies
run: cd php/tests && npm ci run: cd php/tests && npm ci
@@ -15,9 +15,9 @@ jobs:
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with: with:
node-version: 24.15.0 node-version: lts/*
- name: Install dependencies - name: Install dependencies
run: cd php/tests && npm ci run: cd php/tests && npm ci
+202
View File
@@ -0,0 +1,202 @@
<!--
SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
# Authors
All contributors to the Nextcloud All-in-One project. Thank you!
<!-- Generated from git log -->
- -Denux <timon.klinkert@gmail.com>
- 41it <137164547+41it@users.noreply.github.com>
- Adam Monsen <haircut@gmail.com>
- Adrian Gebhart <adrian@pestotoast.de>
- AiroPi (Pierre) <47398145+AiroPi@users.noreply.github.com>
- Alan Savage <asavageiv@users.noreply.github.com>
- Alexander Hörl <alexander.horl2@live.de>
- Alexander Müller <28591861+alexanderdd@users.noreply.github.com>
- Alexander Piskun <bigcat88@icloud.com>
- Alison McCue <gh@maladroit.me>
- Andrey Borysenko <andrey18106x@gmail.com>
- Andy George <andygeorge@users.noreply.github.com>
- Anth0rx <pascal@dengconsult.systems>
- Anton Podlozny <47890723+apodl1@users.noreply.github.com>
- Anupam Kumar <kyteinsky@gmail.com>
- Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
- Apoorv Parle <19315187+apparle@users.noreply.github.com>
- Arman The Parman <77603167+ArmanTheParman@users.noreply.github.com>
- Aytsuqi <141279848+Aytsuqi@users.noreply.github.com>
- BP <busta.pipes@gmail.com>
- Basti Qdoba <sebastian.chudoba@googlemail.com>
- Bastian <48765834+Cloudboom@users.noreply.github.com>
- Bastian Derigs <155444921+derigs@users.noreply.github.com>
- Ben Iofel <1713819+benwaffle@users.noreply.github.com>
- Benjamin Brahmer <info@b-brahmer.de>
- Braiden Psiuk <mail@braiden.dev>
- Brian Philipp <66728496+BR14Nx@users.noreply.github.com>
- Brouware <63195347+Brouware@users.noreply.github.com>
- Caio Barros <cgbarros@users.noreply.github.com>
- Copilot <198982749+Copilot@users.noreply.github.com>
- Daniel Calviño Sánchez <danxuliu@gmail.com>
- Daniel Hartmann <60435198+hartmann-daniel@users.noreply.github.com>
- David <142408439+LinuxSpielKind@users.noreply.github.com>
- David Bradette <87823519+DavidBradette@users.noreply.github.com>
- David Hund <david.hund@gmail.com>
- David Mehren <git@herrmehren.de>
- Dennis R <dennis@elsysweyr.com>
- Duvio <can2004kaya@gmail.com>
- Emil Marklund <emil@btlcomputing.com>
- Erwan Hervé <62173453+Erwan-loot@users.noreply.github.com>
- FaySmash <30392780+FaySmash@users.noreply.github.com>
- Felix Schäfer <felix@thegcat.net>
- Felix Stupp <felix.stupp@banananet.work>
- Fernando Ribeiro <fribeiro@fribeiro.org>
- Florian Latifi <mail@florian-latifi.at>
- Florian Wallner <asdf@walura.eu>
- Francesco Saltori <francescosaltori@gmail.com>
- FreDTV <70434961+Fred-DTV@users.noreply.github.com>
- Frederik Berg <fberg@posteo.de>
- Gerald Krause <gerald.d.krause@t-online.de>
- Gonçalo Pereira <goncalo_pereira@outlook.pt>
- Hannes Franke <hannes.franke@tu-dortmund.de>
- HedgeShot <HedgeShot@users.noreply.github.com>
- Hoang Pham <hoangmaths96@gmail.com>
- Ikko Eltociear Ashimine <eltociear@gmail.com>
- ItsQuadrus <quadrus.yt@gmail.com>
- JL102 <jordanlees@mailbox.org>
- JMarcosHP (Jehu Marcos Herrera Puentes) <jehuherrerap@hotmail.com>
- Jean-Yves <7360784+docjyJ@users.noreply.github.com>
- Jimmy Everling <jimmy@jimmyk.se>
- Jo <jonassauge@gmail.com>
- Joas Schilling <coding@schilljs.com>
- Joe Hanson <joe@veri.dev>
- John Molakvoæ <skjnldsv@protonmail.com>
- Jos Poortvliet <jospoortvliet@gmail.com>
- Joseph <jturnism@gmail.com>
- Josh <josh.t.richards@gmail.com>
- Joshua Hesketh <josh@hesketh.net.au>
- Julius Härtl <jus@bitgrid.net>
- Kai Biebel <38378574+seclution@users.noreply.github.com>
- Kain <26943220+kaincenteno@users.noreply.github.com>
- Kasim <kasim@rafique.co.uk>
- Killiane Letellier <killiane.letellier@mailo.com>
- Klaus15 <le_kluus@web.de>
- Lance <Gero3977@gmail.com>
- Lorenzo Marroccoli <lollo0296@gmail.com>
- Lorenzo Moscati <lorenzo@moscati.page>
- Lukas Reschke <lukas@statuscode.ch>
- Luotio <juha@luotio.net>
- ManOki <ManOki@users.noreply.github.com>
- Marc <github@wuast24.de>
- Marco Ambrosini <marcoambrosini@proton.me>
- Marius Quabeck <marius.quabeck@nextcloud.com>
- Martin Ligabue <martinligabue@gmail.com>
- Marvin von Papen <79196690+MarvvanPal@users.noreply.github.com>
- Maximilian Jakob Maag <maximilian.maag@outlook.de>
- Michael Keck <git@cr0ydon.com>
- Miguel Guthridge <hdsq@outlook.com.au>
- Mihai Coman <mihai.cmn@gmail.com>
- MondoGao <mondogao@gmail.com>
- Morrow Shore <97566823+MorrowShore@users.noreply.github.com>
- MrAn0nym <63542658+MrAn0nym@users.noreply.github.com>
- Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com>
- Nextcloud Team <contact@nextcloud.com>
- Nextcloud bot <bot@nextcloud.com>
- Nikolas Rimikis <25266387+Leptopoda@users.noreply.github.com>
- Nils K <24257556+septatrix@users.noreply.github.com>
- Oleksandr Piskun <oleksandr2088@icloud.com>
- Oleksii Zolotarevskyi <15846984+roundoutandabout@users.noreply.github.com>
- Olicorne (thiswillbeyourgithub) <26625900+thiswillbeyourgithub@users.noreply.github.com>
- Pablo Zmdl <pablo@nextcloud.com>
- Paul <devnoname120@gmail.com>
- Perlover <perlover@perlover.com>
- Peter van Dijk <peter@7bits.nl>
- Phil Mocek <pmocek-github@mocek.org>
- Philipp Fruck <dev@p-fruck.de>
- Pi-Farm <43029891+pi-farm@users.noreply.github.com>
- PreciousChicken <hello@preciouschicken.com>
- Prokop Schield <76836484+prokopschield@users.noreply.github.com>
- Quentin Lemeasle <quentinlemcode@gmail.com>
- Rahammetoela Toekiman <fusekai@outlook.com>
- Richard Steinmetz <richard@steinmetz.cloud>
- Robert Riemann <robert.riemann@edps.europa.eu>
- Robert Zilke <robert@zilke.dev>
- Ruben D. <ruben@winterrific.net>
- S1m <git@sgougeon.fr>
- Samuel Plumppu <6125097+Greenheart@users.noreply.github.com>
- Sergio Casero Hernández <soy@sergiocasero.es>
- Seth Deegan <jayandseth@gmail.com>
- Shantanu Tushar <shaan7in@gmail.com>
- Simon L. (szaimen) <szaimen@e.mail.de>
- SomeMichael <43578183+SomeMichael@users.noreply.github.com>
- Surfict <allexandre@itis.swiss>
- Syed Mishar Newaz <misharex.sezan@gmail.com>
- TheManchineel <37479927+TheManchineel@users.noreply.github.com>
- Thijs van der Woude <31108288+thijsvanderwoude@users.noreply.github.com>
- Thomas Lavocat <tlavocat@redhat.com>
- Thor Galle <thorgalle@gmail.com>
- Thorsten Schaefer <github@npath.de>
- Tim Diels <tim@diels.me>
- Tomas <16553087+michnovka@users.noreply.github.com>
- Tony F <goldstar611@hotmail.com>
- Valeriy Sotnikov <sotnikov.link@mail.ru>
- Varun Patil <varunpatil@ucla.edu>
- Verhoeckx <64807887+Verhoeckx@users.noreply.github.com>
- William Wong <46506352+tar-xz@users.noreply.github.com>
- Yannik Buerkle <mail@yannik-buerkle.de>
- Zakmaf <100925791+Zakmaf@users.noreply.github.com>
- Zhao Guangyu <62810902+ZhaoGY-N@users.noreply.github.com>
- Zoey <zoey@z0ey.de>
- Zxhir <98621617+Imzxhir@users.noreply.github.com>
- alexenica <alexenica@live.com>
- autoantwort <Leander.schulten@rwth-aachen.de>
- bentongxyz <60358804+bentongxyz@users.noreply.github.com>
- blu3acid <michael.muschner@mailbox.org>
- craigkh <74493036+craigkh@users.noreply.github.com>
- dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- derStephan <derStephan@users.noreply.github.com>
- derhagen <2806328+derhagen@users.noreply.github.com>
- dienteperro <dienteperro1207@yahoo.com>
- ernolf <raphael.gradenwitz@googlemail.com>
- esmith443 <119460913+esmith443@users.noreply.github.com>
- foegra <foegra@yahoo.com>
- gggeek <giunta.gaetano@gmail.com>
- grossamos <email@amosgross.com>
- hunhejj <hunhejj@gmail.com>
- iraklis10 <1414477+iraklis10@users.noreply.github.com>
- jameskimmel <17176225+jameskimmel@users.noreply.github.com>
- jr_blue_551 <johnrowe551@gmail.com>
- kri164 <52274164+kri164@users.noreply.github.com>
- kurt-mcrae <83569406+kurt-mcrae@users.noreply.github.com>
- lll <2844835+flll@users.noreply.github.com>
- marekschneider <marek@kms.onl>
- martin.mueller <martin.mueller@model-engineers.com>
- masterwoot <company+github.com@maganti.se>
- matiasdelellis <mati86dl@gmail.com>
- ncguk <inglenook@duck.com>
- nextcloud-command <nextcloud-command@users.noreply.github.com>
- ninoppp <101364396+ninoppp@users.noreply.github.com>
- notEvil <not_evil@rappold1.at>
- pailloM <56462552+pailloM@users.noreply.github.com>
- ph00lt0 <15004290+ph00lt0@users.noreply.github.com>
- ph818 <71797925+ph818@users.noreply.github.com>
- pun kyard <59349105+punkyard@users.noreply.github.com>
- roelofz <11368363+roelofz@users.noreply.github.com>
- roib20 <66280613+roib20@users.noreply.github.com>
- rugk <rugk+git@posteo.de>
- sjjh <2787214+sjjh@users.noreply.github.com>
- spatterlight <81454789+spatterIight@users.noreply.github.com>
- stefano99 <falchi.stefi@gmail.com>
- steffenmalisi <steffenmalisi@users.noreply.github.com>
- sunjam <sunjam@users.noreply.github.com>
- ten0hira <85587841+ten0hira@users.noreply.github.com>
- thigg <thigg@users.noreply.github.com>
- tofuwabohu <66644064+tofuwabohu@users.noreply.github.com>
- turtleinarock <s.senn14@gmail.com>
- tyleraharrison <tyleraharrison@gmail.com>
- wky0211 <46506352+wky0211@users.noreply.github.com>
- xis <xis@schowek.net>
- zybster <zybster@gmail.com>
- Álvaro Brey <alvaro.brey@nextcloud.com>
+2
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM alpine:3.23.4 FROM alpine:3.23.4
RUN set -ex; \ RUN set -ex; \
+5 -9
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
{ {
auto_https disable_redirects auto_https disable_redirects
@@ -47,14 +50,7 @@ http://{$APACHE_HOST}.nextcloud-aio:23973, # For Collabora callback and WOPI req
uri strip_prefix /onlyoffice uri strip_prefix /onlyoffice
reverse_proxy {$ONLYOFFICE_HOST}:80 { reverse_proxy {$ONLYOFFICE_HOST}:80 {
header_up X-Forwarded-Host {http.request.hostport}/onlyoffice header_up X-Forwarded-Host {http.request.hostport}/onlyoffice
} header_up X-Forwarded-Proto https
}
# EuroOffice
route /eurooffice/* {
uri strip_prefix /eurooffice
reverse_proxy {$EUROOFFICE_HOST}:80 {
header_up X-Forwarded-Host {http.request.hostport}/eurooffice
} }
} }
@@ -85,7 +81,7 @@ http://{$APACHE_HOST}.nextcloud-aio:23973, # For Collabora callback and WOPI req
# TLS options # TLS options
tls { tls {
issuer acme { issuer acme {
profile tlsserver profile shortlived
# Disable HTTP challenge because that would require port 80, which we don't get (it's exposed to the mastercontainer). # Disable HTTP challenge because that would require port 80, which we don't get (it's exposed to the mastercontainer).
# This container by default only exposes port 443 if not configured otherwise via APACHE_PORT. # This container by default only exposes port 443 if not configured otherwise via APACHE_PORT.
disable_http_challenge disable_http_challenge
+3 -2
View File
@@ -1,5 +1,7 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM caddy:2.11.4-alpine AS caddy # SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM caddy:2.11.2-alpine AS caddy
# From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile # From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile
FROM httpd:2.4.67-alpine3.23 FROM httpd:2.4.67-alpine3.23
@@ -103,7 +105,6 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Apache and Caddy for Nextcloud AIO" \ org.opencontainers.image.title="Apache and Caddy for Nextcloud AIO" \
org.opencontainers.image.description="Apache HTTP server with Caddy for Nextcloud All-in-One" \ org.opencontainers.image.description="Apache HTTP server with Caddy for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+38 -2
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
Listen 8000 Listen 8000
<VirtualHost *:8000> <VirtualHost *:8000>
ServerName localhost ServerName localhost
@@ -9,6 +12,34 @@ Listen 8000
ErrorLogFormat "[%t] [%l] [%E] [client: %{X-Forwarded-For}i] [%M] [%{User-Agent}i]" ErrorLogFormat "[%t] [%l] [%E] [client: %{X-Forwarded-For}i] [%M] [%{User-Agent}i]"
LogLevel ${AIO_LOG_LEVEL} LogLevel ${AIO_LOG_LEVEL}
# KeepAlive On: allow the same TCP connection to carry multiple HTTP requests.
# Without this each asset (JS, CSS, image) would require a full TCP handshake,
# which is especially expensive on TLS connections and noticeably slows down
# Nextcloud's login page and file manager that load dozens of resources at once.
KeepAlive On
# KeepAliveTimeout: close an idle keep-alive connection after 5 seconds.
# A short timeout frees Apache worker threads quickly so they are available
# for new requests; 5 s is long enough to cover the gap between requests
# that a browser issues while rendering a page (typically < 1 s), yet short
# enough to avoid holding threads open for idle or slow clients.
KeepAliveTimeout 5
# MaxKeepAliveRequests: allow at most 500 requests per persistent connection.
# 100 (the Apache default) is too low for Nextcloud: the desktop and mobile
# sync clients issue many small API calls (PROPFIND, GET, PUT, checksums …)
# per sync cycle and routinely exceed 100 requests on a single connection.
# Hitting the limit forces a new TCP/TLS handshake, adding latency and CPU
# overhead. 500 gives sync clients enough headroom while still periodically
# recycling threads to contain per-process memory growth.
MaxKeepAliveRequests 500
# sendfile(2) is disabled because it bypasses Apache's output-filter chain: with
# it enabled, mod_brotli is silently skipped for static files (JS, CSS, SVG),
# negating the compression configured below. MMAP is also
# disabled because files can be replaced by Nextcloud at any time and mmap'd
# pages could serve stale data.
EnableSendfile Off
EnableMMAP Off
# PHP match # PHP match
<FilesMatch "\.php$"> <FilesMatch "\.php$">
SetHandler "proxy:fcgi://${NEXTCLOUD_HOST}:9000" SetHandler "proxy:fcgi://${NEXTCLOUD_HOST}:9000"
@@ -17,12 +48,17 @@ Listen 8000
<Proxy "fcgi://${NEXTCLOUD_HOST}:9000" flushpackets=on> <Proxy "fcgi://${NEXTCLOUD_HOST}:9000" flushpackets=on>
</Proxy> </Proxy>
# Compress JS, CSS and SVG responses with Brotli. # Compress JS, CSS and SVG responses with Brotli (quality 4 gives good
# compression with reasonable CPU cost; the default of 0 barely compresses).
# Other plain-text files are already compressed by Nextcloud itself. # Other plain-text files are already compressed by Nextcloud itself.
# No deflate fallback is needed: every browser that Nextcloud supports
# (Chrome 49+, Firefox 44+, Safari 11+, Edge 15+ — all from 2016-2017)
# supports Brotli. Internet Explorer, the only browser that never gained
# Brotli support, was dropped by Nextcloud with NC15 (2019).
# Desktop and mobile sync clients never request JS/CSS/SVG assets. # Desktop and mobile sync clients never request JS/CSS/SVG assets.
<IfModule mod_brotli.c> <IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript application/x-javascript text/css image/svg+xml AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript application/x-javascript text/css image/svg+xml
BrotliCompressionQuality 0 BrotliCompressionQuality 4
</IfModule> </IfModule>
# Nextcloud dir # Nextcloud dir
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+4 -1
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
[supervisord] [supervisord]
nodaemon=true nodaemon=true
logfile=/var/log/supervisord/supervisord.log logfile=/var/log/supervisord/supervisord.log
@@ -12,7 +15,7 @@ loglevel=%(ENV_AIO_LOG_LEVEL)s
stdout_logfile=%(ENV_SUPERVISORD_STDOUT)s stdout_logfile=%(ENV_SUPERVISORD_STDOUT)s
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
command=httpd -DFOREGROUND command=apachectl -DFOREGROUND
[program:caddy] [program:caddy]
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
+3 -3
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM alpine:3.23.4 FROM alpine:3.23.4
RUN set -ex; \ RUN set -ex; \
@@ -25,12 +27,10 @@ USER root
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Borgbackup for Nextcloud AIO" \ org.opencontainers.image.title="Borgbackup for Nextcloud AIO" \
org.opencontainers.image.description="BorgBackup-based backup service for Nextcloud All-in-One" \ org.opencontainers.image.description="BorgBackup-based backup service for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.vendor="Nextcloud" \ org.opencontainers.image.vendor="Nextcloud" \
org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md" org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" \ ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"
AIO_LOG_LEVEL="warn"
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# These patterns need to be kept in sync with rsync and find excludes in backupscript.sh, # These patterns need to be kept in sync with rsync and find excludes in backupscript.sh,
# which use a different syntax (patterns appear in 3 places in total) # which use a different syntax (patterns appear in 3 places in total)
nextcloud_aio_volumes/nextcloud_aio_apache/caddy/ nextcloud_aio_volumes/nextcloud_aio_apache/caddy/
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM alpine:3.23.4 FROM alpine:3.23.4
RUN set -ex; \ RUN set -ex; \
@@ -43,7 +45,6 @@ ENTRYPOINT ["/start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="ClamAV for Nextcloud AIO" \ org.opencontainers.image.title="ClamAV for Nextcloud AIO" \
org.opencontainers.image.description="ClamAV antivirus scanner for Nextcloud All-in-One" \ org.opencontainers.image.description="ClamAV antivirus scanner for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
[supervisord] [supervisord]
nodaemon=true nodaemon=true
logfile=/var/log/supervisord/supervisord.log logfile=/var/log/supervisord/supervisord.log
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From https://gitlab.collabora.com/collabora-online/docker # From https://gitlab.collabora.com/collabora-online/docker
# hadolint ignore=DL3007 # hadolint ignore=DL3007
FROM registry.gitlab.collabora.com/collabora-online/docker:latest FROM registry.gitlab.collabora.com/collabora-online/docker:latest
@@ -13,7 +15,6 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Collabora Online for Nextcloud AIO" \ org.opencontainers.image.title="Collabora Online for Nextcloud AIO" \
org.opencontainers.image.description="Collabora Online document editor from upstream for Nextcloud All-in-One" \ org.opencontainers.image.description="Collabora Online document editor from upstream for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Unfortunately, no curl and no nc is installed in the container # Unfortunately, no curl and no nc is installed in the container
# and packages can also not be added as the package list is broken. # and packages can also not be added as the package list is broken.
+3 -2
View File
@@ -1,6 +1,8 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile # From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile
FROM collabora/code:26.04.1.3.1 FROM collabora/code:25.04.9.4.1
USER root USER root
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
@@ -13,7 +15,6 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Collabora for Nextcloud AIO" \ org.opencontainers.image.title="Collabora for Nextcloud AIO" \
org.opencontainers.image.description="Collabora CODE document editor for Nextcloud All-in-One" \ org.opencontainers.image.description="Collabora CODE document editor for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Unfortunately, no curl and no nc is installed in the container # Unfortunately, no curl and no nc is installed in the container
# and packages can also not be added as the package list is broken. # and packages can also not be added as the package list is broken.
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3 -2
View File
@@ -1,5 +1,7 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM haproxy:3.4.0-alpine # SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM haproxy:3.3.8-alpine
# hadolint ignore=DL3002 # hadolint ignore=DL3002
USER root USER root
@@ -20,7 +22,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Docker Socket Proxy for Nextcloud AIO" \ org.opencontainers.image.title="Docker Socket Proxy for Nextcloud AIO" \
org.opencontainers.image.description="HAProxy-based Docker socket proxy for Nextcloud All-in-One" \ org.opencontainers.image.description="HAProxy-based Docker socket proxy for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Inspiration: https://github.com/Tecnativa/docker-socket-proxy/blob/master/haproxy.cfg # Inspiration: https://github.com/Tecnativa/docker-socket-proxy/blob/master/haproxy.cfg
global global
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM alpine:3.23.4 FROM alpine:3.23.4
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
@@ -19,7 +21,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1 HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Domain Check for Nextcloud AIO" \ org.opencontainers.image.title="Domain Check for Nextcloud AIO" \
org.opencontainers.image.description="Domain validation service for Nextcloud All-in-One setup" \ org.opencontainers.image.description="Domain validation service for Nextcloud All-in-One setup" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
server.document-root = "/var/www/domaincheck/" server.document-root = "/var/www/domaincheck/"
server.port = env.APACHE_PORT server.port = env.APACHE_PORT
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
-17
View File
@@ -1,17 +0,0 @@
# syntax=docker/dockerfile:latest
FROM ghcr.io/euro-office/documentserver:v9.3.1-beta.1
# USER root is probably used
COPY --chmod=775 healthcheck.sh /healthcheck.sh
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="EuroOffice for Nextcloud AIO" \
org.opencontainers.image.description="EuroOffice Document Server for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.vendor="Nextcloud" \
org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md"
-7
View File
@@ -1,7 +0,0 @@
#!/bin/bash
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
nc -z 127.0.0.1 80 || exit 1
+3 -2
View File
@@ -1,6 +1,8 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Probably from here https://github.com/elastic/dockerfiles/blob/9.3/elasticsearch/Dockerfile # Probably from here https://github.com/elastic/dockerfiles/blob/9.3/elasticsearch/Dockerfile
FROM elasticsearch:9.4.2 FROM elasticsearch:9.4.0
USER root USER root
@@ -21,7 +23,6 @@ USER 1000:0
HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Full Text Search for Nextcloud AIO" \ org.opencontainers.image.title="Full Text Search for Nextcloud AIO" \
org.opencontainers.image.description="Elasticsearch-based full-text search for Nextcloud All-in-One" \ org.opencontainers.image.description="Elasticsearch-based full-text search for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+4 -1
View File
@@ -1,7 +1,10 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
fi fi
curl -fs -u "elastic:$ELASTIC_PASSWORD" "http://127.0.0.1:9200/_cluster/health?filter_path=status" | grep -qE '"status":"(green|yellow)"' || exit 1 curl -fs "http://127.0.0.1:9200/_cluster/health?filter_path=status" | grep -qE '"status":"(green|yellow)"' || exit 1
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3 -2
View File
@@ -1,5 +1,7 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM golang:1.26.4-alpine3.23 AS go # SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM golang:1.26.2-alpine3.23 AS go
ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
@@ -45,7 +47,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Imaginary for Nextcloud AIO" \ org.opencontainers.image.title="Imaginary for Nextcloud AIO" \
org.opencontainers.image.description="High-performance image processing service for Nextcloud All-in-One" \ org.opencontainers.image.description="High-performance image processing service for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+6 -5
View File
@@ -1,17 +1,19 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Docker CLI is a requirement # Docker CLI is a requirement
FROM docker:29.5.2-cli AS docker FROM docker:29.4.1-cli AS docker
ARG CADDY_REMOTE_HOST_HASH=e80a9931765a8dbcbb47db415863387f0df0e1b3 ARG CADDY_REMOTE_HOST_HASH=b21775afa730ffb52a24ddff310c8a6d1fd37276
# Caddy is a requirement # Caddy is a requirement
FROM caddy:2.11.4-builder-alpine AS caddy FROM caddy:2.11.2-builder-alpine AS caddy
RUN set -ex; \ RUN set -ex; \
xcaddy build --with github.com/muety/caddy-remote-host@"$CADDY_REMOTE_HOST_HASH"; \ xcaddy build --with github.com/muety/caddy-remote-host@"$CADDY_REMOTE_HOST_HASH"; \
/usr/bin/caddy list-modules /usr/bin/caddy list-modules
# From https://github.com/docker-library/php/blob/master/8.5/alpine3.23/fpm/Dockerfile # From https://github.com/docker-library/php/blob/master/8.5/alpine3.23/fpm/Dockerfile
FROM php:8.5.6-fpm-alpine3.23 FROM php:8.5.5-fpm-alpine3.23
EXPOSE 80 EXPOSE 80
EXPOSE 8080 EXPOSE 8080
@@ -107,7 +109,6 @@ LABEL org.opencontainers.image.title="Nextcloud All-in-One Mastercontainer" \
org.opencontainers.image.vendor="Nextcloud" \ org.opencontainers.image.vendor="Nextcloud" \
org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md" \ org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
com.docker.compose.project="nextcloud-aio" com.docker.compose.project="nextcloud-aio"
# hadolint ignore=DL3002 # hadolint ignore=DL3002
+5
View File
@@ -1,3 +1,8 @@
<!--
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
# Nextcloud All-in-One `mastercontainer` # Nextcloud All-in-One `mastercontainer`
This folder contains the OCI/Docker container definition, along with associated resources and This folder contains the OCI/Docker container definition, along with associated resources and
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
{
admin off admin off
# auto_https will create redirects for https://{host}:8443 instead of https://{host} # auto_https will create redirects for https://{host}:8443 instead of https://{host}
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
header { header {
# CSP limits which features can be used. By default we allow nothing and only allow required options. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy # CSP limits which features can be used. By default we allow nothing and only allow required options. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy
# default-src 'none'; Allow nothing by default # default-src 'none'; Allow nothing by default
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
{
admin off admin off
# auto_https will be handled manually in acme.Caddyfile # auto_https will be handled manually in acme.Caddyfile
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
deduplicate_sessions() { deduplicate_sessions() {
echo "Deleting duplicate sessions" echo "Deleting duplicate sessions"
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# Function to show text in green # Function to show text in green
print_green() { print_green() {
+4 -1
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
[supervisord] [supervisord]
nodaemon=true nodaemon=true
logfile=/var/log/supervisord/supervisord.log logfile=/var/log/supervisord/supervisord.log
@@ -54,7 +57,7 @@ stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
command=/session-deduplicator.sh command=/session-deduplicator.sh
user=www-data user=root
[program:domain-validator] [program:domain-validator]
# Logging is disabled as otherwise all attempts will be logged which spams the logs # Logging is disabled as otherwise all attempts will be logged which spams the logs
+4 -3
View File
@@ -1,5 +1,7 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM php:8.3.31-fpm-alpine3.23 # SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM php:8.3.30-fpm-alpine3.23
ENV PHP_MEMORY_LIMIT=512M ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G ENV PHP_UPLOAD_LIMIT=16G
@@ -8,7 +10,7 @@ ENV SOURCE_LOCATION=/usr/src/nextcloud
ENV REDIS_DB_INDEX=0 ENV REDIS_DB_INDEX=0
# AIO settings start # Do not remove or change this line! # AIO settings start # Do not remove or change this line!
ENV NEXTCLOUD_VERSION=33.0.5 ENV NEXTCLOUD_VERSION=33.0.3
ENV AIO_TOKEN=123456 ENV AIO_TOKEN=123456
ENV AIO_URL=localhost ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line! # AIO settings end # Do not remove or change this line!
@@ -286,7 +288,6 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Nextcloud for Nextcloud AIO" \ org.opencontainers.image.title="Nextcloud for Nextcloud AIO" \
org.opencontainers.image.description="Nextcloud server with all required PHP extensions for Nextcloud All-in-One" \ org.opencontainers.image.description="Nextcloud server with all required PHP extensions for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+5
View File
@@ -1,3 +1,8 @@
<!--
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
SPDX-License-Identifier: AGPL-3.0-only
-->
# Nextcloud All-in-One ``nextcloud`` Container # Nextcloud All-in-One ``nextcloud`` Container
This folder contains the OCI/Docker container definition, along with associated resources and configuration files, for building the `nextcloud` container as part of the [Nextcloud All-in-One](https://github.com/nextcloud/all-in-one) project. This container hosts PHP and the Nextcloud Server application. This folder contains the OCI/Docker container definition, along with associated resources and configuration files, for building the `nextcloud` container as part of the [Nextcloud All-in-One](https://github.com/nextcloud/all-in-one) project. This container hosts PHP and the Nextcloud Server application.
+3 -1
View File
@@ -1,6 +1,8 @@
<?php <?php
// SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
$CONFIG = array ( $CONFIG = array (
'one-click-instance' => true, 'one-click-instance' => true,
'one-click-instance.user-limit' => 100, 'one-click-instance.user-limit' => 100,
'update_channel' => 'stable',
); );
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
$CONFIG = array ( $CONFIG = array (
'memcache.local' => '\OC\Memcache\APCu', 'memcache.local' => '\OC\Memcache\APCu',
); );
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
$CONFIG = array ( $CONFIG = array (
'apps_paths' => array ( 'apps_paths' => array (
0 => array ( 0 => array (
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
// Check if NEXTCLOUD_TRUSTED_CERTIFICATES_ are configured // Check if NEXTCLOUD_TRUSTED_CERTIFICATES_ are configured
if (str_contains(implode(' ', array_keys(getenv())), 'NEXTCLOUD_TRUSTED_CERTIFICATES_')) { if (str_contains(implode(' ', array_keys(getenv())), 'NEXTCLOUD_TRUSTED_CERTIFICATES_')) {
$CONFIG['default_certificates_bundle_path'] = '/var/www/html/data/certificates/ca-bundle.crt'; $CONFIG['default_certificates_bundle_path'] = '/var/www/html/data/certificates/ca-bundle.crt';
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES')) { if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES')) {
$CONFIG = array( $CONFIG = array(
'pgsql_ssl' => array( 'pgsql_ssl' => array(
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('HTTP_PROXY')) { if (getenv('HTTP_PROXY')) {
$CONFIG['proxy'] = getenv('HTTP_PROXY'); $CONFIG['proxy'] = getenv('HTTP_PROXY');
} }
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('REDIS_MODE') !== 'rediscluster') { if (getenv('REDIS_MODE') !== 'rediscluster') {
$CONFIG = array( $CONFIG = array(
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.distributed' => '\OC\Memcache\Redis',
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
$overwriteHost = getenv('OVERWRITEHOST'); $overwriteHost = getenv('OVERWRITEHOST');
if ($overwriteHost) { if ($overwriteHost) {
$CONFIG['overwritehost'] = $overwriteHost; $CONFIG['overwritehost'] = $overwriteHost;
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('OBJECTSTORE_S3_BUCKET')) { if (getenv('OBJECTSTORE_S3_BUCKET')) {
$use_ssl = getenv('OBJECTSTORE_S3_SSL'); $use_ssl = getenv('OBJECTSTORE_S3_SSL');
$use_path = getenv('OBJECTSTORE_S3_USEPATH_STYLE'); $use_path = getenv('OBJECTSTORE_S3_USEPATH_STYLE');
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
$CONFIG = array ( $CONFIG = array (
'serverid' => hexdec(hash('xxh32', gethostname())) & 0x1FF, 'serverid' => crc32(gethostname()) % 512,
); );
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) { if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
$CONFIG = array ( $CONFIG = array (
'mail_smtpmode' => 'smtp', 'mail_smtpmode' => 'smtp',
@@ -1,4 +1,7 @@
<?php <?php
// SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
// SPDX-License-Identifier: AGPL-3.0-only
if (getenv('OBJECTSTORE_SWIFT_URL')) { if (getenv('OBJECTSTORE_SWIFT_URL')) {
$autocreate = getenv('OBJECTSTORE_SWIFT_AUTOCREATE'); $autocreate = getenv('OBJECTSTORE_SWIFT_AUTOCREATE');
$CONFIG = array( $CONFIG = array(
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+34 -54
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
version_greater() { version_greater() {
@@ -419,12 +422,41 @@ EOF
# AIO update to latest start # Do not remove or change this line! # AIO update to latest start # Do not remove or change this line!
if [ "$INSTALL_LATEST_MAJOR" = yes ]; then if [ "$INSTALL_LATEST_MAJOR" = yes ]; then
if ! bash /upgrade-latest-major.sh; then php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
echo "Upgrade to latest major version failed! Check the output above for details." INSTALLED_AT="$(php /var/www/html/occ config:app:get core installedat)"
if [ -n "${INSTALLED_AT}" ]; then
# Set the installdat to 00 which will allow to skip staging and install the next major directly
# shellcheck disable=SC2001
INSTALLED_AT="$(echo "${INSTALLED_AT}" | sed "s|[0-9][0-9]$|00|")"
php /var/www/html/occ config:app:set core installedat --value="${INSTALLED_AT}"
fi
php /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1 exit 1
fi fi
# shellcheck disable=SC2016 # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')" installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
INSTALLED_MAJOR="${installed_version%%.*}"
IMAGE_MAJOR="${image_version%%.*}"
# If a valid upgrade path, trigger the Nextcloud built-in Updater
if ! [ "$INSTALLED_MAJOR" -gt "$IMAGE_MAJOR" ]; then
php /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
# TODO: Add a hint here about what to do / where to look / updater.log?
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
# shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi
php /var/www/html/occ config:system:set updatechecker --type=bool --value=true
php /var/www/html/occ app:enable nextcloud-aio --force
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
fi fi
# AIO update to latest end # Do not remove or change this line! # AIO update to latest end # Do not remove or change this line!
@@ -867,58 +899,6 @@ else
fi fi
fi fi
# EuroOffice
if [ "$EUROOFFICE_ENABLED" = 'yes' ]; then
# Determine EuroOffice port based on host pattern
if echo "$EUROOFFICE_HOST" | grep -q "nextcloud-.*-eurooffice"; then
EUROOFFICE_PORT=80
else
EUROOFFICE_PORT=443
fi
count=0
while ! nc -z "$EUROOFFICE_HOST" "$EUROOFFICE_PORT" && [ "$count" -lt 90 ]; do
echo "Waiting for EuroOffice to become available..."
count=$((count+5))
sleep 5
done
if [ "$count" -ge 90 ]; then
bash /notify.sh "EuroOffice did not start in time!" "Skipping initialization and disabling eurooffice app."
php /var/www/html/occ app:disable eurooffice
else
# Install or enable EuroOffice app as needed
if ! [ -d "/var/www/html/custom_apps/eurooffice" ]; then
php /var/www/html/occ app:install eurooffice
elif [ "$(php /var/www/html/occ config:app:get eurooffice enabled)" != "yes" ]; then
php /var/www/html/occ app:enable eurooffice
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update eurooffice
fi
# Set EuroOffice configuration
php /var/www/html/occ config:system:set eurooffice editors_check_interval --value="0" --type=integer
php /var/www/html/occ config:system:set eurooffice jwt_secret --value="$EUROOFFICE_SECRET"
php /var/www/html/occ config:app:set eurooffice jwt_secret --value="$EUROOFFICE_SECRET"
php /var/www/html/occ config:system:set eurooffice jwt_header --value="AuthorizationJwt"
# Adjust the EuroOffice host if using internal pattern
if echo "$EUROOFFICE_HOST" | grep -q "nextcloud-.*-eurooffice"; then
EUROOFFICE_HOST="$NC_DOMAIN/eurooffice"
export EUROOFFICE_HOST
fi
php /var/www/html/occ config:app:set eurooffice DocumentServerUrl --value="https://$EUROOFFICE_HOST"
fi
else
# Remove EuroOffice app if disabled and removal is requested
if [ "$REMOVE_DISABLED_APPS" = yes ] && \
[ -d "/var/www/html/custom_apps/eurooffice" ] && \
[ -n "$EUROOFFICE_SECRET" ] && \
[ "$(php /var/www/html/occ config:system:get eurooffice jwt_secret)" = "$EUROOFFICE_SECRET" ]; then
php /var/www/html/occ app:remove eurooffice
fi
fi
# Talk # Talk
if [ "$TALK_ENABLED" = 'yes' ]; then if [ "$TALK_ENABLED" = 'yes' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/full/fpm/supervisord.conf # From https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/full/fpm/supervisord.conf
[supervisord] [supervisord]
nodaemon=true nodaemon=true
@@ -1,43 +0,0 @@
#!/bin/bash
PHP_CLI="php"
if [[ "$EUID" = 0 ]]; then
PHP_CLI="sudo -u www-data -E $PHP_CLI"
fi
# shellcheck disable=SC2016
image_version="$($PHP_CLI -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
export IMAGE_MAJOR="${image_version%%.*}"
$PHP_CLI /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
INSTALLED_AT="$($PHP_CLI /var/www/html/occ config:app:get core installedat)"
if [ -n "${INSTALLED_AT}" ]; then
# Set the installedat to 00 which will allow to skip staging and install the next major directly
# shellcheck disable=SC2001
INSTALLED_AT="$(echo "${INSTALLED_AT}" | sed "s|[0-9][0-9]$|00|")"
$PHP_CLI /var/www/html/occ config:app:set core installedat --value="${INSTALLED_AT}"
fi
$PHP_CLI /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! $PHP_CLI /var/www/html/occ -V || $PHP_CLI /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
# shellcheck disable=SC2016
installed_version="$($PHP_CLI -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
export INSTALLED_MAJOR="${installed_version%%.*}"
# If a valid upgrade path, trigger the Nextcloud built-in Updater
if ! $PHP_CLI -r "version_compare(getenv('INSTALLED_MAJOR'), getenv('IMAGE_MAJOR'), '>') || exit(1);"; then
$PHP_CLI /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! $PHP_CLI /var/www/html/occ -V || $PHP_CLI /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
# TODO: Add a hint here about what to do / where to look / updater.log?
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
fi
$PHP_CLI /var/www/html/occ config:system:set updatechecker --type=bool --value=true
$PHP_CLI /var/www/html/occ app:enable nextcloud-aio --force
$PHP_CLI /var/www/html/occ db:add-missing-columns
$PHP_CLI /var/www/html/occ db:add-missing-primary-keys
yes | $PHP_CLI /var/www/html/occ db:convert-filecache-bigint
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM alpine:3.23.4 FROM alpine:3.23.4
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
@@ -23,7 +25,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Notify Push for Nextcloud AIO" \ org.opencontainers.image.title="Notify Push for Nextcloud AIO" \
org.opencontainers.image.description="Nextcloud notify_push high-performance backend for Nextcloud All-in-One" \ org.opencontainers.image.description="Nextcloud notify_push high-performance backend for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+5 -17
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
@@ -28,7 +31,7 @@ elif [ "$CPU_ARCH" != "x86_64" ]; then
fi fi
# Add warning # Add warning
if ! [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ] && ! [ -f /var/www/html/apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then if ! [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
echo "The notify_push binary was not found." echo "The notify_push binary was not found."
echo "Most likely is DNS resolution not working correctly." echo "Most likely is DNS resolution not working correctly."
echo "You can try to fix this by configuring a DNS server globally in dockers daemon.json." echo "You can try to fix this by configuring a DNS server globally in dockers daemon.json."
@@ -42,24 +45,9 @@ if ! [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ] &&
exit 1 exit 1
fi fi
# Logic for ipv6 disabled servers
BIND="::"
if grep -q "1" /sys/module/ipv6/parameters/disable \
|| grep -q "1" /proc/sys/net/ipv6/conf/all/disable_ipv6 \
|| grep -q "1" /proc/sys/net/ipv6/conf/default/disable_ipv6; then
BIND="0.0.0.0"
fi
export BIND
echo "notify-push was started" echo "notify-push was started"
if [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
PUSH_PATH="/var/www/html/custom_apps/notify_push/bin/$CPU_ARCH/notify_push"
else
PUSH_PATH="/var/www/html/apps/notify_push/bin/$CPU_ARCH/notify_push"
fi
# Run it # Run it
exec "$PUSH_PATH" \ exec /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push \
--port 7867 \ --port 7867 \
/var/www/html/config/config.php /var/www/html/config/config.php
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile # From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:9.3.1.2 FROM onlyoffice/documentserver:9.3.1.2
@@ -9,7 +11,6 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="OnlyOffice for Nextcloud AIO" \ org.opencontainers.image.title="OnlyOffice for Nextcloud AIO" \
org.opencontainers.image.description="OnlyOffice Document Server for Nextcloud All-in-One" \ org.opencontainers.image.description="OnlyOffice Document Server for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3 -2
View File
@@ -1,6 +1,8 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From https://github.com/docker-library/postgres/blob/master/18/alpine3.23/Dockerfile # From https://github.com/docker-library/postgres/blob/master/18/alpine3.23/Dockerfile
FROM postgres:18.4-alpine FROM postgres:18.3-alpine
ENV PGDATA=/var/lib/postgresql/data ENV PGDATA=/var/lib/postgresql/data
@@ -49,7 +51,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="PostgreSQL for Nextcloud AIO" \ org.opencontainers.image.title="PostgreSQL for Nextcloud AIO" \
org.opencontainers.image.description="PostgreSQL database for Nextcloud All-in-One" \ org.opencontainers.image.description="PostgreSQL database for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+2 -1
View File
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
# From https://github.com/redis/docker-library-redis/blob/release/8.2/alpine/Dockerfile # From https://github.com/redis/docker-library-redis/blob/release/8.2/alpine/Dockerfile
FROM redis:8.6.3-alpine FROM redis:8.6.3-alpine
@@ -23,7 +25,6 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Redis for Nextcloud AIO" \ org.opencontainers.image.title="Redis for Nextcloud AIO" \
org.opencontainers.image.description="Redis cache server for Nextcloud All-in-One" \ org.opencontainers.image.description="Redis cache server for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+5 -7
View File
@@ -1,11 +1,13 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM python:3.14.5-alpine3.23 # SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM python:3.14.3-alpine3.23
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh COPY --chmod=775 healthcheck.sh /healthcheck.sh
ENV RECORDING_VERSION=v0.2.1 ENV RECORDING_VERSION=v0.2.1 \
ENV ALLOW_ALL=false \ ALLOW_ALL=false \
HPB_PROTOCOL=https \ HPB_PROTOCOL=https \
NC_PROTOCOL=https \ NC_PROTOCOL=https \
SKIP_VERIFY=false \ SKIP_VERIFY=false \
@@ -35,9 +37,6 @@ RUN set -ex; \
build-base \ build-base \
linux-headers \ linux-headers \
geckodriver; \ geckodriver; \
if [ "$(apk --print-arch)" = "x86_64" ]; then \
apk add --no-cache intel-media-driver; \
fi; \
useradd -d /tmp --system recording -u 122; \ useradd -d /tmp --system recording -u 122; \
# Give root a random password # Give root a random password
echo "root:$(openssl rand -base64 12)" | chpasswd; \ echo "root:$(openssl rand -base64 12)" | chpasswd; \
@@ -67,7 +66,6 @@ CMD ["python", "-m", "nextcloud.talk.recording", "--config", "/conf/recording.co
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Talk Recording for Nextcloud AIO" \ org.opencontainers.image.title="Talk Recording for Nextcloud AIO" \
org.opencontainers.image.description="Nextcloud Talk recording service for Nextcloud All-in-One" \ org.opencontainers.image.description="Nextcloud Talk recording service for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3
View File
@@ -1,4 +1,7 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
+3 -2
View File
@@ -1,5 +1,7 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM nats:2.14.2-scratch AS nats # SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
FROM nats:2.14.0-scratch AS nats
FROM eturnal/eturnal:1.12.2-alpine AS eturnal FROM eturnal/eturnal:1.12.2-alpine AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.1.1 AS signaling FROM strukturag/nextcloud-spreed-signaling:2.1.1 AS signaling
FROM alpine:3.23.4 AS janus FROM alpine:3.23.4 AS janus
@@ -112,7 +114,6 @@ CMD ["supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
dockhand.update="false" \
org.opencontainers.image.title="Talk for Nextcloud AIO" \ org.opencontainers.image.title="Talk for Nextcloud AIO" \
org.opencontainers.image.description="Nextcloud Talk with NATS, Janus, eturnal, and signaling server for Nextcloud All-in-One" \ org.opencontainers.image.description="Nextcloud Talk with NATS, Janus, eturnal, and signaling server for Nextcloud All-in-One" \
org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \
+6 -5
View File
@@ -1,16 +1,17 @@
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
fi fi
nc -z 127.0.0.1 8081 || nc -z ::1 8081 || exit 1 nc -z 127.0.0.1 8081 || exit 1
nc -z 127.0.0.1 8188 || exit 1 nc -z 127.0.0.1 8188 || exit 1
nc -z 127.0.0.1 4222 || exit 1 nc -z 127.0.0.1 4222 || exit 1
nc -z 127.0.0.1 "$TALK_PORT" || nc -z ::1 "$TALK_PORT" || exit 1 nc -z 127.0.0.1 "$TALK_PORT" || exit 1
eturnalctl status || exit 1 eturnalctl status || exit 1
# Verify that the signaling server is actually serving requests, not just # Verify that the signaling server is actually serving requests, not just
# listening on the TCP port (which nc -z above only tests for open port). # listening on the TCP port (which nc -z above only tests for open port).
# SC2102: [::1] is an IPv6 address literal in a URL, not a character-range glob. wget -q -O /dev/null http://127.0.0.1:8081/api/v1/stats || exit 1
# shellcheck disable=SC2102
wget -q -O /dev/null http://127.0.0.1:8081/api/v1/stats || wget -q -O /dev/null http://[::1]:8081/api/v1/stats || exit 1
+3
View File
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
# SPDX-License-Identifier: AGPL-3.0-only
[http] [http]
# IP and port to listen on for HTTP requests. # IP and port to listen on for HTTP requests.
# Comment line to disable the listener. # Comment line to disable the listener.

Some files were not shown because too many files have changed in this diff Show More