mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-21 10:50:10 +00:00
Compare commits
473 Commits
v7.2.1
...
helm-chart
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75784dc736 | ||
|
|
42ddbfde34 | ||
|
|
f577221fa7 | ||
|
|
6fe494cc9f | ||
|
|
8b39a5ec73 | ||
|
|
8c17fa0a7c | ||
|
|
aae79af1b5 | ||
|
|
907dca670e | ||
|
|
66c90e976f | ||
|
|
c67bd8f7db | ||
|
|
e1019ee9ff | ||
|
|
0b23271af0 | ||
|
|
53d5191da7 | ||
|
|
95850d30bb | ||
|
|
92664f7964 | ||
|
|
4e3b93da82 | ||
|
|
25c5b3dd65 | ||
|
|
89a87d8b60 | ||
|
|
5a385ebdd3 | ||
|
|
feec123292 | ||
|
|
ec33279209 | ||
|
|
e20f31ab90 | ||
|
|
98e671403c | ||
|
|
5ed71e8a88 | ||
|
|
ebbc68e4e5 | ||
|
|
f7ea98ef24 | ||
|
|
10a8f5b099 | ||
|
|
2d2d7a2e7a | ||
|
|
01625b1b7a | ||
|
|
f935993ac6 | ||
|
|
db0c20584d | ||
|
|
03aa7a1ce1 | ||
|
|
57b5f61f5b | ||
|
|
0714ea0234 | ||
|
|
72e7dc29a8 | ||
|
|
fac9169f59 | ||
|
|
7bdf1bf49e | ||
|
|
42c721d4f0 | ||
|
|
dee692f3e9 | ||
|
|
5e843a9a9a | ||
|
|
2af3be98e9 | ||
|
|
6854145b91 | ||
|
|
d3e7557446 | ||
|
|
a2c8fa5aa0 | ||
|
|
ded000e614 | ||
|
|
78e133bd3a | ||
|
|
a0dd9d6605 | ||
|
|
ab3ec7fc75 | ||
|
|
97a4960726 | ||
|
|
f1b9d86394 | ||
|
|
542a6a0cbe | ||
|
|
ea5965c149 | ||
|
|
e60331e987 | ||
|
|
2f56756423 | ||
|
|
db582816d3 | ||
|
|
cfeb8d872a | ||
|
|
088fd118be | ||
|
|
0374ec96c4 | ||
|
|
1922e06fcc | ||
|
|
7b507e5107 | ||
|
|
50d50a63a9 | ||
|
|
eb22484e9e | ||
|
|
7d3335a9a7 | ||
|
|
344270b805 | ||
|
|
2de67a38bd | ||
|
|
72ecbfec49 | ||
|
|
779f9e4889 | ||
|
|
40d7c05362 | ||
|
|
2abad75461 | ||
|
|
85933dd149 | ||
|
|
9d8f172ac6 | ||
|
|
9a7dea0bf7 | ||
|
|
bf816c0f53 | ||
|
|
75eb25f5d1 | ||
|
|
42343413ea | ||
|
|
f10760d3e7 | ||
|
|
545fd28ab9 | ||
|
|
9b208c3584 | ||
|
|
648769c8dc | ||
|
|
8331e5cff8 | ||
|
|
256ab598f3 | ||
|
|
bb1bfd2703 | ||
|
|
4ef2848442 | ||
|
|
9e8c039d8e | ||
|
|
fe1c145d1a | ||
|
|
18f2eba949 | ||
|
|
f6e35dd5e6 | ||
|
|
2f4b4cde66 | ||
|
|
9705ada112 | ||
|
|
04e5c5e592 | ||
|
|
c7a6fbba33 | ||
|
|
dc581f2321 | ||
|
|
5808898b38 | ||
|
|
30f5e27889 | ||
|
|
2e596a921a | ||
|
|
aa98c93806 | ||
|
|
ebac4c928b | ||
|
|
17c413039d | ||
|
|
fbc9885713 | ||
|
|
1e8250af93 | ||
|
|
3ea6a956e4 | ||
|
|
e133814052 | ||
|
|
b5e07bae90 | ||
|
|
dee51b3804 | ||
|
|
7f3fbbde0d | ||
|
|
9c3dedfebc | ||
|
|
c33e8be21b | ||
|
|
33a87aeb18 | ||
|
|
6066a4b097 | ||
|
|
ce079d1e0d | ||
|
|
b8c70b73ca | ||
|
|
7968fab485 | ||
|
|
bc5ff285d9 | ||
|
|
279865686c | ||
|
|
d9cf8de28d | ||
|
|
c99284a7c0 | ||
|
|
78cfe96845 | ||
|
|
ce84eb7bfe | ||
|
|
e875c8eba3 | ||
|
|
717de9090d | ||
|
|
713d155265 | ||
|
|
1f9055063a | ||
|
|
cdf24a032c | ||
|
|
e272f26f6f | ||
|
|
4614364f20 | ||
|
|
0f5f6c41e3 | ||
|
|
bdb4a8cfed | ||
|
|
94edf5f671 | ||
|
|
ffe5ba2a1b | ||
|
|
4bca0fec32 | ||
|
|
f2a79f6346 | ||
|
|
d13c88c176 | ||
|
|
2635354137 | ||
|
|
597c8c8c57 | ||
|
|
112c9ad583 | ||
|
|
4b6720436d | ||
|
|
59421d51d2 | ||
|
|
c85bacc940 | ||
|
|
2221cc7f52 | ||
|
|
d121d97683 | ||
|
|
7060cba6c9 | ||
|
|
e4c685c0e7 | ||
|
|
a1bd8b0f07 | ||
|
|
6133e82c14 | ||
|
|
e6b6ec4cfd | ||
|
|
fe00d1dac8 | ||
|
|
38fb544090 | ||
|
|
ee86a9dd72 | ||
|
|
fcfecb737c | ||
|
|
7ffe4fbd5f | ||
|
|
1aa518d19c | ||
|
|
736c40ce30 | ||
|
|
b6a5c7d048 | ||
|
|
dfc8b0e522 | ||
|
|
3a3ddcad2e | ||
|
|
af278e8923 | ||
|
|
1a1b15ecd8 | ||
|
|
7a337f4c89 | ||
|
|
02dde8e94c | ||
|
|
a15cf13119 | ||
|
|
e548e4861f | ||
|
|
f585cc650f | ||
|
|
aec7df53c4 | ||
|
|
7466fb0e58 | ||
|
|
0cf0215d23 | ||
|
|
59d6a319d1 | ||
|
|
7dd3622fd3 | ||
|
|
67fab3111b | ||
|
|
a68717847f | ||
|
|
ebca5442ae | ||
|
|
918afa1a94 | ||
|
|
54c806c960 | ||
|
|
8b0d2b3534 | ||
|
|
9168bdaad5 | ||
|
|
9cbcb93c93 | ||
|
|
b36f71ff74 | ||
|
|
f4ee3ff6b0 | ||
|
|
1937fde61d | ||
|
|
2156e60d18 | ||
|
|
faaee07000 | ||
|
|
a770fc879d | ||
|
|
a80ab8aff2 | ||
|
|
b0b0adf7ce | ||
|
|
3f9f5d1e95 | ||
|
|
deec58be46 | ||
|
|
269731530b | ||
|
|
99b5db03b2 | ||
|
|
2d3b35ed3d | ||
|
|
b9ee292f8a | ||
|
|
dadb57f74f | ||
|
|
69568b0889 | ||
|
|
5da8dc0c15 | ||
|
|
50bdcc7ba6 | ||
|
|
552a7babc4 | ||
|
|
969dca4879 | ||
|
|
db47b9c573 | ||
|
|
c96d56d2f5 | ||
|
|
1abdac9613 | ||
|
|
2e9f48bb11 | ||
|
|
706c8bc1bd | ||
|
|
882cef4b0c | ||
|
|
a90fd4d4aa | ||
|
|
416f50b70c | ||
|
|
782e949742 | ||
|
|
0decfe4900 | ||
|
|
d887ed8de1 | ||
|
|
b7de89ba6a | ||
|
|
5b5f472180 | ||
|
|
6168ea3335 | ||
|
|
b2ca0b0e22 | ||
|
|
00ec781b68 | ||
|
|
c8c6bda76e | ||
|
|
db84d7d486 | ||
|
|
d5ff2fca16 | ||
|
|
3f43f122ee | ||
|
|
c5135e3a4e | ||
|
|
e2b4283067 | ||
|
|
41a4ea7d92 | ||
|
|
d9bbafdd69 | ||
|
|
13966948b0 | ||
|
|
97f66da219 | ||
|
|
461ccb0b3e | ||
|
|
8e9eb59d12 | ||
|
|
51132831e8 | ||
|
|
2bb5e84d83 | ||
|
|
ab044fda96 | ||
|
|
b0eabb8235 | ||
|
|
36acb8e4e6 | ||
|
|
1f68615c8d | ||
|
|
b5577a2909 | ||
|
|
499dccb122 | ||
|
|
9a16b7ea53 | ||
|
|
3e4f946ab9 | ||
|
|
22392b0a94 | ||
|
|
4456e5380f | ||
|
|
3210ad06f2 | ||
|
|
bdf676af84 | ||
|
|
378ec28f76 | ||
|
|
b08b1857c8 | ||
|
|
f2b075ac64 | ||
|
|
5f93ce7f78 | ||
|
|
b82b244e1f | ||
|
|
2f82c168e5 | ||
|
|
d75a53b620 | ||
|
|
609c61ad65 | ||
|
|
53bbf99f37 | ||
|
|
4df370589d | ||
|
|
0521605c33 | ||
|
|
0feaa9d527 | ||
|
|
caeff27bf5 | ||
|
|
706604539f | ||
|
|
9ac528423e | ||
|
|
1daacdfa99 | ||
|
|
3f5854c4bb | ||
|
|
cd7a87200b | ||
|
|
f397392d9d | ||
|
|
4705bfa992 | ||
|
|
810236a05c | ||
|
|
28b8be112f | ||
|
|
cea006c58f | ||
|
|
30c342d456 | ||
|
|
3f0c7490e0 | ||
|
|
2280fb62d2 | ||
|
|
388a79dfe9 | ||
|
|
bfa74ad966 | ||
|
|
a8c25f7a6a | ||
|
|
eee6157f54 | ||
|
|
b60c86c2b6 | ||
|
|
537dda95e7 | ||
|
|
a846b46fcd | ||
|
|
df9fa7edd3 | ||
|
|
03c7d0ba9a | ||
|
|
25438f8513 | ||
|
|
8ebcdf22ca | ||
|
|
58d37d5d78 | ||
|
|
cf1ae8fb1b | ||
|
|
4950d1de68 | ||
|
|
e1f7f04347 | ||
|
|
2ac76c80fd | ||
|
|
849febd414 | ||
|
|
320cd9f436 | ||
|
|
5d2275c806 | ||
|
|
92aae9dfd0 | ||
|
|
f8aab5f828 | ||
|
|
258f6683de | ||
|
|
7d8f40c98d | ||
|
|
1a018d9ef2 | ||
|
|
0edd0e1ed8 | ||
|
|
ef2fd3817f | ||
|
|
d6e61bc537 | ||
|
|
b56555e92c | ||
|
|
5dcdb6268a | ||
|
|
9a83ac422a | ||
|
|
c9dac9b84a | ||
|
|
05e778624d | ||
|
|
965cc87323 | ||
|
|
ed7cced146 | ||
|
|
f36fae6550 | ||
|
|
5188f8026d | ||
|
|
dae56914ff | ||
|
|
7336337c2e | ||
|
|
770ebba8e2 | ||
|
|
6cb26872fb | ||
|
|
510bdb9aef | ||
|
|
2d7014a143 | ||
|
|
29341e547c | ||
|
|
7fd65f2117 | ||
|
|
47852d4543 | ||
|
|
4378251cea | ||
|
|
fd707d023b | ||
|
|
b1ed9aaf13 | ||
|
|
1dca919af8 | ||
|
|
e15b184c0f | ||
|
|
71cfdb2ff2 | ||
|
|
6f80f6d70a | ||
|
|
c4190e4560 | ||
|
|
dd9c828095 | ||
|
|
f3411f0823 | ||
|
|
f2fee01201 | ||
|
|
bc7a25fa42 | ||
|
|
083f0669e4 | ||
|
|
f8ab551ce6 | ||
|
|
b9407dbc2d | ||
|
|
a1e5a0691b | ||
|
|
e1168f9c48 | ||
|
|
7f1adc36ae | ||
|
|
c1c96ee08a | ||
|
|
ec6448fe5f | ||
|
|
faecee2bfe | ||
|
|
55001d9961 | ||
|
|
4ba5407c01 | ||
|
|
89e8aa3cc5 | ||
|
|
f8dc68aa0b | ||
|
|
06f7f9341c | ||
|
|
dd31b13c31 | ||
|
|
49e14e4288 | ||
|
|
b883d123e6 | ||
|
|
14266469c2 | ||
|
|
f32df189f7 | ||
|
|
3d1611f8ba | ||
|
|
c99f442c0c | ||
|
|
88cae17035 | ||
|
|
395380ea2b | ||
|
|
49aca0d955 | ||
|
|
a176b74a61 | ||
|
|
5158081cfc | ||
|
|
b651c013d4 | ||
|
|
f82affdac6 | ||
|
|
949fd79bdf | ||
|
|
3075b393e4 | ||
|
|
b0c859a080 | ||
|
|
211ef36cd7 | ||
|
|
1d9da52442 | ||
|
|
4705d947da | ||
|
|
6ffa0411ad | ||
|
|
0f54507727 | ||
|
|
bbebaae89b | ||
|
|
369704564d | ||
|
|
1fda79c9e7 | ||
|
|
3202e20dd9 | ||
|
|
9d640fa9d6 | ||
|
|
2dba82f3a2 | ||
|
|
af292a1cff | ||
|
|
60607d8982 | ||
|
|
e82ad51c9f | ||
|
|
9c9f55eb49 | ||
|
|
72b69b6e25 | ||
|
|
e3d0841841 | ||
|
|
bdc5181ae5 | ||
|
|
726c7589b2 | ||
|
|
5a4f027478 | ||
|
|
bbb124ea6e | ||
|
|
c1a7c085cf | ||
|
|
b9872f9c4a | ||
|
|
39e12a7af1 | ||
|
|
c447a4defc | ||
|
|
25c41a1304 | ||
|
|
a53f7b403b | ||
|
|
22d85db738 | ||
|
|
49ba11f559 | ||
|
|
218d3d4280 | ||
|
|
b50a334cd0 | ||
|
|
60ae0a4fd3 | ||
|
|
d9ec367976 | ||
|
|
810bfa1450 | ||
|
|
5448662fdd | ||
|
|
f8a855f491 | ||
|
|
dc50106ac9 | ||
|
|
36baadc559 | ||
|
|
131dc62508 | ||
|
|
f5f8c836d2 | ||
|
|
eef371ec9a | ||
|
|
2e928e43b3 | ||
|
|
ebe4a9b44f | ||
|
|
4b134a5289 | ||
|
|
10326e1911 | ||
|
|
71484bf631 | ||
|
|
3104d6e2cc | ||
|
|
9eeeee4e06 | ||
|
|
ac890f046b | ||
|
|
b276532f58 | ||
|
|
538ee321a9 | ||
|
|
6fb27e904f | ||
|
|
ea32a33fc6 | ||
|
|
2a746863b9 | ||
|
|
a823e1d3ce | ||
|
|
dbb0833717 | ||
|
|
598faf7eef | ||
|
|
7661b9fb3a | ||
|
|
ca3466759f | ||
|
|
bae5acf47b | ||
|
|
bbda78001d | ||
|
|
f221ab7655 | ||
|
|
c320da2b0e | ||
|
|
6e17dec951 | ||
|
|
8e4678fe82 | ||
|
|
3e25acce24 | ||
|
|
ad81f52991 | ||
|
|
1ff0328039 | ||
|
|
a1abd8e540 | ||
|
|
142c605401 | ||
|
|
4bc426d3df | ||
|
|
57ac3ff788 | ||
|
|
f84589778b | ||
|
|
8687476799 | ||
|
|
f59707b065 | ||
|
|
dbdefe273f | ||
|
|
0b1ac3422f | ||
|
|
f97644e029 | ||
|
|
6790114955 | ||
|
|
896565c63c | ||
|
|
915647db1f | ||
|
|
63659491e9 | ||
|
|
3e08843b14 | ||
|
|
b3fffb877e | ||
|
|
bef5945cd7 | ||
|
|
cc82cd2921 | ||
|
|
a68b51507b | ||
|
|
94c5c7f417 | ||
|
|
30f1f8ee39 | ||
|
|
be07b8825f | ||
|
|
59550f15ef | ||
|
|
26c9f0ddbb | ||
|
|
a6eac17cb7 | ||
|
|
bcced0b176 | ||
|
|
ab3737ac52 | ||
|
|
60bb67f13c | ||
|
|
d33538839d | ||
|
|
be55bbe7c1 | ||
|
|
133a7500f9 | ||
|
|
5cc01532d6 | ||
|
|
18b281e425 | ||
|
|
5901559835 | ||
|
|
21919d9166 | ||
|
|
693b1ecb78 | ||
|
|
215200db9d | ||
|
|
c76b652317 | ||
|
|
88b5ee6e1b | ||
|
|
2c25f550dc | ||
|
|
066e811ccf | ||
|
|
92555a2ed6 | ||
|
|
59a2a51c6d | ||
|
|
a2c2182989 | ||
|
|
7d2695ec11 | ||
|
|
b972c99616 | ||
|
|
14acdbcb5a | ||
|
|
2cd5d65197 | ||
|
|
9b51510fa8 | ||
|
|
7a90abde0a | ||
|
|
b0eaf7fa8b | ||
|
|
aece5c2bfd | ||
|
|
24b7b616d5 | ||
|
|
74e73751b1 |
9
.github/dependabot.yml
vendored
9
.github/dependabot.yml
vendored
@@ -165,6 +165,15 @@ updates:
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/Containers/notify-push"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
time: "12:00"
|
||||
open-pull-requests-limit: 10
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/Containers/docker-socket-proxy"
|
||||
schedule:
|
||||
|
||||
14
.github/release.yml
vendored
Normal file
14
.github/release.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
changelog:
|
||||
categories:
|
||||
- title: 🏕 New features and other improvements
|
||||
labels:
|
||||
- enhancement
|
||||
- title: 🐞 Fixed bugs
|
||||
labels:
|
||||
- bug
|
||||
- title: 👒 Updated dependencies
|
||||
labels:
|
||||
- dependencies
|
||||
- title: 📄 Improved documentation
|
||||
labels:
|
||||
- documentation
|
||||
4
.github/workflows/command-rebase.yml
vendored
4
.github/workflows/command-rebase.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2
|
||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2
|
||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
37
.github/workflows/community-containers.yml
vendored
Normal file
37
.github/workflows/community-containers.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Validate community containers
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'community-containers/**'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'community-containers/**'
|
||||
|
||||
jobs:
|
||||
validator-community-containers:
|
||||
name: Validate community containers
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
- name: Validate structure
|
||||
run: |
|
||||
CONTAINERS="$(find ./community-containers -mindepth 1 -maxdepth 1 -type d)"
|
||||
mapfile -t CONTAINERS <<< "$CONTAINERS"
|
||||
for container in "${CONTAINERS[@]}"; do
|
||||
container="$(echo "$container" | sed 's|./community-containers/||')"
|
||||
if ! [ -f ./community-containers/"$container"/"$container.json" ]; then
|
||||
echo ".json file must be named like its parent folder $container"
|
||||
FAIL=1
|
||||
fi
|
||||
if ! [ -f ./community-containers/"$container"/readme.md ]; then
|
||||
echo "There must be a readme.md file in the folder!"
|
||||
FAIL=1
|
||||
fi
|
||||
if [ -n "$FAIL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
22
.github/workflows/docker-lint.yml
vendored
22
.github/workflows/docker-lint.yml
vendored
@@ -27,28 +27,20 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install npm and dockerfilelint
|
||||
- name: Install hadolint
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install nodejs npm -y --no-install-recommends
|
||||
npm install -g dockerfilelint
|
||||
wget https://github.com/replicatedhq/dockerfilelint/pull/201.patch -O /usr/local/lib/node_modules/dockerfilelint/201.patch
|
||||
CURRENT_DIR=$PWD
|
||||
cd /usr/local/lib/node_modules/dockerfilelint/
|
||||
git apply 201.patch
|
||||
cd $CURRENT_DIR
|
||||
cat << RULES > ./.dockerfilelintrc
|
||||
rules:
|
||||
sudo_usage: off
|
||||
RULES
|
||||
sudo wget https://github.com/hadolint/hadolint/releases/latest/download/hadolint-Linux-x86_64 -O /usr/bin/hadolint
|
||||
sudo chmod +x /usr/bin/hadolint
|
||||
|
||||
- name: run lint
|
||||
run: |
|
||||
DOCKERFILES="$(find ./Containers -name Dockerfile)"
|
||||
mapfile -t DOCKERFILES <<< "$DOCKERFILES"
|
||||
for file in "${DOCKERFILES[@]}"; do
|
||||
dockerfilelint "$file" --config ./ | tee -a ./dockerfilelint.log
|
||||
# DL3018 warning: Pin versions in apk add. Instead of `apk add <package>` use `apk add <package>=<version>`
|
||||
# DL4006 warning: Set the SHELL option -o pipefail before RUN with a pipe in it. If you are using /bin/sh in an alpine image or if your shell is symlinked to busybox then consider explicitly setting your SHELL to /bin/ash, or disable this check
|
||||
hadolint "$file" --ignore DL3018 --ignore DL4006 | tee -a ./hadolint.log
|
||||
done
|
||||
if grep "^Issues: [0-9]" ./dockerfilelint.log; then
|
||||
if grep -q "DL[0-9]\+\|SC[0-9]\+" ./hadolint.log; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
12
.github/workflows/json-validator.yml
vendored
12
.github/workflows/json-validator.yml
vendored
@@ -22,4 +22,14 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install python3-pip -y --no-install-recommends
|
||||
sudo pip3 install json-spec
|
||||
json validate --schema-file=php/containers-schema.json --document-file=php/containers.json
|
||||
if ! json validate --schema-file=php/containers-schema.json --document-file=php/containers.json; then
|
||||
exit 1
|
||||
fi
|
||||
JSON_FILES="$(find ./community-containers -name '*.json')"
|
||||
mapfile -t JSON_FILES <<< "$JSON_FILES"
|
||||
for file in "${JSON_FILES[@]}"; do
|
||||
json validate --schema-file=php/containers-schema.json --document-file="$file" 2>&1 | tee -a ./json-validator.log
|
||||
done
|
||||
if grep -q "document does not validate with schema." ./json-validator.log; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
2
.github/workflows/lint-helm.yml
vendored
2
.github/workflows/lint-helm.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
version: v3.11.1
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.4.0
|
||||
uses: helm/chart-testing-action@v2.6.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
id: lint
|
||||
|
||||
2
.github/workflows/lock-threads.yml
vendored
2
.github/workflows/lock-threads.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
action:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v4
|
||||
- uses: dessant/lock-threads@v5
|
||||
with:
|
||||
issue-inactive-days: '14'
|
||||
process-only: 'issues'
|
||||
|
||||
16
.github/workflows/talk.yml
vendored
16
.github/workflows/talk.yml
vendored
@@ -11,18 +11,18 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run talk-update
|
||||
- name: Run talk-container-update
|
||||
run: |
|
||||
# Spreed
|
||||
spreed_version="$(
|
||||
git ls-remote https://github.com/nextcloud/spreed v*.*.* \
|
||||
# Recording
|
||||
recording_version="$(
|
||||
git ls-remote https://github.com/nextcloud/nextcloud-talk-recording v* \
|
||||
| cut -d/ -f3 \
|
||||
| sort -V \
|
||||
| grep -E "^v[0-9]+\.[0-9]+\.[0-9]+$" \
|
||||
| grep -E "^v[0-9\.]+$" \
|
||||
| tail -1
|
||||
)"
|
||||
sed -i "s|^ENV RECORDING_VERSION.*$|ENV RECORDING_VERSION $spreed_version|" ./Containers/talk-recording/Dockerfile
|
||||
curl -L "https://raw.githubusercontent.com/nextcloud/spreed/$spreed_version/recording/server.conf.in" -o Containers/talk-recording/recording.conf
|
||||
sed -i "s|^ENV RECORDING_VERSION.*$|ENV RECORDING_VERSION $recording_version|" ./Containers/talk-recording/Dockerfile
|
||||
curl -L "https://raw.githubusercontent.com/nextcloud/nextcloud-talk-recording/$recording_version/server.conf.in" -o Containers/talk-recording/recording.conf
|
||||
|
||||
# Signaling
|
||||
signaling_version="$(
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
with:
|
||||
commit-message: talk-update automated change
|
||||
signoff: true
|
||||
title: talk update
|
||||
title: talk container update
|
||||
body: Automated talk container update
|
||||
labels: dependencies, 3. to review
|
||||
milestone: next
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
FROM caddy:2.7.4-alpine as caddy
|
||||
FROM caddy:2.7.5-alpine as caddy
|
||||
|
||||
FROM httpd:2.4.57-alpine3.18
|
||||
FROM httpd:2.4.58-alpine3.18
|
||||
|
||||
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ while ! nc -z "$NEXTCLOUD_HOST" 9000; do
|
||||
done
|
||||
|
||||
# Get ipv4-address of Apache
|
||||
IPv4_ADDRESS="$(dig nextcloud-aio-apache A +short | head -1)"
|
||||
IPv4_ADDRESS="$(dig nextcloud-aio-apache A +short +search | head -1)"
|
||||
# Bring it in CIDR notation
|
||||
# shellcheck disable=SC2001
|
||||
IPv4_ADDRESS="$(echo "$IPv4_ADDRESS" | sed 's|[0-9]\+$|1/32|')"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM alpine:3.18.3
|
||||
FROM alpine:3.18.4
|
||||
|
||||
RUN set -ex; \
|
||||
\
|
||||
@@ -16,6 +16,7 @@ VOLUME /root
|
||||
COPY --chmod=770 *.sh /
|
||||
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
LABEL com.centurylinklabs.watchtower.enable="false"
|
||||
|
||||
@@ -72,10 +72,10 @@ if [ "$BORG_MODE" = backup ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test that nothing is empty
|
||||
for directory in "${VOLUME_DIRS[@]}"; do
|
||||
if [ -z "$(ls -A "$directory")" ] && [ "$directory" != "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch" ]; then
|
||||
echo "$directory is empty which is not allowed."
|
||||
# Test that default volumes are not empty
|
||||
for volume in "${DEFAULT_VOLUMES[@]}"; do
|
||||
if [ -z "$(ls -A "/nextcloud_aio_volumes/$volume")" ] && [ "$volume" != "nextcloud_aio_elasticsearch" ]; then
|
||||
echo "/nextcloud_aio_volumes/$volume is empty which should not happen!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
|
||||
FROM clamav/clamav:1.2.0-1
|
||||
FROM clamav/clamav:1.2.1-16
|
||||
|
||||
COPY clamav.conf /tmp/clamav.conf
|
||||
|
||||
RUN set -ex; \
|
||||
apk add --no-cache tzdata; \
|
||||
cat /tmp/clamav.conf | tee -a /etc/clamav/clamd.conf; \
|
||||
cat /tmp/clamav.conf >> /etc/clamav/clamd.conf; \
|
||||
rm /tmp/clamav.conf; \
|
||||
mkdir -p /var/run/clamav /run/lock; \
|
||||
chown -R clamav:clamav /var/run/clamav /run/clamav /var/log/clamav /var/lock /run/lock; \
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
|
||||
FROM collabora/code:23.05.3.1.1
|
||||
FROM collabora/code:23.05.5.4.1
|
||||
|
||||
USER root
|
||||
|
||||
# hadolint ignore=DL3008
|
||||
RUN set -ex; \
|
||||
\
|
||||
apt-get update; \
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
FROM haproxy:2.8.3-alpine3.18
|
||||
FROM haproxy:2.8.4-alpine3.18
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
ENV NEXTCLOUD_HOST nextcloud-aio-nextcloud
|
||||
RUN set -ex; \
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Inspiration: https://github.com/Tecnativa/docker-socket-proxy/blob/master/haproxy.cfg
|
||||
|
||||
global
|
||||
maxconn 10
|
||||
|
||||
defaults
|
||||
timeout connect 10s
|
||||
timeout client 10s
|
||||
@@ -9,6 +12,8 @@ frontend http
|
||||
mode http
|
||||
bind :::2375 v4v6
|
||||
http-request deny unless { src 127.0.0.1 } || { src ::1 } || { src NC_IPV4_PLACEHOLDER } || { src NC_IPV6_PLACEHOLDER }
|
||||
# docker system _ping
|
||||
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/_ping } METH_GET
|
||||
# container inspect: GET containers/%s/json
|
||||
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/nc_app_[a-zA-Z0-9_.-]+/json } METH_GET
|
||||
# container start/stop: POST containers/%s/start containers/%s/stop
|
||||
@@ -30,7 +35,7 @@ frontend http
|
||||
http-request deny if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/create } nc_app_container_name !one_mount_volume binds_present type_not_volume METH_POST
|
||||
|
||||
# ACL to restrict container creation, that it has HostConfig.Privileged not set
|
||||
acl no_privileged_flag req.body -m reg -i "\"HostConfig\":\s?{[^}]*\"Privileged\"\s*:"
|
||||
acl no_privileged_flag req.body -m reg -i "\"HostConfig\":\s?{[^}]*\"Privileged\""
|
||||
# ACL to allow mount volume with strict pattern for name: nc_app_[a-zA-Z0-9_.-]+_data
|
||||
acl nc_app_volume_data_only req.body -m reg -i "\"Mounts\":\s?\[\s?{[^}]*\"Source\":\s?\"nc_app_[a-zA-Z0-9_.-]+_data\""
|
||||
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/create } nc_app_container_name !no_privileged_flag nc_app_volume_data_only METH_POST
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
nc -z "$NEXTCLOUD_HOST" 9000 || exit 0
|
||||
nc -z "$NEXTCLOUD_HOST" 9001 || exit 0
|
||||
nc -z localhost 2375 || exit 1
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Only start container if nextcloud is accessible
|
||||
while ! nc -z "$NEXTCLOUD_HOST" 9000; do
|
||||
while ! nc -z "$NEXTCLOUD_HOST" 9001; do
|
||||
echo "Waiting for Nextcloud to start..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
set -x
|
||||
IPv4_ADDRESS_NC="$(dig nextcloud-aio-nextcloud IN A +short | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
IPv4_ADDRESS_NC="$(dig nextcloud-aio-nextcloud IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
HAPROXYFILE="$(sed "s|NC_IPV4_PLACEHOLDER|$IPv4_ADDRESS_NC|" /haproxy.cfg)"
|
||||
echo "$HAPROXYFILE" > /tmp/haproxy.cfg
|
||||
|
||||
IPv6_ADDRESS_NC="$(dig nextcloud-aio-nextcloud AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
IPv6_ADDRESS_NC="$(dig nextcloud-aio-nextcloud AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
if [ -n "$IPv6_ADDRESS_NC" ]; then
|
||||
HAPROXYFILE="$(sed "s|NC_IPV6_PLACEHOLDER|$IPv6_ADDRESS_NC|" /tmp/haproxy.cfg)"
|
||||
else
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM alpine:3.18.3
|
||||
FROM alpine:3.18.4
|
||||
RUN set -ex; \
|
||||
apk add --no-cache bash lighttpd netcat-openbsd; \
|
||||
adduser -S www-data -G www-data; \
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
|
||||
FROM elasticsearch:8.9.2
|
||||
FROM elasticsearch:8.11.0
|
||||
|
||||
USER root
|
||||
|
||||
# hadolint ignore=DL3008
|
||||
RUN set -ex; \
|
||||
\
|
||||
export DEBIAN_FRONTEND=noninteractive; \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
FROM golang:1.21.1-alpine3.18 as go
|
||||
FROM golang:1.21.4-alpine3.18 as go
|
||||
|
||||
ENV IMAGINARY_HASH b632dae8cc321452c3f85bcae79c580b1ae1ed84
|
||||
ENV IMAGINARY_HASH 7efb66c243056e5b3b65215e101be7915983e364
|
||||
|
||||
RUN set -ex; \
|
||||
apk add --no-cache \
|
||||
@@ -12,7 +12,7 @@ RUN set -ex; \
|
||||
build-base; \
|
||||
go install github.com/h2non/imaginary@"$IMAGINARY_HASH";
|
||||
|
||||
FROM alpine:3.18.3
|
||||
FROM alpine:3.18.4
|
||||
RUN set -ex; \
|
||||
apk add --no-cache \
|
||||
tzdata \
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
}
|
||||
|
||||
http://:80 {
|
||||
redir https://{host}{uri}
|
||||
redir https://{host}{uri} permanent
|
||||
}
|
||||
|
||||
https://:8443 {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Docker CLI is a requirement
|
||||
FROM docker:24.0.6-cli as docker
|
||||
FROM docker:24.0.7-cli as docker
|
||||
|
||||
# Caddy is a requirement
|
||||
FROM caddy:2.7.4-alpine as caddy
|
||||
FROM caddy:2.7.5-alpine as caddy
|
||||
|
||||
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.18/fpm/Dockerfile
|
||||
FROM php:8.2.10-fpm-alpine3.18
|
||||
FROM php:8.2.12-fpm-alpine3.18
|
||||
|
||||
EXPOSE 80
|
||||
EXPOSE 8080
|
||||
@@ -16,6 +16,7 @@ COPY --from=docker /usr/local/bin/docker /usr/local/bin/docker
|
||||
|
||||
WORKDIR /var/www/docker-aio
|
||||
|
||||
# hadolint ignore=SC2086,DL3047,DL3003,DL3004
|
||||
RUN set -ex; \
|
||||
apk add --no-cache shadow; \
|
||||
groupmod -g 333 xfs; \
|
||||
@@ -41,7 +42,7 @@ RUN set -ex; \
|
||||
apk add --no-cache --virtual .build-deps \
|
||||
autoconf \
|
||||
build-base; \
|
||||
pecl install APCu-5.1.22; \
|
||||
pecl install APCu-5.1.23; \
|
||||
docker-php-ext-enable apcu; \
|
||||
rm -r /tmp/pear; \
|
||||
runDeps="$( \
|
||||
@@ -50,7 +51,7 @@ RUN set -ex; \
|
||||
| sort -u \
|
||||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||
)"; \
|
||||
apk add --virtual .nextcloud-aio-rundeps $runDeps; \
|
||||
apk add --no-cache --virtual .nextcloud-aio-rundeps $runDeps; \
|
||||
apk del .build-deps; \
|
||||
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
@@ -64,7 +65,7 @@ RUN set -ex; \
|
||||
chmod +x /usr/local/bin/composer; \
|
||||
cd /var/www/docker-aio; \
|
||||
git clone https://github.com/nextcloud-releases/all-in-one.git --depth 1 .; \
|
||||
find ./ -maxdepth 1 -mindepth 1 -not -path ./php -exec rm -r {} \; ; \
|
||||
find ./ -maxdepth 1 -mindepth 1 -not -path ./php -not -path ./community-containers -exec rm -r {} \; ; \
|
||||
chown www-data:www-data -R /var/www/docker-aio; \
|
||||
cd php; \
|
||||
sudo -u www-data composer install --no-dev; \
|
||||
@@ -120,6 +121,7 @@ COPY --chmod=664 Caddyfile /Caddyfile
|
||||
COPY --chmod=664 supervisord.conf /supervisord.conf
|
||||
COPY mastercontainer.conf /etc/apache2/sites-available/mastercontainer.conf
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
|
||||
@@ -12,6 +12,11 @@ while true; do
|
||||
export AUTOMATIC_UPDATES=0
|
||||
export START_CONTAINERS=1
|
||||
fi
|
||||
if [ "$(sed -n '3p' "/mnt/docker-aio-config/data/daily_backup_time")" != 'successNotificationsAreNotEnabled' ]; then
|
||||
export SEND_SUCCESS_NOTIFICATIONS=1
|
||||
else
|
||||
export SEND_SUCCESS_NOTIFICATIONS=0
|
||||
fi
|
||||
set +x
|
||||
if [ -f "/mnt/docker-aio-config/data/daily_backup_running" ]; then
|
||||
export LOCK_FILE_PRESENT=1
|
||||
|
||||
@@ -105,7 +105,7 @@ if [ "$DAILY_BACKUP" = 1 ] && ([ "$AUTOMATIC_UPDATES" = 1 ] || [ "$START_CONTAIN
|
||||
done
|
||||
fi
|
||||
echo "Sending backup notification..."
|
||||
sudo -u www-data php /var/www/docker-aio/php/src/Cron/BackupNotification.php
|
||||
sudo -E -u www-data php /var/www/docker-aio/php/src/Cron/BackupNotification.php
|
||||
fi
|
||||
|
||||
echo "Daily backup script has finished"
|
||||
|
||||
@@ -179,7 +179,7 @@ It is set to '$APACHE_PORT'."
|
||||
fi
|
||||
fi
|
||||
if [ -n "$APACHE_IP_BINDING" ]; then
|
||||
if ! echo "$APACHE_IP_BINDING" | grep -q '^[0-9.]\+$'; then
|
||||
if ! echo "$APACHE_IP_BINDING" | grep -q '^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$\|^[0-9a-f:]\+$'; then
|
||||
print_red "You provided an ip-address for the apache container's ip-binding but it was not a valid ip-address.
|
||||
It is set to '$APACHE_IP_BINDING'."
|
||||
exit 1
|
||||
@@ -241,6 +241,20 @@ It is set to '$NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS'."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [ -n "$AIO_COMMUNITY_CONTAINERS" ]; then
|
||||
read -ra AIO_CCONTAINERS <<< "$AIO_COMMUNITY_CONTAINERS"
|
||||
for container in "${AIO_CCONTAINERS[@]}"; do
|
||||
if ! [ -d "/var/www/docker-aio/community-containers/$container" ]; then
|
||||
print_red "The community container $container was not found!"
|
||||
FAIL_CCONTAINERS=1
|
||||
fi
|
||||
done
|
||||
if [ -n "$FAIL_CCONTAINERS" ]; then
|
||||
print_red "You've set AIO_COMMUNITY_CONTAINERS but at least one container was not found.
|
||||
It is set to '$AIO_COMMUNITY_CONTAINERS'."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check DNS resolution
|
||||
# Prevents issues like https://github.com/nextcloud/all-in-one/discussions/565
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
FROM php:8.1.23-fpm-alpine3.18
|
||||
FROM php:8.1.25-fpm-alpine3.18
|
||||
|
||||
ENV PHP_MEMORY_LIMIT 512M
|
||||
ENV PHP_UPLOAD_LIMIT 10G
|
||||
ENV PHP_MAX_TIME 3600
|
||||
ENV NEXTCLOUD_VERSION 27.1.0
|
||||
ENV NEXTCLOUD_VERSION 27.1.3
|
||||
ENV AIO_TOKEN 123456
|
||||
ENV AIO_URL localhost
|
||||
|
||||
@@ -16,6 +16,7 @@ VOLUME /mnt/ncdata
|
||||
VOLUME /var/www/html
|
||||
|
||||
# Custom: change id of www-data user as it needs to be the same like on old installations
|
||||
# hadolint ignore=SC2086,DL3003
|
||||
RUN set -ex; \
|
||||
apk add --no-cache shadow; \
|
||||
deluser www-data; \
|
||||
@@ -67,9 +68,9 @@ RUN set -ex; \
|
||||
; \
|
||||
\
|
||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||
pecl install APCu-5.1.22; \
|
||||
pecl install APCu-5.1.23; \
|
||||
pecl install memcached-3.2.0; \
|
||||
pecl install redis-6.0.0; \
|
||||
pecl install redis-6.0.2; \
|
||||
pecl install imagick-3.7.0; \
|
||||
\
|
||||
docker-php-ext-enable \
|
||||
@@ -85,7 +86,7 @@ RUN set -ex; \
|
||||
| sort -u \
|
||||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||
)"; \
|
||||
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||
apk add --no-cache --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||
apk del .build-deps; \
|
||||
\
|
||||
# set recommended PHP.ini settings
|
||||
@@ -170,7 +171,7 @@ RUN set -ex; \
|
||||
| sort -u \
|
||||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||
)"; \
|
||||
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||
apk add --no-cache --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||
apk del .build-deps; \
|
||||
\
|
||||
mkdir -p \
|
||||
@@ -189,14 +190,15 @@ RUN set -ex; \
|
||||
sudo \
|
||||
grep \
|
||||
nodejs \
|
||||
bind-tools \
|
||||
coreutils; \
|
||||
\
|
||||
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm.max_children =.*/pm.max_children = 80/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm.start_servers =.*/pm.start_servers = 2/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm.min_spare_servers =.*/pm.min_spare_servers = 1/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm.max_spare_servers =.*/pm.max_spare_servers = 3/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
# Sync this with max db connections
|
||||
# We don't actually expect so many children but don't want to limit it artificially because people will report issues otherwise.
|
||||
# Also children will usually be terminated again after the process is done due to the ondemand setting
|
||||
sed -i 's/^pm.max_children =.*/pm.max_children = 5000/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's|access.log = /proc/self/fd/2|access.log = /proc/self/fd/1|' /usr/local/etc/php-fpm.d/docker.conf; \
|
||||
\
|
||||
rm -rf /tmp/nextcloud-aio && \
|
||||
@@ -219,6 +221,7 @@ RUN set -ex; \
|
||||
# Give root a random password
|
||||
echo "root:$(openssl rand -base64 12)" | chpasswd
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
|
||||
|
||||
@@ -12,4 +12,5 @@ $CONFIG = array (
|
||||
'writable' => true,
|
||||
),
|
||||
),
|
||||
'appsallowlist' => getenv('APPS_ALLOWLIST') ? explode(" ", getenv('APPS_ALLOWLIST')) : [],
|
||||
);
|
||||
|
||||
20
Containers/nextcloud/config/smtp.config.php
Normal file
20
Containers/nextcloud/config/smtp.config.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||
$CONFIG = array (
|
||||
'mail_smtpmode' => 'smtp',
|
||||
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||
);
|
||||
|
||||
if (getenv('SMTP_PASSWORD')) {
|
||||
$CONFIG['mail_smtppassword'] = getenv('SMTP_PASSWORD');
|
||||
} else {
|
||||
$CONFIG['mail_smtppassword'] = '';
|
||||
}
|
||||
}
|
||||
@@ -30,13 +30,6 @@ redis.session.lock_retries = -1
|
||||
redis.session.lock_wait_time = 10000
|
||||
REDIS_CONF
|
||||
|
||||
echo "Setting php max children..."
|
||||
MEMORY=$(awk '/MemTotal/ {printf "%d", $2/1024}' /proc/meminfo)
|
||||
PHP_MAX_CHILDREN=$((MEMORY/50))
|
||||
if [ -n "$PHP_MAX_CHILDREN" ]; then
|
||||
sed -i "s/^pm.max_children =.*/pm.max_children = $PHP_MAX_CHILDREN/" /usr/local/etc/php-fpm.d/www.conf
|
||||
fi
|
||||
|
||||
# Check permissions in ncdata
|
||||
touch "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" &>/dev/null
|
||||
if ! [ -f "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" ]; then
|
||||
@@ -365,6 +358,9 @@ DATADIR_PERMISSION_CONF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2016
|
||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
||||
|
||||
rm "$NEXTCLOUD_DATA_DIR/update.failed"
|
||||
bash /notify.sh "Nextcloud update to $image_version successful!" "Feel free to inspect the Nextcloud container logs for more info."
|
||||
|
||||
@@ -468,6 +464,10 @@ php /var/www/html/occ config:system:set one-click-instance --value=true --type=b
|
||||
php /var/www/html/occ config:system:set one-click-instance.user-limit --value=100 --type=int
|
||||
php /var/www/html/occ config:system:set one-click-instance.link --value="https://nextcloud.com/all-in-one/"
|
||||
php /var/www/html/occ app:enable support
|
||||
if [ -n "$SUBSCRIPTION_KEY" ] && [ -z "$(php /var/www/html/occ config:app:get support potential_subscription_key)" ]; then
|
||||
php /var/www/html/occ config:app:set support potential_subscription_key --value="$SUBSCRIPTION_KEY"
|
||||
php /var/www/html/occ config:app:delete support last_check
|
||||
fi
|
||||
|
||||
# Adjusting log files to be stored on a volume
|
||||
echo "Adjusting log files..."
|
||||
@@ -484,8 +484,8 @@ php /var/www/html/occ config:system:set overwrite.cli.url --value="https://$NC_D
|
||||
php /var/www/html/occ config:system:set htaccess.RewriteBase --value="/"
|
||||
php /var/www/html/occ maintenance:update:htaccess
|
||||
|
||||
# Apply dbpersistent setting in order to fix too many db connections
|
||||
php /var/www/html/occ config:system:set dbpersistent --value=true --type=bool
|
||||
# Revert dbpersistent setting to check if it fixes too many db connections
|
||||
php /var/www/html/occ config:system:set dbpersistent --value=false --type=bool
|
||||
|
||||
# Disallow creating local external storages when nothing was mounted
|
||||
if [ -z "$NEXTCLOUD_MOUNT" ]; then
|
||||
@@ -495,8 +495,14 @@ else
|
||||
fi
|
||||
|
||||
# AIO app
|
||||
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "yes" ]; then
|
||||
php /var/www/html/occ app:enable nextcloud-aio
|
||||
if [ "$THIS_IS_AIO" = "true" ]; then
|
||||
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "yes" ]; then
|
||||
php /var/www/html/occ app:enable nextcloud-aio
|
||||
fi
|
||||
else
|
||||
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "no" ]; then
|
||||
php /var/www/html/occ app:disable nextcloud-aio
|
||||
fi
|
||||
fi
|
||||
|
||||
# Notify push
|
||||
@@ -507,8 +513,12 @@ elif [ "$(php /var/www/html/occ config:app:get notify_push enabled)" != "yes" ];
|
||||
elif [ "$SKIP_UPDATE" != 1 ]; then
|
||||
php /var/www/html/occ app:update notify_push
|
||||
fi
|
||||
chmod 775 -R /var/www/html/custom_apps/notify_push/bin/
|
||||
php /var/www/html/occ config:system:set trusted_proxies 0 --value="127.0.0.1"
|
||||
php /var/www/html/occ config:system:set trusted_proxies 1 --value="::1"
|
||||
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
|
||||
php /var/www/html/occ config:system:set trusted_proxies 2 --value="$ADDITIONAL_TRUSTED_PROXY"
|
||||
fi
|
||||
php /var/www/html/occ config:app:set notify_push base_endpoint --value="https://$NC_DOMAIN/push"
|
||||
|
||||
# Collabora
|
||||
@@ -524,11 +534,8 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
|
||||
# Fix https://github.com/nextcloud/all-in-one/issues/188:
|
||||
php /var/www/html/occ config:system:set allow_local_remote_servers --type=bool --value=true
|
||||
# Make collabora more save
|
||||
COLLABORA_IPv4_ADDRESS="$(echo "<?php echo gethostbyname('$NC_DOMAIN');" | php | head -1)"
|
||||
COLLABORA_IPv6_ADDRESS="<?php \$record = dns_get_record('$NC_DOMAIN', DNS_AAAA);"
|
||||
# shellcheck disable=SC2016
|
||||
COLLABORA_IPv6_ADDRESS+='if (!empty($record)) {echo $record[0]["ipv6"];}'
|
||||
COLLABORA_IPv6_ADDRESS="$(echo "$COLLABORA_IPv6_ADDRESS" | php | head -1)"
|
||||
COLLABORA_IPv4_ADDRESS="$(dig "$NC_DOMAIN" A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
COLLABORA_IPv6_ADDRESS="$(dig "$NC_DOMAIN" AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
COLLABORA_ALLOW_LIST="$(php /var/www/html/occ config:app:get richdocuments wopi_allowlist)"
|
||||
if [ -n "$COLLABORA_IPv4_ADDRESS" ]; then
|
||||
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$COLLABORA_IPv4_ADDRESS"; then
|
||||
@@ -557,6 +564,11 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
|
||||
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$PRIVATE_IP_RANGES"; then
|
||||
COLLABORA_ALLOW_LIST+=",$PRIVATE_IP_RANGES"
|
||||
fi
|
||||
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
|
||||
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$ADDITIONAL_TRUSTED_PROXY"; then
|
||||
COLLABORA_ALLOW_LIST+=",$ADDITIONAL_TRUSTED_PROXY"
|
||||
fi
|
||||
fi
|
||||
php /var/www/html/occ config:app:set richdocuments wopi_allowlist --value="$COLLABORA_ALLOW_LIST"
|
||||
else
|
||||
echo "Warning: wopi_allowlist is empty which should not be the case!"
|
||||
@@ -737,7 +749,7 @@ else
|
||||
fi
|
||||
|
||||
# Docker socket proxy
|
||||
if version_greater "$installed_version" "27.1.0.0"; then
|
||||
if version_greater "$installed_version" "27.1.2.0"; then
|
||||
if [ "$DOCKER_SOCKET_PROXY_ENABLED" = 'yes' ]; then
|
||||
if ! [ -d "/var/www/html/custom_apps/app_api" ]; then
|
||||
php /var/www/html/occ app:install app_api
|
||||
|
||||
@@ -119,7 +119,7 @@ if [ -n "$ADDITIONAL_PHP_EXTENSIONS" ]; then
|
||||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||
)";
|
||||
# shellcheck disable=SC2086
|
||||
apk add --virtual .nextcloud-phpext-rundeps $runDeps >/dev/null
|
||||
apk add --no-cache --virtual .nextcloud-phpext-rundeps $runDeps >/dev/null
|
||||
apk del .build-deps >/dev/null
|
||||
fi
|
||||
fi
|
||||
@@ -131,4 +131,25 @@ if ! sudo -E -u www-data bash /entrypoint.sh; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
while [ "$THIS_IS_AIO" = "true" ] && [ -z "$(dig nextcloud-aio-apache A +short +search)" ]; do
|
||||
echo "Waiting for nextcloud-aio-apache to start..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
set -x
|
||||
# shellcheck disable=SC2235
|
||||
if [ "$THIS_IS_AIO" = "true" ] && ([ "$APACHE_PORT" = 443 ] || [ "$APACHE_IP_BINDING" = "127.0.0.1" ] || [ "$APACHE_IP_BINDING" = "::1" ]); then
|
||||
IPv4_ADDRESS_APACHE="$(dig nextcloud-aio-apache A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
IPv6_ADDRESS_APACHE="$(dig nextcloud-aio-apache AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
IPv4_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
IPv6_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
|
||||
sed -i "s|^;listen.allowed_clients|listen.allowed_clients|" /usr/local/etc/php-fpm.d/www.conf
|
||||
sed -i "s|listen.allowed_clients.*|listen.allowed_clients = 127.0.0.1,::1,$IPv4_ADDRESS_APACHE,$IPv6_ADDRESS_APACHE,$IPv4_ADDRESS_MASTERCONTAINER,$IPv6_ADDRESS_MASTERCONTAINER|" /usr/local/etc/php-fpm.d/www.conf
|
||||
sed -i "/^listen.allowed_clients/s/,,/,/g" /usr/local/etc/php-fpm.d/www.conf
|
||||
sed -i "/^listen.allowed_clients/s/,$//" /usr/local/etc/php-fpm.d/www.conf
|
||||
grep listen.allowed_clients /usr/local/etc/php-fpm.d/www.conf
|
||||
fi
|
||||
set +x
|
||||
|
||||
exec "$@"
|
||||
|
||||
@@ -32,3 +32,12 @@ stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
command=/run-exec-commands.sh
|
||||
user=www-data
|
||||
|
||||
# This is a hack but no better solution is there
|
||||
[program:is-nextcloud-online]
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
command=nc -lk 9001
|
||||
user=www-data
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM alpine:3.18.2
|
||||
FROM alpine:3.18.4
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if ! nc -z "$NEXTCLOUD_HOST" 9000; then
|
||||
if ! nc -z "$NEXTCLOUD_HOST" 9001; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ elif [ -z "$REDIS_HOST" ]; then
|
||||
fi
|
||||
|
||||
# Only start container if nextcloud is accessible
|
||||
while ! nc -z "$NEXTCLOUD_HOST" 9000; do
|
||||
while ! nc -z "$NEXTCLOUD_HOST" 9001; do
|
||||
echo "Waiting for Nextcloud to start..."
|
||||
sleep 5
|
||||
done
|
||||
@@ -27,6 +27,21 @@ elif [ "$CPU_ARCH" != "x86_64" ]; then
|
||||
export CPU_ARCH="aarch64"
|
||||
fi
|
||||
|
||||
# Add warning
|
||||
if ! [ -f /nextcloud/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
|
||||
echo "The notify_push binary was not found."
|
||||
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 "See https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html"
|
||||
echo "Afterwards a restart of docker should automatically resolve this."
|
||||
echo "Additionally, make sure to disable VPN software that might be running on your server"
|
||||
echo "Also check your firewall if it blocks connections to github"
|
||||
echo "If it should still not work afterwards, feel free to create a new thread at https://github.com/nextcloud/all-in-one/discussions/new?category=questions and post the Nextcloud container logs there."
|
||||
echo ""
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set sensitive values as env
|
||||
export DATABASE_URL="postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB"
|
||||
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
|
||||
FROM onlyoffice/documentserver:7.4.1.1
|
||||
FROM onlyoffice/documentserver:7.5.1.1
|
||||
|
||||
# USER root is probably used
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
|
||||
FROM postgres:15.4-alpine
|
||||
FROM postgres:15.5-alpine
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
||||
|
||||
@@ -31,7 +31,7 @@ fi
|
||||
if [ -f "$DUMP_DIR/initialization.failed" ]; then
|
||||
echo "The database initialization failed. Most likely was a wrong timezone selected."
|
||||
echo "The selected timezone is '$TZ'."
|
||||
echo "Please check if it is in 'TZ database name' column of the timezone list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"
|
||||
echo "Please check if it is in the 'TZ identifier' column of the timezone list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"
|
||||
echo "For further clues on what went wrong, look at the logs above."
|
||||
echo "You might start again from scratch by following https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance and selecting a proper timezone."
|
||||
exit 1
|
||||
@@ -148,17 +148,23 @@ fi
|
||||
|
||||
# Modify postgresql.conf
|
||||
if [ -f "/var/lib/postgresql/data/postgresql.conf" ]; then
|
||||
echo "Setting max connections..."
|
||||
MEMORY=$(awk '/MemTotal/ {printf "%d", $2/1024}' /proc/meminfo)
|
||||
MAX_CONNECTIONS=$((MEMORY/50+3))
|
||||
if [ -n "$MAX_CONNECTIONS" ]; then
|
||||
sed -i "s|^max_connections =.*|max_connections = $MAX_CONNECTIONS|" "/var/lib/postgresql/data/postgresql.conf"
|
||||
fi
|
||||
echo "Setting postgres values..."
|
||||
|
||||
# Modify conf
|
||||
# 5000 connections is apparently the highest possible value with postgres so set it to that so that we don't run into a limit here.
|
||||
# We don't actually expect so many connections but don't want to limit it artificially because people will report issues otherwise
|
||||
# Also connections should usually be closed again after the process is done
|
||||
# If we should actually exceed this limit, it is definitely a bug in Nextcloud server or some of its apps that does not close connections correctly and not a bug in AIO
|
||||
sed -i "s|^max_connections =.*|max_connections = 5000|" "/var/lib/postgresql/data/postgresql.conf"
|
||||
|
||||
# Do not log checkpoints
|
||||
if grep -q "#log_checkpoints" /var/lib/postgresql/data/postgresql.conf; then
|
||||
sed -i 's|#log_checkpoints.*|log_checkpoints = off|' /var/lib/postgresql/data/postgresql.conf
|
||||
fi
|
||||
|
||||
# Closing idling connections automatically seems to break any logic so was reverted again to default where it is disabled
|
||||
if grep -q "^idle_session_timeout" /var/lib/postgresql/data/postgresql.conf; then
|
||||
sed -i 's|^idle_session_timeout.*|#idle_session_timeout|' /var/lib/postgresql/data/postgresql.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
# Catch docker stop attempts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
|
||||
FROM redis:7.2.1-alpine
|
||||
FROM redis:7.2.3-alpine
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
FROM python:3.11.5-alpine3.18
|
||||
FROM python:3.12.0-alpine3.18
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
ENV RECORDING_VERSION v17.0.3
|
||||
ENV RECORDING_VERSION v0.1
|
||||
ENV ALLOW_ALL false
|
||||
ENV HPB_PROTOCOL https
|
||||
ENV SKIP_VERIFY false
|
||||
@@ -22,15 +22,16 @@ RUN set -ex; \
|
||||
wget \
|
||||
shadow \
|
||||
pulseaudio \
|
||||
openssl; \
|
||||
openssl \
|
||||
build-base \
|
||||
linux-headers; \
|
||||
# chromium chromium-chromedriver?
|
||||
apk add --no-cache geckodriver --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; \
|
||||
useradd -d /tmp --system recording; \
|
||||
# Give root a random password
|
||||
echo "root:$(openssl rand -base64 12)" | chpasswd; \
|
||||
git clone --recursive https://github.com/nextcloud/spreed --depth=1 --single-branch --branch "$RECORDING_VERSION" /src; \
|
||||
mv -v /src/recording/pyproject.toml /src/recording/src/pyproject.toml; \
|
||||
python3 -m pip install /src/recording/src; \
|
||||
git clone --recursive https://github.com/nextcloud/nextcloud-talk-recording --depth=1 --single-branch --branch "$RECORDING_VERSION" /src; \
|
||||
python3 -m pip install --no-cache-dir /src; \
|
||||
rm -rf /src; \
|
||||
touch /etc/recording.conf; \
|
||||
chown recording:recording -R \
|
||||
@@ -42,7 +43,9 @@ RUN set -ex; \
|
||||
git \
|
||||
wget \
|
||||
shadow \
|
||||
openssl;
|
||||
openssl \
|
||||
build-base \
|
||||
linux-headers;
|
||||
|
||||
WORKDIR /tmp
|
||||
USER recording
|
||||
|
||||
@@ -96,11 +96,15 @@
|
||||
#internalsecret = the-shared-secret-for-internal-clients
|
||||
|
||||
[ffmpeg]
|
||||
# The options given to FFmpeg to encode the audio output. The options given here
|
||||
# The ffmpeg executable (name or full path) and the global options given to
|
||||
# ffmpeg. The options given here fully override the default global options.
|
||||
#common = ffmpeg -loglevel level+warning -n
|
||||
|
||||
# The options given to ffmpeg to encode the audio output. The options given here
|
||||
# fully override the default options for the audio output.
|
||||
#outputaudio = -c:a libopus
|
||||
|
||||
# The options given to FFmpeg to encode the video output. The options given here
|
||||
# The options given to ffmpeg to encode the video output. The options given here
|
||||
# fully override the default options for the video output.
|
||||
#outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M
|
||||
|
||||
@@ -109,3 +113,11 @@
|
||||
|
||||
# The extension of the file for audio and video recordings.
|
||||
#extensionvideo = .webm
|
||||
|
||||
[recording]
|
||||
# Browser to use for recordings. Please note that the "chrome" value does not
|
||||
# refer to the web browser, but to the Selenium WebDriver. In practice, "chrome"
|
||||
# will use Google Chrome, or Chromium if Google Chrome is not installed.
|
||||
# Allowed values: firefox, chrome
|
||||
# Defaults to firefox
|
||||
# browser = firefox
|
||||
|
||||
@@ -26,8 +26,6 @@ listen = 0.0.0.0:1234
|
||||
|
||||
[backend]
|
||||
allowall = ${ALLOW_ALL}
|
||||
# TODO: remove secret below when https://github.com/nextcloud/spreed/issues/9580 is fixed
|
||||
secret = ${RECORDING_SECRET}
|
||||
backends = backend-1
|
||||
skipverify = ${SKIP_VERIFY}
|
||||
maxmessagesize = 1024
|
||||
@@ -48,10 +46,14 @@ url = ${HPB_PROTOCOL}://${HPB_DOMAIN}${HPB_PATH}
|
||||
internalsecret = ${INTERNAL_SECRET}
|
||||
|
||||
[ffmpeg]
|
||||
# common = ffmpeg -loglevel level+warning -n
|
||||
# outputaudio = -c:a libopus
|
||||
# outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M
|
||||
extensionaudio = .ogg
|
||||
extensionvideo = .webm
|
||||
|
||||
[recording]
|
||||
browser = firefox
|
||||
RECORDING_CONF
|
||||
|
||||
exec "$@"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
FROM nats:2.9.22-scratch as nats
|
||||
FROM eturnal/eturnal:1.11.1 AS eturnal
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.1.3 as signaling
|
||||
FROM alpine:3.18.3 as janus
|
||||
FROM nats:2.10.5-scratch as nats
|
||||
FROM eturnal/eturnal:1.12.0 AS eturnal
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.2.1 as signaling
|
||||
FROM alpine:3.18.4 as janus
|
||||
|
||||
ARG JANUS_VERSION=v0.14.0
|
||||
WORKDIR /src
|
||||
@@ -33,12 +33,12 @@ RUN set -ex; \
|
||||
make configs; \
|
||||
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
|
||||
|
||||
FROM alpine:3.18.2
|
||||
FROM alpine:3.18.4
|
||||
ENV ETURNAL_ETC_DIR="/conf"
|
||||
COPY --from=janus /usr/local /usr/local
|
||||
COPY --from=eturnal /opt/eturnal /opt/eturnal
|
||||
COPY --from=nats /nats-server /usr/local/bin/nats-server
|
||||
COPY --from=signaling /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
|
||||
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
|
||||
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal
|
||||
COPY --from=nats --chmod=777 --chown=1000:1000 /nats-server /usr/local/bin/nats-server
|
||||
COPY --from=signaling --chmod=777 --chown=1000:1000 /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
||||
@@ -65,8 +65,9 @@ RUN set -ex; \
|
||||
libusrsctp \
|
||||
libwebsockets \
|
||||
\
|
||||
shadow; \
|
||||
useradd --system eturnal; \
|
||||
shadow \
|
||||
grep; \
|
||||
useradd --system -u 1000 eturnal; \
|
||||
apk del --no-cache \
|
||||
shadow; \
|
||||
\
|
||||
@@ -85,15 +86,12 @@ RUN set -ex; \
|
||||
/var/run/supervisord \
|
||||
/usr/local/lib/janus/loggers; \
|
||||
chown eturnal:eturnal -R \
|
||||
/usr \
|
||||
/opt/eturnal \
|
||||
/etc/nats.conf \
|
||||
/var/log/supervisord \
|
||||
/var/run/supervisord; \
|
||||
chmod 777 -R \
|
||||
/tmp \
|
||||
/conf \
|
||||
/opt/eturnal \
|
||||
/var/run/supervisord \
|
||||
/var/log/supervisord; \
|
||||
ln -s /opt/eturnal/bin/stun /usr/local/bin/stun; \
|
||||
|
||||
@@ -86,9 +86,10 @@ internalsecret = the-shared-secret-for-internal-clients
|
||||
# only be used while running the benchmark client against the server.
|
||||
allowall = false
|
||||
|
||||
# Common shared secret for requests from and to the backend servers if
|
||||
# "allowall" is enabled. This must be the same value as configured in the
|
||||
# Nextcloud admin ui.
|
||||
# Common shared secret for requests from and to the backend servers. Used if
|
||||
# "allowall" is enabled or as fallback for individual backends that don't have
|
||||
# their own secret set.
|
||||
# This must be the same value as configured in the Nextcloud admin ui.
|
||||
#secret = the-shared-secret-for-allowall
|
||||
|
||||
# Timeout in seconds for requests to the backend.
|
||||
@@ -109,8 +110,9 @@ connectionsperhost = 8
|
||||
# URL of the Nextcloud instance
|
||||
#url = https://cloud.domain.invalid
|
||||
|
||||
# Shared secret for requests from and to the backend servers. This must be the
|
||||
# same value as configured in the Nextcloud admin ui.
|
||||
# Shared secret for requests from and to the backend servers. Leave empty to use
|
||||
# the common shared secret from above.
|
||||
# This must be the same value as configured in the Nextcloud admin ui.
|
||||
#secret = the-shared-secret
|
||||
|
||||
# Limit the number of sessions that are allowed to connect to this backend.
|
||||
@@ -129,8 +131,9 @@ connectionsperhost = 8
|
||||
# URL of the Nextcloud instance
|
||||
#url = https://cloud.otherdomain.invalid
|
||||
|
||||
# Shared secret for requests from and to the backend servers. This must be the
|
||||
# same value as configured in the Nextcloud admin ui.
|
||||
# Shared secret for requests from and to the backend servers. Leave empty to use
|
||||
# the common shared secret from above.
|
||||
# This must be the same value as configured in the Nextcloud admin ui.
|
||||
#secret = the-shared-secret
|
||||
|
||||
[nats]
|
||||
|
||||
@@ -19,10 +19,15 @@ elif [ -z "$INTERNAL_SECRET" ]; then
|
||||
fi
|
||||
|
||||
set -x
|
||||
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
IPv4_ADDRESS_TALK_RELAY="$(hostname -i | grep -oP '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1)"
|
||||
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
|
||||
IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
|
||||
set +x
|
||||
|
||||
if [ -n "$IPv4_ADDRESS_TALK" ] && [ "$IPv4_ADDRESS_TALK_RELAY" = "$IPv4_ADDRESS_TALK" ]; then
|
||||
IPv4_ADDRESS_TALK=""
|
||||
fi
|
||||
|
||||
# Turn
|
||||
cat << TURN_CONF > "/conf/eturnal.yml"
|
||||
eturnal:
|
||||
@@ -36,13 +41,14 @@ eturnal:
|
||||
log_dir: stdout
|
||||
log_level: warning
|
||||
secret: "$TURN_SECRET"
|
||||
relay_ipv4_addr: "$IPv4_ADDRESS_TALK"
|
||||
relay_ipv4_addr: "$IPv4_ADDRESS_TALK_RELAY"
|
||||
relay_ipv6_addr: "$IPv6_ADDRESS_TALK"
|
||||
blacklist:
|
||||
blacklist_peers:
|
||||
- recommended
|
||||
whitelist:
|
||||
whitelist_peers:
|
||||
- 127.0.0.1
|
||||
- ::1
|
||||
- "$IPv4_ADDRESS_TALK_RELAY"
|
||||
- "$IPv4_ADDRESS_TALK"
|
||||
- "$IPv6_ADDRESS_TALK"
|
||||
TURN_CONF
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
|
||||
FROM containrrr/watchtower:1.5.3 as watchtower
|
||||
FROM containrrr/watchtower:1.7.1 as watchtower
|
||||
|
||||
FROM alpine:3.18.3
|
||||
FROM alpine:3.18.4
|
||||
|
||||
RUN apk add --no-cache bash
|
||||
COPY --from=watchtower /watchtower /watchtower
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
|
||||
@@ -78,6 +78,6 @@ class Admin implements ISettings {
|
||||
* E.g.: 70
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
return 5;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
52
community-containers/caddy/caddy.json
Normal file
52
community-containers/caddy/caddy.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-caddy",
|
||||
"display_name": "Caddy with geoblocking",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy",
|
||||
"image": "szaimen/aio-caddy",
|
||||
"image_tag": "v1",
|
||||
"internal_port": "443",
|
||||
"restart": "unless-stopped",
|
||||
"ports": [
|
||||
{
|
||||
"ip_binding": "",
|
||||
"port_number": "443",
|
||||
"protocol": "tcp"
|
||||
},
|
||||
{
|
||||
"ip_binding": "",
|
||||
"port_number": "443",
|
||||
"protocol": "udp"
|
||||
}
|
||||
],
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"NC_DOMAIN=%NC_DOMAIN%",
|
||||
"APACHE_PORT=%APACHE_PORT%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_caddy",
|
||||
"destination": "/data",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/nextcloud",
|
||||
"writeable": false
|
||||
}
|
||||
],
|
||||
"aio_variables": [
|
||||
"apache_ip_binding=127.0.0.1",
|
||||
"apache_port=11000"
|
||||
],
|
||||
"nextcloud_exec_commands": [
|
||||
"mkdir '/mnt/ncdata/admin/files/nextcloud-aio-caddy'",
|
||||
"touch '/mnt/ncdata/admin/files/nextcloud-aio-caddy/allowed-countries.txt'",
|
||||
"echo 'Scanning nextcloud-aio-caddy folder for admin user...'",
|
||||
"php /var/www/html/occ files:scan --path='/admin/files/nextcloud-aio-caddy'"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
15
community-containers/caddy/readme.md
Normal file
15
community-containers/caddy/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
## 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.
|
||||
|
||||
### 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!
|
||||
- Make sure that no other service is using port 443 on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep 443` before installing AIO.
|
||||
- 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.
|
||||
- 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!
|
||||
- See 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/szaimen/aio-caddy
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
39
community-containers/dlna/dlna.json
Executable file
39
community-containers/dlna/dlna.json
Executable file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-dlna",
|
||||
"display_name": "DLNA",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/dlna",
|
||||
"image": "thanek/nextcloud-dlna",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "host",
|
||||
"restart": "unless-stopped",
|
||||
"depends_on": [
|
||||
"nextcloud-aio-database"
|
||||
],
|
||||
"environment": [
|
||||
"NC_DOMAIN=%NC_DOMAIN%",
|
||||
"NC_PORT=443",
|
||||
"NEXTCLOUD_DLNA_SERVER_PORT=9999",
|
||||
"NEXTCLOUD_DLNA_FRIENDLY_NAME=nextcloud-aio",
|
||||
"NEXTCLOUD_DATA_DIR=/data",
|
||||
"NEXTCLOUD_DB_TYPE=postgres",
|
||||
"NEXTCLOUD_DB_HOST=%AIO_DATABASE_HOST%",
|
||||
"NEXTCLOUD_DB_PORT=5432",
|
||||
"NEXTCLOUD_DB_NAME=nextcloud_database",
|
||||
"NEXTCLOUD_DB_USER=oc_nextcloud",
|
||||
"NEXTCLOUD_DB_PASS=%DATABASE_PASSWORD%"
|
||||
],
|
||||
"secrets": [
|
||||
"DATABASE_PASSWORD"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/data",
|
||||
"writeable": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
15
community-containers/dlna/readme.md
Executable file
15
community-containers/dlna/readme.md
Executable file
@@ -0,0 +1,15 @@
|
||||
## DLNA server
|
||||
This container bundles DLNA server for your Nextcloud files to be accessible by the clients in your local network. Simply run the container and look for a new media server `nextcloud-aio` in your local network.
|
||||
|
||||
### Notes
|
||||
- This container will work only if the Nextcloud installation is in your home network, it is not suitable for installations on remote servers.
|
||||
- This is not working with Docker Desktop since it requires the `host` networking mode in docker, and it doesn't really share the host's network interfaces in this system
|
||||
- If you have a firewall like ufw configured, you might need to open at least port 9999 TCP and 1900 UDP first in order to make it work.
|
||||
- See 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/thanek/nextcloud-dlna
|
||||
|
||||
### Maintainer
|
||||
https://github.com/thanek
|
||||
|
||||
32
community-containers/fail2ban/fail2ban.json
Normal file
32
community-containers/fail2ban/fail2ban.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-fail2ban",
|
||||
"display_name": "Fail2ban",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban",
|
||||
"image": "szaimen/aio-fail2ban",
|
||||
"image_tag": "v1",
|
||||
"internal_port": "host",
|
||||
"restart": "unless-stopped",
|
||||
"cap_add": [
|
||||
"NET_ADMIN",
|
||||
"NET_RAW"
|
||||
],
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_nextcloud",
|
||||
"destination": "/nextcloud",
|
||||
"writeable": false
|
||||
},
|
||||
{
|
||||
"source": "nextcloud_aio_vaultwarden_logs",
|
||||
"destination": "/vaultwarden",
|
||||
"writeable": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
13
community-containers/fail2ban/readme.md
Normal file
13
community-containers/fail2ban/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
## Fail2ban
|
||||
This container bundles fail2ban and auto-configures it for you in order to block ip-addresses automatically. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, if installed.
|
||||
|
||||
### Notes
|
||||
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
|
||||
- If you get an error like `"ip6tables v1.8.9 (legacy): can't initialize ip6tables table filter': Table does not exist (do you need to insmod?)"`, you need to enable ip6tables on your host via `sudo modprobe ip6table_filter`.
|
||||
- See 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/szaimen/aio-fail2ban
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
34
community-containers/libretranslate/libretranslate.json
Normal file
34
community-containers/libretranslate/libretranslate.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-libretranslate",
|
||||
"display_name": "LibreTranslate",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/libretranslate",
|
||||
"image": "szaimen/aio-libretranslate",
|
||||
"image_tag": "v1",
|
||||
"internal_port": "5000",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_libretranslate_db",
|
||||
"destination": "/app/db",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "nextcloud_aio_libretranslate_models",
|
||||
"destination": "/home/libretranslate/.local",
|
||||
"writeable": true
|
||||
}
|
||||
],
|
||||
"nextcloud_exec_commands": [
|
||||
"php /var/www/html/occ app:install integration_libretranslate",
|
||||
"php /var/www/html/occ app:enable integration_libretranslate",
|
||||
"php /var/www/html/occ config:app:set integration_libretranslate host --value='http://nextcloud-aio-libretranslate'",
|
||||
"php /var/www/html/occ config:app:set integration_libretranslate port --value='5000'"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
19
community-containers/libretranslate/readme.md
Normal file
19
community-containers/libretranslate/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
## LibreTranslate
|
||||
This container bundles LibreTranslate and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
|
||||
- Please note that this community container is currently not working since its integration app is not yet compatible with Nextcloud 27 (Hub 6). You can follow the progress here: https://github.com/v1r0x/integration_libretranslate/issues/1
|
||||
- After the initial startup is done, you might want to change the default language to translate from and to via:
|
||||
```bash
|
||||
# Adjust the values `en` and `de` in commands below accordingly
|
||||
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate from_lang --value="en"
|
||||
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate to_lang --value="de"
|
||||
```
|
||||
- See 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/szaimen/aio-libretranslate
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
45
community-containers/local-ai/local-ai.json
Normal file
45
community-containers/local-ai/local-ai.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-local-ai",
|
||||
"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",
|
||||
"internal_port": "8080",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"MODELS_PATH=/models"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_localai_models",
|
||||
"destination": "/models",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "nextcloud_aio_localai_images",
|
||||
"destination": "/tmp/generated/images/",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/nextcloud",
|
||||
"writeable": false
|
||||
}
|
||||
],
|
||||
"nextcloud_exec_commands": [
|
||||
"mkdir '/mnt/ncdata/admin/files/nextcloud-aio-local-ai'",
|
||||
"touch '/mnt/ncdata/admin/files/nextcloud-aio-local-ai/models.yaml'",
|
||||
"echo 'Scanning nextcloud-aio-local-ai folder for admin user...'",
|
||||
"php /var/www/html/occ files:scan --path='/admin/files/nextcloud-aio-local-ai'",
|
||||
"php /var/www/html/occ app:install integration_openai",
|
||||
"php /var/www/html/occ app:enable integration_openai",
|
||||
"php /var/www/html/occ config:app:set integration_openai url --value http://nextcloud-aio-local-ai:8080",
|
||||
"php /var/www/html/occ app:install assistant",
|
||||
"php /var/www/html/occ app:enable assistant"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
27
community-containers/local-ai/readme.md
Normal file
27
community-containers/local-ai/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
## Local AI
|
||||
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.
|
||||
- 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
|
||||
# Stable Diffusion in NCNN with c++, supported txt2img and img2img
|
||||
- url: github:go-skynet/model-gallery/stablediffusion.yaml
|
||||
|
||||
# Port of OpenAI's Whisper model in C/C++
|
||||
- url: github:go-skynet/model-gallery/whisper-base.yaml
|
||||
name: whisper-1
|
||||
|
||||
# A commercially licensable model based on GPT-J and trained by Nomic AI on the v0 GPT4All dataset.
|
||||
- url: github:go-skynet/model-gallery/gpt4all-j.yaml
|
||||
name: gpt4all-j
|
||||
```
|
||||
- Additionally after doing so, you might want to enable or disable specific features for your models in the integration_openai settings: `https://your-nc-domain.com/settings/admin/connected-accounts`
|
||||
- See 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/szaimen/aio-local-ai
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
33
community-containers/memories/memories.json
Normal file
33
community-containers/memories/memories.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-memories",
|
||||
"display_name": "Memories Transcoder",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/memories",
|
||||
"image": "radialapps/go-vod",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "47788",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"NEXTCLOUD_HOST=https://%NC_DOMAIN%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/mnt/ncdata",
|
||||
"writeable": false
|
||||
}
|
||||
],
|
||||
"devices": [
|
||||
"/dev/dri"
|
||||
],
|
||||
"nextcloud_exec_commands": [
|
||||
"php /var/www/html/occ app:install memories",
|
||||
"php /var/www/html/occ app:enable memories",
|
||||
"php /var/www/html/occ config:system:set memories.vod.external --value true --type bool",
|
||||
"php /var/www/html/occ config:system:set memories.vod.connect --value nextcloud-aio-memories:47788"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
12
community-containers/memories/readme.md
Normal file
12
community-containers/memories/readme.md
Normal file
@@ -0,0 +1,12 @@
|
||||
## Memories
|
||||
This container bundles the hardware-transcoding container of memories and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- In order to actually enable the hardware transcoding, you need to add the following flag to AIO apart from adding this container: https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
|
||||
- See 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/pulsejet/memories
|
||||
|
||||
### Maintainer
|
||||
https://github.com/pulsejet
|
||||
32
community-containers/npmplus/npmplus.json
Normal file
32
community-containers/npmplus/npmplus.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-npmplus",
|
||||
"display_name": "NPMplus",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus",
|
||||
"image": "zoeyvid/npmplus",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "host",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"NC_AIO=true",
|
||||
"NC_DOMAIN=%NC_DOMAIN%"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_npmplus",
|
||||
"destination": "/data",
|
||||
"writeable": true
|
||||
}
|
||||
],
|
||||
"backup_volumes": [
|
||||
"nextcloud_aio_npmplus"
|
||||
],
|
||||
"aio_variables": [
|
||||
"apache_ip_binding=127.0.0.1",
|
||||
"apache_port=11000"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
22
community-containers/npmplus/readme.md
Normal file
22
community-containers/npmplus/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
## NPMplus
|
||||
This container contains a fork of the Nginx Proxy Manager, which is a WebUI for nginx. It will also automatically create a config and cert for AIO.
|
||||
|
||||
### Notes
|
||||
- This container is incompatible with the [caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container. So make sure that you do not enable both at the same time!
|
||||
- Only works on linux since it uses network mode host
|
||||
- You can ignore the NPM configuration of the reverse-proxy.md. The NPMplus fork already contains the changes of the advanced tab.
|
||||
- Make sure that no other service is using port `443 (tcp/upd)` or `81 (tcp)` on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep "443\|81"` before installing AIO.
|
||||
- Please change the default login data first, after you can read inside the logs that the default config for AIO is created and there are no errors.
|
||||
- After the container was started the first time, please check the logs for errors. Then you can open NPMplus on `https://<ip>:81` and change the password.
|
||||
- The default password is `iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi` and the default email is `admin@example.com`
|
||||
- If you want to use NPMplus behind a domain and outside localhost just create a new proxy host inside the NPMplus which proxies to `https`, `127.0.0.1` and port `81` - all other settings should be the same as for the AIO host.
|
||||
- If you want to set env options from this [compose.yaml](https://github.com/ZoeyVid/NPMplus/blob/develop/compose.yaml), please set them inside the `.env` file which you can find in the `nextcloud_aio_npmplus` volume
|
||||
- The data (certs, configs, etc.) of NPMplus will be automatically included in AIOs backup solution!
|
||||
- **Important:** you always need to enable https for your hosts, since `DISABLE_HTTP` is set to true
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
### Repository and Documentation
|
||||
https://github.com/ZoeyVid/NPMplus
|
||||
|
||||
### Maintainer
|
||||
https://github.com/Zoey2936
|
||||
56
community-containers/pi-hole/pi-hole.json
Normal file
56
community-containers/pi-hole/pi-hole.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-pihole",
|
||||
"display_name": "Pi-hole",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/pi-hole",
|
||||
"image": "pihole/pihole",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "8573",
|
||||
"restart": "unless-stopped",
|
||||
"init": false,
|
||||
"ports": [
|
||||
{
|
||||
"ip_binding": "",
|
||||
"port_number": "53",
|
||||
"protocol": "tcp"
|
||||
},
|
||||
{
|
||||
"ip_binding": "",
|
||||
"port_number": "53",
|
||||
"protocol": "udp"
|
||||
},
|
||||
{
|
||||
"ip_binding": "",
|
||||
"port_number": "8573",
|
||||
"protocol": "tcp"
|
||||
}
|
||||
],
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"WEBPASSWORD=%PIHOLE_WEBPASSWORD%",
|
||||
"DNSMASQ_LISTENING=all",
|
||||
"WEB_PORT=8573"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_pihole",
|
||||
"destination": "/etc/pihole",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "nextcloud_aio_pihole_dnsmasq",
|
||||
"destination": "/etc/dnsmasq.d",
|
||||
"writeable": true
|
||||
}
|
||||
],
|
||||
"backup_volumes": [
|
||||
"nextcloud_aio_pihole",
|
||||
"nextcloud_aio_pihole_dnsmasq"
|
||||
],
|
||||
"secrets": [
|
||||
"PIHOLE_WEBPASSWORD"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
community-containers/pi-hole/readme.md
Normal file
18
community-containers/pi-hole/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
## Pi-hole
|
||||
This container bundles pi-hole and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- You should not run this container on a public VPS! It is only intended to run in home networks!
|
||||
- Make sure that no dns server is already running by checking with `sudo netstat -tulpn | grep 53`. Otherwise the container will not be able to start!
|
||||
- The DHCP functionality of Pi-hole has been disabled!
|
||||
- The data of pi-hole will be automatically included in AIOs backup solution!
|
||||
- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-pihole | grep WEBPASSWORD`. There you can configure the pi-hole setup. Also you can add local dns records.
|
||||
- You can configure your home network now to use pi-hole as its dns server by configuring your router.
|
||||
- Additionally, you can configure the docker daemon to use that by editing `/etc/docker/daemon.json` and adding ` { "dns" : [ "ip.address.of.this.server" , "8.8.8.8" ] } `.
|
||||
- See 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/pi-hole/docker-pi-hole
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
41
community-containers/plex/plex.json
Normal file
41
community-containers/plex/plex.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-plex",
|
||||
"display_name": "Plex",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/plex",
|
||||
"image": "plexinc/pms-docker",
|
||||
"image_tag": "latest",
|
||||
"internal_port": "host",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"PLEX_UID=33",
|
||||
"PLEX_GID=33"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_plex",
|
||||
"destination": "/config",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_DATADIR%",
|
||||
"destination": "/data",
|
||||
"writeable": false
|
||||
},
|
||||
{
|
||||
"source": "%NEXTCLOUD_MOUNT%",
|
||||
"destination": "%NEXTCLOUD_MOUNT%",
|
||||
"writeable": false
|
||||
}
|
||||
],
|
||||
"devices": [
|
||||
"/dev/dri"
|
||||
],
|
||||
"backup_volumes": [
|
||||
"nextcloud_aio_plex"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
16
community-containers/plex/readme.md
Normal file
16
community-containers/plex/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
## Plex
|
||||
This container bundles Plex and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- 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!
|
||||
- After adding and starting the container, you need to visit http://ip.address.of.server:32400/manage in order to claim your server with a plex account
|
||||
- The data of Plex will be automatically included in AIOs backup solution!
|
||||
- See 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/plexinc/pms-docker
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
25
community-containers/readme.md
Normal file
25
community-containers/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Community containers
|
||||
This directory features containers that are built for AIO which allows to add additional functionality very easily.
|
||||
|
||||
## Disclaimers
|
||||
⚠️ This is currently beta and not stable yet!
|
||||
|
||||
All containers that are in this directory are community maintained so the responsibility is on the community to keep them updated and secure. There is no guarantee that this will be the case in the future.
|
||||
|
||||
## How to use this?
|
||||
Before adding any additional container, make sure to create a backup via the AIO interface!
|
||||
|
||||
Afterwards, you might want to add additional community containers to the default AIO stack. You can do so by adding `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must match the folder names in this directory! ⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop!
|
||||
|
||||
## How to add containers?
|
||||
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, local-ai, libretranslate, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
|
||||
|
||||
### Is there a list of ideas for new community containers?
|
||||
Yes, see [this list](https://github.com/nextcloud/all-in-one/discussions/categories/ideas?discussions_q=is%3Aopen+category%3AIdeas+label%3A%22help+wanted%22) for already existing ideas for new community containers. Feel free to pick one up and add it to this folder by following the instructions above.
|
||||
|
||||
## How to remove containers from AIOs stack?
|
||||
In some cases, you might want to remove some community containers from the AIO stack again. Here is how to do this.
|
||||
|
||||
First, do a backup from the AIO interface in order to save the current state. Do not start the containers again afterwards! Now simply recreate the mastercontainer and remove any container from the `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` that you do not actually need. If you want to remove all, simply use `--env AIO_COMMUNITY_CONTAINERS=" "`.
|
||||
|
||||
After removing the containers, there might be some data left on your server that you might want to remove. You can get rid of the data by first running `sudo docker rm nextcloud-aio-container1`, (adjust `container1` accordingly) per community-container that you removed. Then run `sudo docker image prune -a` in order to remove all images that are not used anymore. As last step you can get rid of persistent data of these containers that is stored in volumes. You can check if there is some by running `sudo docker volume ls` and look for any volume that matches the ones that you removed. If so, you can remove them with `sudo docker volume rm nextcloud_aio_volume-id` (of course you need to adjust the `volume-id`).
|
||||
16
community-containers/vaultwarden/readme.md
Normal file
16
community-containers/vaultwarden/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
## Vaultwarden
|
||||
This container bundles vaultwarden and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- You need to configure a reverse proxy in order to run this container since vaultwarden needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy or follow https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md and https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples. You need to point the reverse proxy at port 8812 of this server.
|
||||
- Currently, only `bw.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, vaultwarden will use `bw.your-domain.com`. The reverse proxy and domain must be configured accordingly!
|
||||
- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
|
||||
- The data of Vaultwarden will be automatically included in AIOs backup solution!
|
||||
- After adding and starting the container, you need to visit `https://bw.your-domain.com/admin` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-vaultwarden | grep ADMIN_TOKEN`. There you can configure smtp first and then invite users via mail. After this is done, you might disable the admin panel via the reverse proxy by blocking connections to the subdirectory.
|
||||
- See 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/dani-garcia/vaultwarden
|
||||
|
||||
### Maintainer
|
||||
https://github.com/szaimen
|
||||
48
community-containers/vaultwarden/vaultwarden.json
Normal file
48
community-containers/vaultwarden/vaultwarden.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-vaultwarden",
|
||||
"display_name": "Vaultwarden",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden",
|
||||
"image": "vaultwarden/server",
|
||||
"image_tag": "alpine",
|
||||
"internal_port": "8812",
|
||||
"restart": "unless-stopped",
|
||||
"ports": [
|
||||
{
|
||||
"ip_binding": "%APACHE_IP_BINDING%",
|
||||
"port_number": "8812",
|
||||
"protocol": "tcp"
|
||||
}
|
||||
],
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"ROCKET_PORT=8812",
|
||||
"ADMIN_TOKEN=%VAULTWARDEN_ADMIN_TOKEN%",
|
||||
"DOMAIN=https://bw.%NC_DOMAIN%",
|
||||
"LOG_FILE=/logs/vaultwarden.log",
|
||||
"LOG_LEVEL=warn",
|
||||
"SIGNUPS_VERIFY=true",
|
||||
"SIGNUPS_ALLOWED=false"
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"source": "nextcloud_aio_vaultwarden",
|
||||
"destination": "/data",
|
||||
"writeable": true
|
||||
},
|
||||
{
|
||||
"source": "nextcloud_aio_vaultwarden_logs",
|
||||
"destination": "/logs",
|
||||
"writeable": true
|
||||
}
|
||||
],
|
||||
"backup_volumes": [
|
||||
"nextcloud_aio_vaultwarden"
|
||||
],
|
||||
"secrets": [
|
||||
"VAULTWARDEN_ADMIN_TOKEN"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -32,6 +32,8 @@ services:
|
||||
# - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
|
||||
# networks: # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
|
||||
# - nextcloud-aio # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
|
||||
# # Uncomment the following line when using SELinux
|
||||
# security_opt: ["label:disable"]
|
||||
|
||||
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
|
||||
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
|
||||
@@ -47,7 +49,7 @@ services:
|
||||
# - ./sites:/srv
|
||||
# network_mode: "host"
|
||||
|
||||
volumes:
|
||||
volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
|
||||
nextcloud_aio_mastercontainer:
|
||||
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
|
||||
|
||||
|
||||
@@ -38,3 +38,6 @@ This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/m
|
||||
|
||||
1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-beta.yml
|
||||
2. Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-latest.yml, click on `Run workflow`.
|
||||
|
||||
## How to connect to the database?
|
||||
Simply run `sudo docker exec -it nextcloud-aio-database psql -U oc_nextcloud nextcloud_database` and you should be in.
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
# Docker rootless
|
||||
|
||||
**Please note:** Due to a bug in Collabora is the Collabora container currently in rootless mode not working. See https://github.com/CollaboraOnline/online/issues/2800. In that case, you need to run a separate Collabora instance on your own if you want to use this feature. The following flag will be useful https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps.
|
||||
|
||||
You can run AIO with docker rootless by following the steps below.
|
||||
|
||||
0. If docker is already installed, you should consider disabling it first: (`sudo systemctl disable --now docker.service docker.socket`)
|
||||
1. Install docker rootless by following the official documentation: https://docs.docker.com/engine/security/rootless/#install. The easiest way is installing it **Without packages** (`curl -fsSL https://get.docker.com/rootless | sh`). Further limitations, distribution specific hints, etc. are discussed on the same site. Also do not forget to enable the systemd service, which may not be enabled always by default. See https://docs.docker.com/engine/security/rootless/#usage. (`systemctl --user enable docker`)
|
||||
1. If you need ipv6 support, you should enable it by following https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md.
|
||||
1. Do not forget to set the mentioned environmental variables and in best case add them to your `~/.bashrc` file as shown!
|
||||
1. Do not forget to set the mentioned environmental variables `PATH` and `DOCKER_HOST` and in best case add them to your `~/.bashrc` file as shown!
|
||||
1. Also do not forget to run `loginctl enable-linger USERNAME` (and substitute USERNAME with the correct one) in order to make sure that user services are automatically started after every reboot.
|
||||
1. Expose the privileged ports by following https://docs.docker.com/engine/security/rootless/#exposing-privileged-ports. (`sudo setcap cap_net_bind_service=ep $(which rootlesskit); systemctl --user restart docker`)
|
||||
1. Use the official AIO startup command but use `--volume $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock:ro` instead of `--volume /var/run/docker.sock:/var/run/docker.sock:ro` and also add `--env WATCHTOWER_DOCKER_SOCKET_PATH=$XDG_RUNTIME_DIR/docker.sock` to the initial container startup (which is needed for mastercontainer updates to work correctly).
|
||||
1. Use the official AIO startup command but use `--volume $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock:ro` instead of `--volume /var/run/docker.sock:/var/run/docker.sock:ro` and also add `--env WATCHTOWER_DOCKER_SOCKET_PATH=$XDG_RUNTIME_DIR/docker.sock` to the initial container startup (which is needed for mastercontainer updates to work correctly). When you are using Portainer to deploy AIO, the variable `$XDG_RUNTIME_DIR` is not available. In this case, it is necessary to manually add the path (e.g. `/run/user/1000/docker.sock`) to the Docker compose file to replace the `$XDG_RUNTIME_DIR` variable. If you are not sure how to get the path, you can run on the host: `echo $XDG_RUNTIME_DIR`.
|
||||
|
||||
1. Now everything should work like without docker rootless. You can consider using docker-compose for this or running it behind a reverse proxy. Basically the only thing that needs to be adjusted always in the startup command or compose.yaml file (after installing docker rootles) are things that are mentioned in point 3.
|
||||
|
||||
**Please note:** All files outside the containers get created, written to and accessed as the user that is running the docker daemon or a subuid of it. So for the built-in backup to work you need to allow this user to write to the target directory. E.g. with `sudo chown -R USERNAME:GROUPNAME /mnt/backup`. The same applies when changing Nextcloud's datadir. E.g. `sudo chown -R USERNAME:GROUPNAME /mnt/ncdata`. When you want to use the NEXTCLOUD_MOUNT option for local external storage, you need to adjust the permissions of the chosen folders to be accessible/writeable by the userid `100032:100032` (if running `grep ^$(whoami): /etc/subuid` as the user that is running the docker daemon returns 100000 as first value).
|
||||
|
||||
@@ -93,6 +93,7 @@ services:
|
||||
init: true
|
||||
expose:
|
||||
- "9000"
|
||||
- "9001"
|
||||
volumes:
|
||||
- nextcloud_aio_nextcloud:/var/www/html:rw
|
||||
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
|
||||
@@ -141,11 +142,12 @@ services:
|
||||
- RECORDING_SECRET=${RECORDING_SECRET}
|
||||
- TALK_RECORDING_HOST=nextcloud-aio-talk-recording
|
||||
- FULLTEXTSEARCH_PASSWORD=${FULLTEXTSEARCH_PASSWORD}
|
||||
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
|
||||
- APACHE_PORT=${APACHE_PORT}
|
||||
- APACHE_IP_BINDING=${APACHE_IP_BINDING}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- nextcloud-aio
|
||||
tmpfs:
|
||||
- /tmp:exec
|
||||
|
||||
nextcloud-aio-notify-push:
|
||||
image: nextcloud/aio-notify-push:latest
|
||||
@@ -253,7 +255,7 @@ services:
|
||||
|
||||
nextcloud-aio-clamav:
|
||||
image: nextcloud/aio-clamav:latest
|
||||
init: true
|
||||
init: false
|
||||
expose:
|
||||
- "3310"
|
||||
environment:
|
||||
|
||||
@@ -11,6 +11,7 @@ You can run the containers that are build for AIO with docker-compose. This come
|
||||
- You lose the AIO interface
|
||||
- You lose update notifications and automatic updates
|
||||
- You lose all AIO backup and restore features
|
||||
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
|
||||
- **You need to know what you are doing, especially when modifying the compose.yaml file**
|
||||
- For updating, you need to strictly follow the at the bottom described update routine
|
||||
- Probably more
|
||||
|
||||
@@ -33,6 +33,7 @@ NEXTCLOUD_MOUNT=/mnt/ # This allows the Nextcloud container to access d
|
||||
NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
|
||||
NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.
|
||||
NEXTCLOUD_UPLOAD_LIMIT=10G # This allows to change the upload limit of the Nextcloud container
|
||||
REMOVE_DISABLED_APPS=yes # Setting this to no keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud.
|
||||
TALK_PORT=3478 # This allows to adjust the port that the talk container is using.
|
||||
UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
|
||||
IPV6_NETWORK=fd12:3456:789a:2::/64 # IPv6 subnet to use
|
||||
|
||||
@@ -17,6 +17,7 @@ OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].secrets)')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].devices)')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].backup_volumes)')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].nextcloud_exec_commands)')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].image_tag)')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-watchtower"))')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-domaincheck"))')"
|
||||
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-borgbackup"))')"
|
||||
@@ -31,6 +32,7 @@ echo "$OUTPUT" | yq -P > ./manual-install/containers.yml
|
||||
cd manual-install || exit
|
||||
sed -i "s|'||g" containers.yml
|
||||
sed -i '/display_name:/d' containers.yml
|
||||
sed -i '/THIS_IS_AIO/d' containers.yml
|
||||
sed -i '/stop_grace_period:/s/$/s/' containers.yml
|
||||
sed -i '/: \[\]/d' containers.yml
|
||||
sed -i 's|- source: |- |' containers.yml
|
||||
|
||||
17
migration.md
17
migration.md
@@ -18,6 +18,7 @@ The procedure for migrating only the files works like this:
|
||||
1. Next, run `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chown -R 33:0 /mnt/ncdata/` and `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chmod -R 750 /mnt/ncdata/` to apply the correct permissions. (Or if `NEXTCLOUD_DATADIR` was provided, apply `chown -R 33:0` and `chmod -R 750` to the chosen path.)
|
||||
1. Start the containers again and wait until all containers are running
|
||||
1. Run `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan-app-data && sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all` in order to scan all files in the datadirectory.
|
||||
1. If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
|
||||
|
||||
## Migrate the files and the database
|
||||
**Please note**: this is much more complicated than migrating only the files and also not as failproof so be warned! Also, this will not work on former snap installations as the snap is read-only and thus you cannot install the necessary `pdo_pgsql` PHP extension. So if migrating from snap, you will need to use one of the other methods. However you could try to ask if the snaps maintainer could add this one small PHP extension to the snap here: https://github.com/nextcloud-snap/nextcloud-snap/issues which would allow for an easy migration.
|
||||
@@ -84,5 +85,21 @@ The procedure for migrating the files and the database works like this:
|
||||
Now the whole Nextcloud instance should work again.<br>
|
||||
If not, feel free to restore the AIO instance from backup and start at step 8 again.
|
||||
|
||||
If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
|
||||
|
||||
## Use the user_migration app
|
||||
A new way since the Nextcloud update to 24 is to use the new [user_migration app](https://apps.nextcloud.com/apps/user_migration#app-gallery). It allows to export the most important data on one instance and import it on a different Nextcloud instance. For that, you need to install and enable the user_migration app on your old instance, trigger the export for the user, create the user on the new instance, log in with that user and import the archive that was created during the export. This then needs to be done for each user that you want to migrate.
|
||||
|
||||
If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
|
||||
|
||||
# Synchronising with clients after migration
|
||||
#### From https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html#synchronising-with-clients-after-data-recovery
|
||||
By default the Nextcloud server is considered the authoritative source for the data. If the data on the server and the client differs clients will default to fetching the data from the server.
|
||||
|
||||
If the recovered backup is outdated the state of the clients may be more up to date than the state of the server. In this case also make sure to run `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ maintenance:data-fingerprint` command afterwards. It changes the logic of the synchronisation algorithm to try an recover as much data as possible. Files missing on the server are therefore recovered from the clients and in case of different content the users will be asked.
|
||||
|
||||
>[!Note]
|
||||
>The usage of maintenance:data-fingerprint can cause conflict dialogues and difficulties deleting files on the client. Therefore it’s only recommended to prevent dataloss if the backup was outdated.
|
||||
|
||||
|
||||
If you are running multiple application servers you will need to make sure the config files are synced between them so that the updated data-fingerprint is applied on all instances.
|
||||
|
||||
@@ -7,7 +7,7 @@ Below is described more in detail how the the second way works.
|
||||
|
||||
## Run multiple AIO instances on the same server with docker rootless
|
||||
1. Create as many linux users as you need first. The easiest way is to use `sudo adduser` and follow the setup for that. Make sure to create a strong unique password for each of them and write it down!
|
||||
1. Log in as each of the users e.g. by opening a new SSH connection and install docker rootless for each of them by following step 0-4 of the [docker rootless documentation](./docker-rootless.md).
|
||||
1. Log in as each of the users by opening a new SSH connection as the user and install docker rootless for each of them by following step 0-1 and 3-4 of the [docker rootless documentation](./docker-rootless.md) (you can skip step 2 in this case).
|
||||
1. Then install AIO in reverse proxy mode by using the command that is descriebed in step 2 and 3 of the [reverse proxy documentation](./reverse-proxy.md) but use a different `APACHE_PORT` and [`TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each instance as otherwise it will bug out. Also make sure to adjust the docker socket and `WATCHTOWER_DOCKER_SOCKET_PATH` correctly for each of them by following step 6 of the [docker rootless documentation](./docker-rootless.md). Additionally, modify `--publish 8080:8080` to a different port for each container, e.g. `8081:8080` as otherwise it will not work.<br>
|
||||
**⚠️ Please note:** If you want to adjust the `NEXTCLOUD_DATADIR`, make sure to apply the correct permissions to the chosen path as documented at the bottom of the [docker rootless documentation](./docker-rootless.md). Also for the built-in backup to work, the target path needs to have the correct permissions as documented there, too.
|
||||
1. Now install your webserver of choice on the host system. It is recommended to use caddy for this as it is by far the easiest solution. You can do so by following https://caddyserver.com/docs/install#debian-ubuntu-raspbian or below. (It needs to be installed directly on the host or on a different server in the same network).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: nextcloud-aio-helm-chart
|
||||
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
|
||||
version: 7.1.1
|
||||
version: 7.7.1-dev
|
||||
apiVersion: v2
|
||||
keywords:
|
||||
- latest
|
||||
|
||||
@@ -10,6 +10,7 @@ You can run the containers that are build for AIO with Kubernetes using this Hel
|
||||
- You lose the AIO interface
|
||||
- You lose update notifications and automatic updates
|
||||
- You lose all AIO backup and restore features
|
||||
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
|
||||
- **You need to know what you are doing**
|
||||
- For updating, you need to strictly follow the at the bottom described update routine
|
||||
- You need to monitor yourself if the volumes have enough free space and increase them if they don't by adjusting their size in values.yaml
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
name: nextcloud-aio-apache
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
@@ -30,22 +30,7 @@ spec:
|
||||
- "777"
|
||||
- /nextcloud-aio-nextcloud
|
||||
- /nextcloud-aio-apache
|
||||
- /nextcloud-aio-apache-tmpfs0
|
||||
- /nextcloud-aio-apache-tmpfs1
|
||||
- /nextcloud-aio-apache-tmpfs2
|
||||
- /nextcloud-aio-apache-tmpfs3
|
||||
- /nextcloud-aio-apache-tmpfs4
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-apache-tmpfs4
|
||||
mountPath: /nextcloud-aio-apache-tmpfs4
|
||||
- name: nextcloud-aio-apache-tmpfs3
|
||||
mountPath: /nextcloud-aio-apache-tmpfs3
|
||||
- name: nextcloud-aio-apache-tmpfs2
|
||||
mountPath: /nextcloud-aio-apache-tmpfs2
|
||||
- name: nextcloud-aio-apache-tmpfs1
|
||||
mountPath: /nextcloud-aio-apache-tmpfs1
|
||||
- name: nextcloud-aio-apache-tmpfs0
|
||||
mountPath: /nextcloud-aio-apache-tmpfs0
|
||||
- name: nextcloud-aio-apache
|
||||
mountPath: /nextcloud-aio-apache
|
||||
- name: nextcloud-aio-nextcloud
|
||||
@@ -72,33 +57,19 @@ spec:
|
||||
value: nextcloud-aio-talk
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-apache:20230912_084059-latest
|
||||
image: nextcloud/aio-apache:20231123_084113-latest
|
||||
name: nextcloud-aio-apache
|
||||
ports:
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
hostPort: {{ .Values.APACHE_PORT }}
|
||||
protocol: TCP
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
hostPort: {{ .Values.APACHE_PORT }}
|
||||
protocol: UDP
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: nextcloud-aio-nextcloud
|
||||
readOnly: true
|
||||
- mountPath: /mnt/data
|
||||
name: nextcloud-aio-apache
|
||||
- mountPath: /var/log/supervisord
|
||||
name: nextcloud-aio-apache-tmpfs0
|
||||
- mountPath: /var/run/supervisord
|
||||
name: nextcloud-aio-apache-tmpfs1
|
||||
- mountPath: /usr/local/apache2/logs
|
||||
name: nextcloud-aio-apache-tmpfs2
|
||||
- mountPath: /tmp
|
||||
name: nextcloud-aio-apache-tmpfs3
|
||||
- mountPath: /home/www-data
|
||||
name: nextcloud-aio-apache-tmpfs4
|
||||
volumes:
|
||||
- name: nextcloud-aio-nextcloud
|
||||
persistentVolumeClaim:
|
||||
@@ -106,13 +77,3 @@ spec:
|
||||
- name: nextcloud-aio-apache
|
||||
persistentVolumeClaim:
|
||||
claimName: nextcloud-aio-apache
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-apache-tmpfs0
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-apache-tmpfs1
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-apache-tmpfs2
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-apache-tmpfs3
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-apache-tmpfs4
|
||||
|
||||
@@ -3,13 +3,15 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
name: nextcloud-aio-apache
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
type: LoadBalancer
|
||||
externalTrafficPolicy: Local
|
||||
ports:
|
||||
- name: "{{ .Values.APACHE_PORT }}"
|
||||
port: {{ .Values.APACHE_PORT }}
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
name: nextcloud-aio-clamav
|
||||
@@ -18,28 +18,30 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
spec:
|
||||
initContainers:
|
||||
- name: init-subpath
|
||||
image: alpine
|
||||
command:
|
||||
- mkdir
|
||||
- "-p"
|
||||
- /nextcloud-aio-clamav/data
|
||||
- /nextcloud-aio-clamav
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-clamav
|
||||
mountPath: /nextcloud-aio-clamav
|
||||
- name: init-volumes
|
||||
image: alpine
|
||||
command:
|
||||
- chmod
|
||||
- "777"
|
||||
- chown
|
||||
- 100:100
|
||||
- "-R"
|
||||
- /nextcloud-aio-clamav
|
||||
- /nextcloud-aio-clamav-tmpfs0
|
||||
- /nextcloud-aio-clamav-tmpfs1
|
||||
- /nextcloud-aio-clamav-tmpfs2
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-clamav-tmpfs2
|
||||
mountPath: /nextcloud-aio-clamav-tmpfs2
|
||||
- name: nextcloud-aio-clamav-tmpfs1
|
||||
mountPath: /nextcloud-aio-clamav-tmpfs1
|
||||
- name: nextcloud-aio-clamav-tmpfs0
|
||||
mountPath: /nextcloud-aio-clamav-tmpfs0
|
||||
- name: nextcloud-aio-clamav
|
||||
mountPath: /nextcloud-aio-clamav
|
||||
containers:
|
||||
@@ -48,31 +50,17 @@ spec:
|
||||
value: "90"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-clamav:20230912_084059-latest
|
||||
image: nextcloud/aio-clamav:20231123_084113-latest
|
||||
name: nextcloud-aio-clamav
|
||||
ports:
|
||||
- containerPort: 3310
|
||||
hostPort: 3310
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/clamav
|
||||
subPath: data
|
||||
name: nextcloud-aio-clamav
|
||||
- mountPath: /var/lock
|
||||
name: nextcloud-aio-clamav-tmpfs0
|
||||
- mountPath: /var/log/clamav
|
||||
name: nextcloud-aio-clamav-tmpfs1
|
||||
- mountPath: /tmp
|
||||
name: nextcloud-aio-clamav-tmpfs2
|
||||
volumes:
|
||||
- name: nextcloud-aio-clamav
|
||||
persistentVolumeClaim:
|
||||
claimName: nextcloud-aio-clamav
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-clamav-tmpfs0
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-clamav-tmpfs1
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-clamav-tmpfs2
|
||||
{{- end }}
|
||||
|
||||
@@ -4,12 +4,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
name: nextcloud-aio-clamav
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "3310"
|
||||
port: 3310
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
name: nextcloud-aio-collabora
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
@@ -37,10 +37,9 @@ 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:20230912_084059-latest
|
||||
image: nextcloud/aio-collabora:20231123_084113-latest
|
||||
name: nextcloud-aio-collabora
|
||||
ports:
|
||||
- containerPort: 9980
|
||||
hostPort: 9980
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
|
||||
@@ -4,12 +4,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
name: nextcloud-aio-collabora
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "9980"
|
||||
port: 9980
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
name: nextcloud-aio-database
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
@@ -31,10 +31,7 @@ spec:
|
||||
- /nextcloud-aio-database/data
|
||||
- /nextcloud-aio-database
|
||||
- /nextcloud-aio-database-dump
|
||||
- /nextcloud-aio-database-tmpfs0
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-database-tmpfs0
|
||||
mountPath: /nextcloud-aio-database-tmpfs0
|
||||
- name: nextcloud-aio-database-dump
|
||||
mountPath: /nextcloud-aio-database-dump
|
||||
- name: nextcloud-aio-database
|
||||
@@ -47,10 +44,7 @@ spec:
|
||||
- "-R"
|
||||
- /nextcloud-aio-database
|
||||
- /nextcloud-aio-database-dump
|
||||
- /nextcloud-aio-database-tmpfs0
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-database-tmpfs0
|
||||
mountPath: /nextcloud-aio-database-tmpfs0
|
||||
- name: nextcloud-aio-database-dump
|
||||
mountPath: /nextcloud-aio-database-dump
|
||||
- name: nextcloud-aio-database
|
||||
@@ -67,22 +61,17 @@ spec:
|
||||
value: nextcloud
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-postgresql:20230912_084059-latest
|
||||
image: nextcloud/aio-postgresql:20231123_084113-latest
|
||||
name: nextcloud-aio-database
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
hostPort: 5432
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql/data
|
||||
subPath: data
|
||||
name: nextcloud-aio-database
|
||||
- mountPath: /mnt/data
|
||||
name: nextcloud-aio-database-dump
|
||||
- mountPath: /var/run/postgresql
|
||||
name: nextcloud-aio-database-tmpfs0
|
||||
terminationGracePeriodSeconds: 1800
|
||||
volumes:
|
||||
- name: nextcloud-aio-database
|
||||
@@ -91,5 +80,3 @@ spec:
|
||||
- name: nextcloud-aio-database-dump
|
||||
persistentVolumeClaim:
|
||||
claimName: nextcloud-aio-database-dump
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-database-tmpfs0
|
||||
|
||||
@@ -3,12 +3,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
name: nextcloud-aio-database
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "5432"
|
||||
port: 5432
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
@@ -55,11 +55,10 @@ spec:
|
||||
value: basic
|
||||
- name: xpack.security.enabled
|
||||
value: "false"
|
||||
image: nextcloud/aio-fulltextsearch:20230912_084059-latest
|
||||
image: nextcloud/aio-fulltextsearch:20231123_084113-latest
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
hostPort: 9200
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/elasticsearch/data
|
||||
|
||||
@@ -4,12 +4,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "9200"
|
||||
port: 9200
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
name: nextcloud-aio-imaginary
|
||||
@@ -18,40 +18,22 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
spec:
|
||||
initContainers:
|
||||
- name: init-volumes
|
||||
image: alpine
|
||||
command:
|
||||
- chmod
|
||||
- "777"
|
||||
- /nextcloud-aio-imaginary-tmpfs0
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-imaginary-tmpfs0
|
||||
mountPath: /nextcloud-aio-imaginary-tmpfs0
|
||||
containers:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-imaginary:20230912_084059-latest
|
||||
image: nextcloud/aio-imaginary:20231123_084113-latest
|
||||
name: nextcloud-aio-imaginary
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
hostPort: 9000
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- SYS_NICE
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /tmp
|
||||
name: nextcloud-aio-imaginary-tmpfs0
|
||||
volumes:
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-imaginary-tmpfs0
|
||||
{{- end }}
|
||||
|
||||
@@ -4,12 +4,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
name: nextcloud-aio-imaginary
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "9000"
|
||||
port: 9000
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
@@ -30,16 +30,33 @@ spec:
|
||||
- "777"
|
||||
- /nextcloud-aio-nextcloud
|
||||
- /nextcloud-aio-nextcloud-trusted-cacerts
|
||||
- /nextcloud-aio-nextcloud-tmpfs0
|
||||
volumeMounts:
|
||||
- name: nextcloud-aio-nextcloud-tmpfs0
|
||||
mountPath: /nextcloud-aio-nextcloud-tmpfs0
|
||||
- name: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
mountPath: /nextcloud-aio-nextcloud-trusted-cacerts
|
||||
- name: nextcloud-aio-nextcloud
|
||||
mountPath: /nextcloud-aio-nextcloud
|
||||
containers:
|
||||
- env:
|
||||
- name: SMTP_HOST
|
||||
value: "{{ .Values.SMTP_HOST }}"
|
||||
- name: SMTP_SECURE
|
||||
value: "{{ .Values.SMTP_SECURE }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.SMTP_PORT }}"
|
||||
- name: SMTP_AUTHTYPE
|
||||
value: "{{ .Values.SMTP_AUTHTYPE }}"
|
||||
- name: SMTP_NAME
|
||||
value: "{{ .Values.SMTP_NAME }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.SMTP_PASSWORD }}"
|
||||
- name: MAIL_FROM_ADDRESS
|
||||
value: "{{ .Values.MAIL_FROM_ADDRESS }}"
|
||||
- name: MAIL_DOMAIN
|
||||
value: "{{ .Values.MAIL_DOMAIN }}"
|
||||
- name: SUBSCRIPTION_KEY
|
||||
value: "{{ .Values.SUBSCRIPTION_KEY }}"
|
||||
- name: APPS_ALLOWLIST
|
||||
value: "{{ .Values.APPS_ALLOWLIST }}"
|
||||
- name: ADDITIONAL_APKS
|
||||
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
|
||||
- name: ADDITIONAL_PHP_EXTENSIONS
|
||||
@@ -48,6 +65,8 @@ spec:
|
||||
value: "{{ .Values.NEXTCLOUD_PASSWORD }}"
|
||||
- name: ADMIN_USER
|
||||
value: admin
|
||||
- name: APACHE_PORT
|
||||
value: "{{ .Values.APACHE_PORT }}"
|
||||
- name: CLAMAV_ENABLED
|
||||
value: "{{ .Values.CLAMAV_ENABLED }}"
|
||||
- name: CLAMAV_HOST
|
||||
@@ -102,6 +121,8 @@ spec:
|
||||
value: nextcloud-aio-redis
|
||||
- name: REDIS_HOST_PASSWORD
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
- name: REMOVE_DISABLED_APPS
|
||||
value: "{{ .Values.REMOVE_DISABLED_APPS }}"
|
||||
- name: SIGNALING_SECRET
|
||||
value: "{{ .Values.SIGNALING_SECRET }}"
|
||||
- name: STARTUP_APPS
|
||||
@@ -122,11 +143,13 @@ spec:
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
- name: UPDATE_NEXTCLOUD_APPS
|
||||
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
|
||||
image: nextcloud/aio-nextcloud:20230912_084059-latest
|
||||
image: nextcloud/aio-nextcloud:develop
|
||||
imagePullPolicy: Always
|
||||
name: nextcloud-aio-nextcloud
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
hostPort: 9000
|
||||
protocol: TCP
|
||||
- containerPort: 9001
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
@@ -136,8 +159,6 @@ spec:
|
||||
- mountPath: /usr/local/share/ca-certificates
|
||||
name: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
readOnly: true
|
||||
- mountPath: /tmp
|
||||
name: nextcloud-aio-nextcloud-tmpfs0
|
||||
volumes:
|
||||
- name: nextcloud-aio-nextcloud
|
||||
persistentVolumeClaim:
|
||||
@@ -148,5 +169,3 @@ spec:
|
||||
- name: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
persistentVolumeClaim:
|
||||
claimName: nextcloud-aio-nextcloud-trusted-cacerts
|
||||
- emptyDir: {}
|
||||
name: nextcloud-aio-nextcloud-tmpfs0
|
||||
|
||||
@@ -10,7 +10,7 @@ spec:
|
||||
storageClassName: {{ .Values.STORAGE_CLASS }}
|
||||
{{- end }}
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.NEXTCLOUD_STORAGE_SIZE }}
|
||||
|
||||
@@ -3,15 +3,19 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "9000"
|
||||
port: 9000
|
||||
targetPort: 9000
|
||||
- name: "9001"
|
||||
port: 9001
|
||||
targetPort: 9001
|
||||
selector:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
name: nextcloud-aio-notify-push
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
@@ -50,14 +50,11 @@ spec:
|
||||
value: nextcloud-aio-redis
|
||||
- name: REDIS_HOST_PASSWORD
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
image: nextcloud/aio-notify-push:20230912_084059-latest
|
||||
image: nextcloud/aio-notify-push:20231123_084113-latest
|
||||
name: nextcloud-aio-notify-push
|
||||
ports:
|
||||
- containerPort: 7867
|
||||
hostPort: 7867
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -3,12 +3,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
name: nextcloud-aio-notify-push
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "7867"
|
||||
port: 7867
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
name: nextcloud-aio-onlyoffice
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
@@ -43,11 +43,10 @@ spec:
|
||||
value: "{{ .Values.ONLYOFFICE_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-onlyoffice:20230912_084059-latest
|
||||
image: nextcloud/aio-onlyoffice:20231123_084113-latest
|
||||
name: nextcloud-aio-onlyoffice
|
||||
ports:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/onlyoffice
|
||||
|
||||
@@ -4,12 +4,13 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
name: nextcloud-aio-onlyoffice
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec:
|
||||
ipFamilyPolicy: PreferDualStack
|
||||
ports:
|
||||
- name: "80"
|
||||
port: 80
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
name: nextcloud-aio-redis
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.30.0 (9d8dcb518)
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
@@ -38,14 +38,11 @@ spec:
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-redis:20230912_084059-latest
|
||||
image: nextcloud/aio-redis:20231123_084113-latest
|
||||
name: nextcloud-aio-redis
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
hostPort: 6379
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: nextcloud-aio-redis
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user