Compare commits

...

236 Commits

Author SHA1 Message Date
LinuxServer-CI
77ed092e05
Bot Updating Package Versions 2026-01-06 11:52:52 +00:00
LinuxServer-CI
ea5f835680
Bot Updating Package Versions 2025-12-23 11:52:15 +00:00
LinuxServer-CI
effecf18e4
Bot Updating Package Versions 2025-12-16 11:53:03 +00:00
LinuxServer-CI
88106f48fc
Bot Updating Package Versions 2025-12-09 11:51:52 +00:00
LinuxServer-CI
77d1a35de7
Bot Updating Package Versions 2025-12-02 11:52:04 +00:00
LinuxServer-CI
29db09b85d
Bot Updating Package Versions 2025-11-25 11:53:49 +00:00
LinuxServer-CI
e6b3f8b1c9
Bot Updating Templated Files 2025-11-25 11:48:42 +00:00
LinuxServer-CI
c52ca9defd
Bot Updating Package Versions 2025-11-18 11:51:40 +00:00
LinuxServer-CI
6cf2b8971c
Bot Updating Package Versions 2025-11-13 18:52:03 +00:00
LinuxServer-CI
73b801ac2c
Bot Updating Package Versions 2025-11-11 11:51:52 +00:00
LinuxServer-CI
d91ea671e3
Bot Updating Package Versions 2025-10-28 11:51:33 +00:00
LinuxServer-CI
8ca96afc78
Bot Updating Templated Files 2025-10-21 15:37:38 +00:00
LinuxServer-CI
98d7659057
Bot Updating Package Versions 2025-10-21 11:55:07 +00:00
LinuxServer-CI
d43ca4efef
Bot Updating Templated Files 2025-10-21 11:49:09 +00:00
LinuxServer-CI
a3ea6bdcca
Bot Updating Package Versions 2025-10-16 17:41:30 +00:00
LinuxServer-CI
82d45b0f04
Bot Updating Package Versions 2025-10-14 11:51:56 +00:00
LinuxServer-CI
7e2fb6e3bd
Bot Updating Package Versions 2025-10-07 11:52:06 +00:00
LinuxServer-CI
989b190595
Bot Updating Package Versions 2025-09-30 11:53:01 +00:00
LinuxServer-CI
ba1619d05b
Bot Updating Package Versions 2025-09-25 13:48:30 +00:00
LinuxServer-CI
c559f8ac37
Bot Updating Package Versions 2025-09-23 11:52:34 +00:00
LinuxServer-CI
b2b6a72a64
Bot Updating Package Versions 2025-09-11 14:43:15 +00:00
LinuxServer-CI
c1095c4c21
Bot Updating Package Versions 2025-09-02 11:52:02 +00:00
Adam
952884138f
Merge pull request #521 from linuxserver/develop-version-spaces 2025-08-26 15:56:47 +01:00
thespad
5312dc251b
Trim whitespace around version numbers 2025-08-26 13:48:15 +01:00
LinuxServer-CI
44443756a6
Bot Updating Package Versions 2025-08-22 19:36:24 +00:00
LinuxServer-CI
b5a46482a3
Bot Updating Package Versions 2025-08-19 16:49:38 +00:00
LinuxServer-CI
7418e904c0
Bot Updating Package Versions 2025-08-19 11:51:55 +00:00
LinuxServer-CI
01903b9114
Bot Updating Package Versions 2025-08-12 11:52:14 +00:00
LinuxServer-CI
765dee0eaa
Bot Updating Package Versions 2025-08-07 16:52:55 +00:00
LinuxServer-CI
37e8834977
Bot Updating Package Versions 2025-08-05 11:54:23 +00:00
LinuxServer-CI
34358e63bd
Bot Updating Package Versions 2025-07-29 11:53:19 +00:00
LinuxServer-CI
3fd3d15029
Bot Updating Package Versions 2025-07-22 11:53:30 +00:00
LinuxServer-CI
e20dd83d42
Bot Updating Package Versions 2025-07-15 08:28:19 +00:00
LinuxServer-CI
8b3054aeba
Bot Updating Templated Files 2025-07-15 08:22:31 +00:00
Adam
bc6105bb18
Merge pull request #510 from linuxserver/develop-3.22 2025-07-15 09:20:33 +01:00
thespad
d2b6d946be
Fix || breaking build failures 2025-07-10 19:38:21 +01:00
thespad
5421b5b766
Remove pecl-mcrypt 2025-07-10 17:32:57 +01:00
thespad
ca08bf6356
Rebase to 3.22 2025-07-10 17:30:30 +01:00
LinuxServer-CI
946e3eb861
Bot Updating Package Versions 2025-07-03 15:47:44 +00:00
LinuxServer-CI
3a0a93dd24
Bot Updating Templated Files 2025-07-03 15:42:29 +00:00
LinuxServer-CI
9c7e18bb64
Bot Updating Templated Files 2025-07-03 15:40:28 +00:00
LinuxServer-CI
685743eab2
Bot Updating Templated Files 2025-06-10 11:48:52 +00:00
LinuxServer-CI
5ecde0417e
Bot Updating Package Versions 2025-06-05 13:08:42 +00:00
LinuxServer-CI
29c502fc44
Bot Updating Package Versions 2025-05-26 23:56:22 +00:00
LinuxServer-CI
39f3c15512
Bot Updating Package Versions 2025-05-20 12:11:21 +00:00
LinuxServer-CI
d6677cfc43
Bot Updating Templated Files 2025-05-20 11:48:41 +00:00
LinuxServer-CI
234610d94d
Bot Updating Package Versions 2025-05-06 11:51:12 +00:00
LinuxServer-CI
e00c11055e
Bot Updating Package Versions 2025-04-22 11:53:55 +00:00
LinuxServer-CI
ed98e24aa7
Bot Updating Package Versions 2025-04-15 17:41:40 +00:00
LinuxServer-CI
9a4d24cd18
Bot Updating Package Versions 2025-04-15 11:50:23 +00:00
LinuxServer-CI
8d8fda1690
Bot Updating Package Versions 2025-04-08 11:54:47 +00:00
LinuxServer-CI
18f8dd7ff6
Bot Updating Package Versions 2025-04-01 11:51:01 +00:00
LinuxServer-CI
6a16f357e0
Bot Updating Package Versions 2025-03-18 11:50:25 +00:00
LinuxServer-CI
f8df570a5a
Bot Updating Package Versions 2025-03-11 11:53:40 +00:00
LinuxServer-CI
595bb9bda2
Bot Updating Package Versions 2025-03-04 11:51:20 +00:00
LinuxServer-CI
be1766be45
Bot Updating Package Versions 2025-02-25 11:50:59 +00:00
LinuxServer-CI
6ac0a2e866
Bot Updating Package Versions 2025-02-18 11:55:00 +00:00
LinuxServer-CI
4ed3edcf13
Bot Updating Package Versions 2025-02-13 19:51:55 +00:00
LinuxServer-CI
f16963c975
Bot Updating Templated Files 2025-02-13 19:44:31 +00:00
Adam
5ebc250035
Merge pull request #492 from linuxserver/develop-3.21 2025-02-13 19:42:45 +00:00
LinuxServer-CI
38db952330
Bot Updating Package Versions 2025-02-13 15:44:40 +00:00
thespad
16844327e3
Fix migration permissions 2025-02-12 21:32:56 +00:00
thespad
d3e62cc6d8
Rebase to 3.21 2025-02-12 21:20:46 +00:00
LinuxServer-CI
80f58400e5
Bot Updating Package Versions 2025-02-11 11:53:36 +00:00
LinuxServer-CI
dff19a091c
Bot Updating Templated Files 2025-02-11 11:48:30 +00:00
LinuxServer-CI
9755c51367
Bot Updating Package Versions 2025-02-06 16:46:50 +00:00
LinuxServer-CI
fc9aa4801c
Bot Updating Package Versions 2025-01-30 15:41:23 +00:00
LinuxServer-CI
75911cd39e
Bot Updating Templated Files 2025-01-30 15:36:37 +00:00
LinuxServer-CI
8a9da03e3f
Bot Updating Templated Files 2025-01-30 15:34:46 +00:00
LinuxServer-CI
0b3cc76eba
Bot Updating Package Versions 2025-01-28 11:56:00 +00:00
LinuxServer-CI
5d67441e57
Bot Updating Package Versions 2025-01-23 10:43:48 +00:00
LinuxServer-CI
6f733cdbcf
Bot Updating Package Versions 2025-01-21 17:38:04 +00:00
LinuxServer-CI
3aa977e671
Bot Updating Package Versions 2025-01-21 11:51:08 +00:00
LinuxServer-CI
09206a5e22
Bot Updating Package Versions 2025-01-16 18:44:30 +00:00
LinuxServer-CI
31bdc55111
Bot Updating Package Versions 2025-01-09 13:00:07 +00:00
quietsy
4c50f935e9
Merge pull request #481 from linuxserver/fix-large-files-develop
Fix uploading large files
2025-01-09 13:05:40 +02:00
quietsy
77f8176c20 Fix uploading large files 2025-01-09 12:43:08 +02:00
LinuxServer-CI
2e9473a1d6
Bot Updating Package Versions 2025-01-07 11:51:01 +00:00
LinuxServer-CI
b80003caa4
Bot Updating Package Versions 2024-12-24 11:50:56 +00:00
LinuxServer-CI
447a77ebc7
Bot Updating Package Versions 2024-12-17 11:56:09 +00:00
LinuxServer-CI
04e96fdd76
Bot Updating Templated Files 2024-12-17 11:51:18 +00:00
LinuxServer-CI
95febfb1e8
Bot Updating Templated Files 2024-12-17 11:49:28 +00:00
LinuxServer-CI
a90c6096ba
Bot Updating Templated Files 2024-12-05 14:00:00 +00:00
LinuxServer-CI
4f5f890fdd
Bot Updating Templated Files 2024-12-03 11:54:02 +00:00
LinuxServer-CI
a6b2ac9b27
Bot Updating Templated Files 2024-12-03 11:52:21 +00:00
LinuxServer-CI
097f73a1e6
Bot Updating Templated Files 2024-12-03 11:48:38 +00:00
LinuxServer-CI
0aad6a0fe5
Bot Updating Package Versions 2024-11-26 11:50:40 +00:00
LinuxServer-CI
b0182fbb72
Bot Updating Package Versions 2024-11-19 11:51:25 +00:00
LinuxServer-CI
acf5cd8105
Bot Updating Templated Files 2024-11-12 11:50:24 +00:00
LinuxServer-CI
091f478f34
Bot Updating Templated Files 2024-11-12 11:48:30 +00:00
LinuxServer-CI
ad7ade282f
Bot Updating Package Versions 2024-11-05 11:49:49 +00:00
LinuxServer-CI
47e8542612
Bot Updating Package Versions 2024-10-31 16:45:01 +00:00
LinuxServer-CI
2e9430603a
Bot Updating Package Versions 2024-10-29 11:50:16 +00:00
LinuxServer-CI
ce4f4e0df1
Bot Updating Package Versions 2024-10-22 11:51:25 +00:00
LinuxServer-CI
f09bc760ae
Bot Updating Package Versions 2024-10-08 11:49:45 +00:00
LinuxServer-CI
7b8466802d
Bot Updating Package Versions 2024-10-04 13:40:12 +00:00
LinuxServer-CI
f1566c4926
Bot Updating Package Versions 2024-10-01 11:56:36 +00:00
LinuxServer-CI
5cd8bd9fdb
Bot Updating Templated Files 2024-10-01 11:51:28 +00:00
LinuxServer-CI
2e23cd4063
Bot Updating Templated Files 2024-10-01 11:49:55 +00:00
LinuxServer-CI
e6fe3252d1
Bot Updating Templated Files 2024-10-01 11:48:29 +00:00
LinuxServer-CI
d19b41e55c
Bot Updating Package Versions 2024-09-24 11:49:50 +00:00
LinuxServer-CI
0f73a9da0e
Bot Updating Package Versions 2024-09-17 11:51:05 +00:00
Eric Nemchik
0545e001d4
Merge pull request #456 from linuxserver/ipv6-listen-develop
separate ipv6 listen in default site-conf [develop]
2024-09-14 09:04:24 -07:00
LinuxServer-CI
3e3b671d26
Bot Updating Package Versions 2024-09-12 19:33:12 +00:00
LinuxServer-CI
f521d58c68
Bot Updating Package Versions 2024-09-10 11:50:57 +00:00
LinuxServer-CI
ecf6ad56b4
Bot Updating Package Versions 2024-09-05 20:36:57 +00:00
LinuxServer-CI
875d8b435b
Bot Updating Package Versions 2024-09-03 11:50:16 +00:00
LinuxServer-CI
c0df3febbf
Bot Updating Package Versions 2024-08-27 11:50:53 +00:00
LinuxServer-CI
7bd3ac412f
Bot Updating Package Versions 2024-08-20 11:57:03 +00:00
LinuxServer-CI
a74e879b57
Bot Updating Templated Files 2024-08-20 11:51:35 +00:00
LinuxServer-CI
931bb3580f Bot Updating Templated Files 2024-08-20 11:49:18 +00:00
LinuxServer-CI
95f63060e0 Bot Updating Package Versions 2024-08-14 18:40:37 +00:00
LinuxServer-CI
a005ca269f Bot Updating Package Versions 2024-08-08 22:36:18 +00:00
LinuxServer-CI
2164d84c52 Bot Updating Package Versions 2024-08-06 16:41:13 +00:00
LinuxServer-CI
82ae5a23aa Bot Updating Package Versions 2024-08-06 11:49:49 +00:00
LinuxServer-CI
a4fddd90ab Bot Updating Package Versions 2024-08-01 19:34:13 +00:00
LinuxServer-CI
6f99c81c7d Bot Updating Package Versions 2024-07-25 22:37:13 +00:00
LinuxServer-CI
e59909addc Bot Updating Package Versions 2024-07-23 11:54:34 +00:00
Eric Nemchik
32c9f3ba1e
separate ipv6 listen in default site-conf [develop] 2024-07-16 20:40:32 -05:00
LinuxServer-CI
c690639528 Bot Updating Templated Files 2024-07-16 11:50:55 +00:00
LinuxServer-CI
5aebb77566 Bot Updating Templated Files 2024-07-16 11:48:24 +00:00
LinuxServer-CI
85e673015c Bot Updating Package Versions 2024-07-12 08:38:03 +00:00
LinuxServer-CI
e372bf8c1f Bot Updating Package Versions 2024-07-09 11:53:27 +00:00
LinuxServer-CI
9888ec10bb Bot Updating Package Versions 2024-07-02 11:52:22 +00:00
LinuxServer-CI
746fc2314f Bot Updating Package Versions 2024-06-25 14:57:41 +00:00
Adam
2ebf64ed79
Merge pull request #445 from linuxserver/develop-3.20
Rebase to 3.20 (develop)
2024-06-25 15:50:18 +01:00
thespad
62d13eaf3b
Rebase to 3.20 2024-06-24 20:36:45 +01:00
LinuxServer-CI
4adc904193 Bot Updating Package Versions 2024-06-21 14:36:12 +00:00
LinuxServer-CI
dbe99cc569 Bot Updating Package Versions 2024-06-17 21:34:18 +00:00
LinuxServer-CI
abba10c24c Bot Updating Package Versions 2024-06-11 11:50:49 +00:00
LinuxServer-CI
4513213b97 Bot Updating Package Versions 2024-06-04 11:50:59 +00:00
LinuxServer-CI
e25462f5d6 Bot Updating Package Versions 2024-05-28 11:52:42 +00:00
LinuxServer-CI
93c0ad7d37 Bot Updating Templated Files 2024-05-21 11:51:56 +00:00
LinuxServer-CI
c2921714b2 Bot Updating Templated Files 2024-05-21 11:49:39 +00:00
LinuxServer-CI
e4147b179b Bot Updating Package Versions 2024-05-18 08:36:32 +00:00
LinuxServer-CI
6838676b53 Bot Updating Package Versions 2024-05-14 11:53:21 +00:00
LinuxServer-CI
2687e98212 Bot Updating Templated Files 2024-05-14 11:48:35 +00:00
LinuxServer-CI
419c882f73 Bot Updating Package Versions 2024-05-07 11:53:07 +00:00
LinuxServer-CI
e5f9510fed Bot Updating Templated Files 2024-05-07 11:48:40 +00:00
LinuxServer-CI
222b58c99c Bot Updating Package Versions 2024-04-30 11:56:53 +00:00
LinuxServer-CI
e355bcbe6a Bot Updating Templated Files 2024-04-30 11:48:41 +00:00
LinuxServer-CI
4f00b831d3 Bot Updating Package Versions 2024-04-23 11:50:13 +00:00
LinuxServer-CI
7a8248f3cd Bot Updating Package Versions 2024-04-16 11:50:06 +00:00
LinuxServer-CI
915ab07cd9 Bot Updating Package Versions 2024-04-08 13:35:02 +00:00
LinuxServer-CI
afb828d4da Bot Updating Package Versions 2024-04-02 11:50:18 +00:00
LinuxServer-CI
f7056138b6 Bot Updating Package Versions 2024-03-26 11:53:11 +00:00
LinuxServer-CI
70f6155bbf Bot Updating Package Versions 2024-03-21 21:33:06 +00:00
LinuxServer-CI
b9cf966878 Bot Updating Package Versions 2024-03-19 11:52:47 +00:00
LinuxServer-CI
dead6f366e Bot Updating Package Versions 2024-03-14 21:33:06 +00:00
LinuxServer-CI
c2c4010ffb Bot Updating Templated Files 2024-03-12 20:31:37 +00:00
LinuxServer-CI
150c587dff Bot Updating Package Versions 2024-03-07 22:34:05 +00:00
LinuxServer-CI
671cf6fe6c Bot Updating Package Versions 2024-03-06 18:32:28 +00:00
LinuxServer-CI
a7da03b8d8 Bot Updating Templated Files 2024-03-06 18:25:39 +00:00
Eric Nemchik
7c8251110c
Rebase to Alpine 3.19 (#399)
* Rebase to Alpine 3.19

Signed-off-by: Eric Nemchik <eric@nemchik.com>

* update date and edge repo

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 13:24:01 -05:00
LinuxServer-CI
11824dbfe3 Bot Updating Package Versions 2024-03-05 11:50:19 +00:00
LinuxServer-CI
0004b51af8 Bot Updating Package Versions 2024-02-27 11:57:52 +00:00
LinuxServer-CI
9706c0481a Bot Updating Templated Files 2024-02-27 11:50:16 +00:00
LinuxServer-CI
bcf04398d0 Bot Updating Templated Files 2024-02-27 11:48:43 +00:00
LinuxServer-CI
48667a56dd Bot Updating Package Versions 2024-02-16 14:34:20 +00:00
LinuxServer-CI
b906641f24 Bot Updating Package Versions 2024-02-13 11:52:12 +00:00
LinuxServer-CI
9e83ba52fc Bot Updating Package Versions 2024-02-06 11:49:42 +00:00
LinuxServer-CI
0dfd84df5c Bot Updating Package Versions 2024-01-29 15:37:30 +00:00
LinuxServer-CI
231f432f80 Bot Updating Package Versions 2024-01-23 10:40:44 +00:00
LinuxServer-CI
c15658c110 Bot Updating Package Versions 2024-01-18 17:36:47 +00:00
LinuxServer-CI
388fc6d47a Bot Updating Package Versions 2024-01-16 11:56:53 +00:00
LinuxServer-CI
2fe50c2f12 Bot Updating Templated Files 2024-01-16 11:50:34 +00:00
LinuxServer-CI
21dde133fd Bot Updating Templated Files 2024-01-16 11:48:58 +00:00
LinuxServer-CI
7bed73efff Bot Updating Package Versions 2024-01-09 11:50:08 +00:00
driz
aede8706ae
Merge pull request #406 from linuxserver/dev-mime-fix
Merge pull request #405 from linuxserver/conf-fix-test
2024-01-03 20:55:16 -05:00
Eric Nemchik
ccb0036a96
Merge pull request #405 from linuxserver/conf-fix-test
maybe fix nextcloud?
2024-01-03 23:48:00 +00:00
LinuxServer-CI
6675775f5c Bot Updating Templated Files 2024-01-02 16:12:23 +00:00
Eric Nemchik
9d7ea19a71
Merge pull request #404 from linuxserver/cleanup-nginx-develop
Cleanup default site conf
2024-01-02 10:10:21 -06:00
Eric Nemchik
7a4dc0aa13
Update readme date
Signed-off-by: GitHub <noreply@github.com>
2024-01-02 16:07:05 +00:00
Eric Nemchik
56461a34b3
Cleanup default site conf
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2024-01-02 16:05:58 +00:00
LinuxServer-CI
f131871e4c Bot Updating Package Versions 2024-01-02 11:49:44 +00:00
Adam
aae9593ea7
Merge pull request #396 from linuxserver/develop-mime
Avoid duplicate mime definition
2023-12-22 22:39:46 +00:00
TheSpad
4178035a55
Consistent formatting 2023-12-22 17:16:22 +00:00
TheSpad
0ad8c52d56
Use text/javascript as per rfc9239 2023-12-22 17:15:18 +00:00
TheSpad
37eb7522e1
Prefer application/javascript 2023-12-22 17:08:14 +00:00
TheSpad
794f71483a
Avoid duplicate mime definition 2023-12-22 17:01:35 +00:00
LinuxServer-CI
b22dc7887a Bot Updating Package Versions 2023-12-22 16:33:56 +00:00
Adam
408d92a2ec
Merge pull request #393 from linuxserver/develop-conf-mjs
sync with upstream nextcloud docs
2023-12-22 16:28:28 +00:00
TheSpad
c3c64ae5d5
sync with upstream nextcloud docs 2023-12-22 16:03:20 +00:00
LinuxServer-CI
bf1947d7ad Bot Updating Package Versions 2023-12-12 11:50:00 +00:00
LinuxServer-CI
94fd873ece Bot Updating Package Versions 2023-12-07 21:34:08 +00:00
LinuxServer-CI
61f34bacdc Bot Updating Package Versions 2023-12-05 11:50:04 +00:00
LinuxServer-CI
21f2fc0840 Bot Updating Package Versions 2023-11-30 21:34:34 +00:00
Eric Nemchik
2bdf249bf1
Merge pull request #383 from linuxserver/quiet-migration-develop
only run migration if conf exists
2023-11-29 08:30:52 -06:00
LinuxServer-CI
e2d34baa3f Bot Updating Package Versions 2023-11-28 11:52:19 +00:00
Eric Nemchik
be9ffb890e
only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:49:42 -06:00
LinuxServer-CI
f62cc3b9e8 Bot Updating Package Versions 2023-11-21 11:49:54 +00:00
Eric Nemchik
45d68d0508
Merge pull request #357 from linuxserver/standard-cron-develop
standard cron develop
2023-11-18 19:09:15 -06:00
LinuxServer-CI
ba1ac62fd9 Bot Updating Package Versions 2023-11-16 21:36:06 +00:00
LinuxServer-CI
ca6afd353a Bot Updating Templated Files 2023-11-16 21:31:08 +00:00
LinuxServer-CI
acb431bc9c Bot Updating Package Versions 2023-11-14 23:32:43 +00:00
LinuxServer-CI
2639cc28cd Bot Updating Package Versions 2023-11-14 11:49:59 +00:00
LinuxServer-CI
35919306ae Bot Updating Package Versions 2023-11-10 14:35:17 +00:00
LinuxServer-CI
355c1b33c1 Bot Updating Package Versions 2023-11-02 16:40:23 +00:00
LinuxServer-CI
5bb6b49068 Bot Updating Package Versions 2023-10-28 19:59:43 +00:00
LinuxServer-CI
96ae53f2fc Bot Updating Templated Files 2023-10-28 19:54:46 +00:00
Eric Nemchik
9755ecbbc5
Merge pull request #376 from linuxserver/disable-web-upgrade-develop
Disable web upgrades using occ during init develop
2023-10-28 14:53:12 -05:00
Eric Nemchik
e07f1ae896
Disable web upgrades using occ during init
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-10-28 14:25:07 -05:00
LinuxServer-CI
a810a8f45f Bot Updating Package Versions 2023-10-24 11:52:50 +00:00
LinuxServer-CI
4f772f8a0e Bot Updating Package Versions 2023-10-17 11:50:15 +00:00
LinuxServer-CI
eb988dcf54 Bot Updating Package Versions 2023-10-12 21:34:51 +00:00
LinuxServer-CI
c8441d7681 Bot Updating Package Versions 2023-10-10 11:54:28 +00:00
LinuxServer-CI
3caf64eb7e Bot Updating Templated Files 2023-10-10 11:50:24 +00:00
LinuxServer-CI
49474850dc Bot Updating Templated Files 2023-10-10 11:48:50 +00:00
LinuxServer-CI
373ee2efc0 Bot Updating Package Versions 2023-09-29 00:41:10 +00:00
Eric Nemchik
56ae57320b
Merge pull request #359 from linuxserver/develop-updatenotification-app
Re-add updatenotification app
2023-09-28 19:36:15 -05:00
LinuxServer-CI
26c0913d86 Bot Updating Package Versions 2023-09-28 14:38:09 +00:00
LinuxServer-CI
525efaa99a Bot Updating Package Versions 2023-09-26 11:50:04 +00:00
quietsy
50c57a68f9
Merge pull request #365 from linuxserver/fix-lsiown-develop
Fix lsiown -R order
2023-09-18 16:57:26 +03:00
quietsy
a1a8f070f1 Fix lsiown -R order 2023-09-18 16:39:12 +03:00
LinuxServer-CI
9f953af7ad Bot Updating Package Versions 2023-09-14 18:33:10 +00:00
LinuxServer-CI
4d74174b8c Bot Updating Package Versions 2023-09-12 09:35:12 +00:00
LinuxServer-CI
db66b6a2cc Bot Updating Package Versions 2023-09-07 14:33:34 +00:00
LinuxServer-CI
92378267ac Bot Updating Package Versions 2023-09-05 11:50:04 +00:00
LinuxServer-CI
7f08b006fe Bot Updating Package Versions 2023-08-31 15:33:10 +00:00
Eric Nemchik
cea5b826cc
Re-add updatenotification app
Closes https://github.com/linuxserver/docker-nextcloud/issues/356

Signed-off-by: GitHub <noreply@github.com>
2023-08-31 14:00:49 +00:00
LinuxServer-CI
e7cdf18d23 Bot Updating Package Versions 2023-08-29 11:51:13 +00:00
Eric Nemchik
74f9122ab6
Merge branch 'standard-cron' into standard-cron-develop 2023-08-26 09:59:51 -05:00
LinuxServer-CI
d935187cb3 Bot Updating Package Versions 2023-08-22 11:50:11 +00:00
LinuxServer-CI
24cb0878c4 Bot Updating Package Versions 2023-08-15 11:57:10 +00:00
LinuxServer-CI
d641ed8dba Bot Updating Package Versions 2023-08-15 11:52:53 +00:00
quietsy
9651cce68c
Merge pull request #352 from linuxserver/initial-develop
Add develop branch
2023-08-15 09:27:38 +03:00
quietsy
a7f9b4c842 Add develop branch 2023-08-15 08:52:29 +03:00
LinuxServer-CI
ecb0c736a1 Bot Updating Package Versions 2023-08-15 03:26:31 +00:00
LinuxServer-CI
a68f0f6925 Bot Updating Package Versions 2023-08-15 03:22:55 +00:00
LinuxServer-CI
9c74d389e8 Bot Updating Package Versions 2023-08-15 03:19:37 +00:00
Eric Nemchik
679d4f2c41
Merge pull request #353 from linuxserver/remove-updatenotification
Remove updatenotification
2023-08-14 22:16:03 -05:00
Eric Nemchik
fd7d9d1f0a
Run silent
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-14 20:06:34 -05:00
Eric Nemchik
ea2517e26d
Remove updatenotification
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-14 20:00:33 -05:00
LinuxServer-CI
d2fd6fc539 Bot Updating Package Versions 2023-08-14 14:04:59 +00:00
LinuxServer-CI
7ed49f352e Bot Updating Package Versions 2023-08-08 11:50:05 +00:00
LinuxServer-CI
e916f5b8e7 Bot Updating Package Versions 2023-08-01 11:49:55 +00:00
26 changed files with 1732 additions and 1087 deletions

0
.editorconfig Executable file → Normal file
View File

10
.github/CONTRIBUTING.md vendored Executable file → Normal file
View File

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files ## Common files
@ -24,7 +24,7 @@
## Readme ## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/master/readme-vars.yml). Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/develop/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud) Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud)
@ -105,17 +105,17 @@ docker build \
-t linuxserver/nextcloud:latest . -t linuxserver/nextcloud:latest .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the changelog ## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/master/root), add an entry to the changelog If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/develop/root), add an entry to the changelog
```yml ```yml
changelogs: changelogs:

0
.github/FUNDING.yml vendored Executable file → Normal file
View File

2
.github/ISSUE_TEMPLATE/config.yml vendored Executable file → Normal file
View File

@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discord chat support - name: Discord chat support
url: https://discord.gg/YWrKVTn url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team. about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum - name: Discourse discussion forum

4
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file → Normal file
View File

@ -67,10 +67,10 @@ body:
- type: textarea - type: textarea
attributes: attributes:
description: | description: |
Provide a full docker log, output of "docker logs linuxserver.io" Provide a full docker log, output of "docker logs nextcloud"
label: Container logs label: Container logs
placeholder: | placeholder: |
Output of `docker logs linuxserver.io` Output of `docker logs nextcloud`
render: bash render: bash
validations: validations:
required: true required: true

0
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file → Normal file
View File

View File

@ -21,7 +21,7 @@
------------------------------ ------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications - [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------ ------------------------------

3
.github/workflows/call_issue_pr_tracker.yml vendored Executable file → Normal file
View File

@ -8,6 +8,9 @@ on:
pull_request_review: pull_request_review:
types: [submitted,edited,dismissed] types: [submitted,edited,dismissed]
permissions:
contents: read
jobs: jobs:
manage-project: manage-project:
permissions: permissions:

3
.github/workflows/call_issues_cron.yml vendored Executable file → Normal file
View File

@ -4,6 +4,9 @@ on:
- cron: '35 2 * * *' - cron: '35 2 * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
stale: stale:
permissions: permissions:

159
.github/workflows/external_trigger.yml vendored Executable file → Normal file
View File

@ -3,52 +3,86 @@ name: External Trigger Main
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-master: external-trigger-develop:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/develop'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: | run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER }}" ]; then printf "# External trigger for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****" if grep -q "^nextcloud_develop_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_develop_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^nextcloud_develop" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_develop\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of develop branch. To disable this trigger, add \`nextcloud_develop\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1)
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^nextcloud_develop_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\". ****"
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1)
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for nextcloud branch master" echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for nextcloud branch develop"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/actions/runs/${{ github.run_id }}" GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****" echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/nextcloud" image="linuxserver/nextcloud"
tag="latest" tag="develop"
token=$(curl -sX GET \ token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \
| jq -r '.token') | jq -r '.token')
multidigest=$(curl -s \ multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \ "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
| jq -r 'first(.manifests[].digest)') digest=$(jq -r '.config.digest' <<< "${digest}");
digest=$(curl -s \ fi
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ fi
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \ image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}") "https://ghcr.io/v2/${image}/blobs/${digest}")
@ -60,45 +94,54 @@ jobs:
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag latest" echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag develop"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****" echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
else else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" if [[ "${artifacts_found}" == "false" ]]; then
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \ echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \ FAILURE_REASON="New version ${EXT_RELEASE} for nextcloud tag develop is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
echo "**** Jenkins job queue url: ${response%$'\r'} ****" "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
echo "**** Sleeping 10 seconds until job starts ****" "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
sleep 10 else
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
buildurl="${buildurl%$'\r'}" echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job build url: ${buildurl} ****" if [[ "${artifacts_found}" == "true" ]]; then
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****" fi
curl -iX POST \ response=$(curl -iX POST \
"${buildurl}submitDescription" \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
--data-urlencode "Submit=Submit" echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
echo "**** Notifying Discord ****" sleep 10
TRIGGER_REASON="A version change was detected for nextcloud tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, buildurl="${buildurl%$'\r'}"
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for nextcloud tag develop. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
fi fi

29
.github/workflows/external_trigger_scheduler.yml vendored Executable file → Normal file
View File

@ -5,41 +5,44 @@ on:
- cron: '27 * * * *' - cron: '27 * * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'
- name: External Trigger Scheduler - name: External Trigger Scheduler
run: | run: |
echo "**** Branches found: ****" printf "# External trigger scheduler for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml) ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch') ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type') ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****" echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
curl -iX POST \ curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \ -H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \ -H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \ -d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/external_trigger.yml/dispatches https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/external_trigger.yml/dispatches
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi fi
else else
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****" echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi fi
done done

8
.github/workflows/greetings.yml vendored Executable file → Normal file
View File

@ -2,12 +2,18 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,42 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\". ****"
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

107
.github/workflows/package_trigger_scheduler.yml vendored Executable file → Normal file
View File

@ -5,46 +5,99 @@ on:
- cron: '42 11 * * 2' - cron: '42 11 * * 2'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'
- name: Package Trigger Scheduler - name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: | run: |
echo "**** Branches found: ****" printf "# Package trigger scheduler for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml | yq -r '.ls_branch') continue
if [ "${br}" == "${ls_branch}" ]; then fi
echo "**** Branch ${br} appears to be live; checking workflow. ****" printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml)
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} " echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \ skipped_branches="${skipped_branches}${br} "
-H "Authorization: token ${{ secrets.CR_PAT }}" \ elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
-H "Accept: application/vnd.github.v3+json" \ echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
-d "{\"ref\":\"refs/heads/${br}\"}" \ README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/readme-vars.yml)
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/package_trigger.yml/dispatches if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
sleep 30 echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^nextcloud_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`nextcloud_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`nextcloud_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi fi
else else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi fi
done done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
echo "**** Notifying Discord ****" if [[ -n "${triggered_branches}" ]]; then
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
"description": "**Package Check Build(s) Triggered for nextcloud** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-nextcloud/activity/"' \n"}], NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-nextcloud/activity/ \n"
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) for nextcloud** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

2
.github/workflows/permissions.yml vendored Executable file → Normal file
View File

@ -5,6 +5,8 @@ on:
- '**/run' - '**/run'
- '**/finish' - '**/finish'
- '**/check' - '**/check'
- 'root/migrations/*'
jobs: jobs:
permission_check: permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -19,45 +19,43 @@ RUN \
gnu-libiconv \ gnu-libiconv \
imagemagick \ imagemagick \
libxml2 \ libxml2 \
php82-apcu \ php84-apcu \
php82-bcmath \ php84-bcmath \
php82-bz2 \ php84-bz2 \
php82-dom \ php84-dom \
php82-exif \ php84-exif \
php82-ftp \ php84-ftp \
php82-gd \ php84-gd \
php82-gmp \ php84-gmp \
php82-imap \ php84-imap \
php82-intl \ php84-intl \
php82-ldap \ php84-ldap \
php82-opcache \ php84-opcache \
php82-pcntl \ php84-pcntl \
php82-pdo_mysql \ php84-pdo_mysql \
php82-pdo_pgsql \ php84-pdo_pgsql \
php82-pdo_sqlite \ php84-pdo_sqlite \
php82-pecl-imagick \ php84-pecl-imagick \
php82-pecl-memcached \ php84-pecl-memcached \
php82-pecl-smbclient \ php84-pecl-smbclient \
php82-pgsql \ php84-pgsql \
php82-posix \ php84-posix \
php82-redis \ php84-redis \
php82-sodium \ php84-sodium \
php82-sqlite3 \ php84-sqlite3 \
php82-sysvsem \ php84-sysvsem \
php82-xmlreader \ php84-xmlreader \
rsync \ rsync \
samba-client \ samba-client \
sudo && \ sudo && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php82-pecl-mcrypt && \
echo "**** configure php-fpm to pass env vars ****" && \ echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php82/php-fpm.d/www.conf && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php82/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php82/php-fpm.d/www.conf && \ if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php82/php-fpm.conf && \ echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \ echo "**** configure php for nextcloud ****" && \
{ \ { \
echo 'apc.enable_cli=1'; \ echo 'apc.enable_cli=1'; \
} >> /etc/php82/conf.d/apcu.ini && \ } >> /etc/php84/conf.d/apcu.ini && \
{ \ { \
echo 'opcache.enable=1'; \ echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \ echo 'opcache.interned_strings_buffer=32'; \
@ -67,32 +65,33 @@ RUN \
echo 'opcache.revalidate_freq=60'; \ echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \ echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \ echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php82/conf.d/00_opcache.ini" && \ } >> "/etc/php84/conf.d/00_opcache.ini" && \
{ \ { \
echo 'memory_limit=512M'; \ echo 'memory_limit=-1'; \
echo 'upload_max_filesize=512M'; \ echo 'upload_max_filesize=100G'; \
echo 'post_max_size=512M'; \ echo 'post_max_size=100G'; \
echo 'max_input_time=300'; \ echo 'max_input_time=3600'; \
echo 'max_execution_time=300'; \ echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \ echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \ echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php82/conf.d/nextcloud.ini" && \ } >> "/etc/php84/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \ echo "**** install nextcloud ****" && \
mkdir -p \ mkdir -p \
/app/www/src/ && \ /app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \ if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \ NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \ | jq -r '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \ | sed 's|^v||g' | sort -rV | head -1); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \ https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \ tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \ /app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \ rm -rf /app/www/src/updater && \
mkdir -p /app/www/src/data && \ mkdir -p /app/www/src/data && \
chmod +x /app/www/src/occ && \ chmod +x /app/www/src/occ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
rm -rf \ rm -rf \
/tmp/* /tmp/*

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -19,45 +19,43 @@ RUN \
gnu-libiconv \ gnu-libiconv \
imagemagick \ imagemagick \
libxml2 \ libxml2 \
php82-apcu \ php84-apcu \
php82-bcmath \ php84-bcmath \
php82-bz2 \ php84-bz2 \
php82-dom \ php84-dom \
php82-exif \ php84-exif \
php82-ftp \ php84-ftp \
php82-gd \ php84-gd \
php82-gmp \ php84-gmp \
php82-imap \ php84-imap \
php82-intl \ php84-intl \
php82-ldap \ php84-ldap \
php82-opcache \ php84-opcache \
php82-pcntl \ php84-pcntl \
php82-pdo_mysql \ php84-pdo_mysql \
php82-pdo_pgsql \ php84-pdo_pgsql \
php82-pdo_sqlite \ php84-pdo_sqlite \
php82-pecl-imagick \ php84-pecl-imagick \
php82-pecl-memcached \ php84-pecl-memcached \
php82-pecl-smbclient \ php84-pecl-smbclient \
php82-pgsql \ php84-pgsql \
php82-posix \ php84-posix \
php82-redis \ php84-redis \
php82-sodium \ php84-sodium \
php82-sqlite3 \ php84-sqlite3 \
php82-sysvsem \ php84-sysvsem \
php82-xmlreader \ php84-xmlreader \
rsync \ rsync \
samba-client \ samba-client \
sudo && \ sudo && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php82-pecl-mcrypt && \
echo "**** configure php-fpm to pass env vars ****" && \ echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php82/php-fpm.d/www.conf && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php82/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php82/php-fpm.d/www.conf && \ if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php82/php-fpm.conf && \ echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \ echo "**** configure php for nextcloud ****" && \
{ \ { \
echo 'apc.enable_cli=1'; \ echo 'apc.enable_cli=1'; \
} >> /etc/php82/conf.d/apcu.ini && \ } >> /etc/php84/conf.d/apcu.ini && \
{ \ { \
echo 'opcache.enable=1'; \ echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \ echo 'opcache.interned_strings_buffer=32'; \
@ -67,32 +65,33 @@ RUN \
echo 'opcache.revalidate_freq=60'; \ echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \ echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \ echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php82/conf.d/00_opcache.ini" && \ } >> "/etc/php84/conf.d/00_opcache.ini" && \
{ \ { \
echo 'memory_limit=512M'; \ echo 'memory_limit=-1'; \
echo 'upload_max_filesize=512M'; \ echo 'upload_max_filesize=100G'; \
echo 'post_max_size=512M'; \ echo 'post_max_size=100G'; \
echo 'max_input_time=300'; \ echo 'max_input_time=3600'; \
echo 'max_execution_time=300'; \ echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \ echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \ echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php82/conf.d/nextcloud.ini" && \ } >> "/etc/php84/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \ echo "**** install nextcloud ****" && \
mkdir -p \ mkdir -p \
/app/www/src/ && \ /app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \ if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \ NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \ | jq -r '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \ | sed 's|^v||g' | sort -rV | head -1); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \ https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \ tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \ /app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \ rm -rf /app/www/src/updater && \
mkdir -p /app/www/src/data && \ mkdir -p /app/www/src/data && \
chmod +x /app/www/src/occ && \ chmod +x /app/www/src/occ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
rm -rf \ rm -rf \
/tmp/* /tmp/*

829
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

0
LICENSE Executable file → Normal file
View File

232
README.md
View File

@ -1,12 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md --> <!-- Please read https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@ -21,15 +19,14 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# [linuxserver/nextcloud](https://github.com/linuxserver/docker-nextcloud) # [linuxserver/nextcloud](https://github.com/linuxserver/docker-nextcloud)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fnextcloud?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fnextcloud) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fnextcloud?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nextcloud) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nextcloud)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nextcloud/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nextcloud/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-nextcloud/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-nextcloud/packages)
@ -37,8 +34,8 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nextcloud) [![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nextcloud)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/latest/index.html) [![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Fdevelop%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/develop/index.html)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. [Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
@ -48,9 +45,9 @@ Where are your photos and documents? With Nextcloud you pick a server of your ch
## Supported Architectures ## Supported Architectures
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/nextcloud:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/nextcloud:develop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are: The architectures supported by this image are:
@ -58,12 +55,23 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Version Tags
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable Nextcloud releases |
| develop | ✅ | Beta Nextcloud pre-releases *only* |
| previous | ✅ | Nextcloud releases from the previous major version |
## Application Setup ## Application Setup
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/). Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
Note: `occ` should be run without prepending with `sudo -u abc php` or `sudo -u www-data php` ie; `docker exec -it nextcloud occ maintenance:mode --off`
### Updating Nextcloud ### Updating Nextcloud
Updating Nextcloud is done by pulling the new image, and recreating the container with it. Updating Nextcloud is done by pulling the new image, and recreating the container with it.
@ -78,6 +86,34 @@ Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffi
If (auto) installed, those built-in packages may cause instability and should be removed. If (auto) installed, those built-in packages may cause instability and should be removed.
### HEIC Image Previews
In order to enable HEIC image preview generation you will need to add the following to your `config.php` file in your `config/www/nextcloud/config' directory;
```
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\BMP',
'OC\Preview\XBitmap',
'OC\Preview\MP3',
'OC\Preview\TXT',
'OC\Preview\MarkDown',
'OC\Preview\OpenDocument',
'OC\Preview\Krita',
'OC\Preview\HEIC',
),
```
You may need to log out and back in for the changes to come in to effect.
This fix was sourced from [Nextcloud Documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#enabledpreviewproviders)
Nextcloud state that HEIC preview is disabled by default due to performance or privacy concerns, so enable this at your own risk.
### Custom App Directories ### Custom App Directories
If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex: If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex:
@ -96,23 +132,25 @@ If you are using a reverse proxy which validates certificates, you need to [disa
## Usage ## Usage
Here are some example snippets to help you get started creating a container. To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml ```yaml
--- ---
version: "2.1"
services: services:
nextcloud: nextcloud:
image: lscr.io/linuxserver/nextcloud:latest image: lscr.io/linuxserver/nextcloud:develop
container_name: nextcloud container_name: nextcloud
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Etc/UTC - TZ=Etc/UTC
volumes: volumes:
- /path/to/appdata:/config - /path/to/nextcloud/config:/config
- /path/to/data:/data - /path/to/data:/data
ports: ports:
- 443:443 - 443:443
@ -128,24 +166,23 @@ docker run -d \
-e PGID=1000 \ -e PGID=1000 \
-e TZ=Etc/UTC \ -e TZ=Etc/UTC \
-p 443:443 \ -p 443:443 \
-v /path/to/appdata:/config \ -v /path/to/nextcloud/config:/config \
-v /path/to/data:/data \ -v /path/to/data:/data \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/nextcloud:latest lscr.io/linuxserver/nextcloud:develop
``` ```
## Parameters ## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function | | Parameter | Function |
| :----: | --- | | :----: | --- |
| `-p 443` | WebUI | | `-p 443:443` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | Nextcloud configs. | | `-v /config` | Persistent config files |
| `-v /data` | Your personal data. | | `-v /data` | Your personal data. |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@ -155,10 +192,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example: As an example:
```bash ```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword -e FILE__MYVAR=/run/secrets/mysecretvariable
``` ```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications ## Umask for running applications
@ -167,15 +204,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers ## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
```bash ```bash
$ id username id your_user
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) ```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
``` ```
## Docker Mods ## Docker Mods
@ -186,53 +228,101 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info ## Support Info
* Shell access whilst the container is running: `docker exec -it nextcloud /bin/bash` * Shell access whilst the container is running:
* To monitor the logs of the container in realtime: `docker logs -f nextcloud`
* container version number ```bash
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud` docker exec -it nextcloud /bin/bash
* image version number ```
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:latest`
* To monitor the logs of the container in realtime:
```bash
docker logs -f nextcloud
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:develop
```
## Updating Info ## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update all images: `docker-compose pull` * Update images:
* or update a single image: `docker-compose pull nextcloud` * All images:
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d nextcloud` ```bash
* You can also remove the old dangling images: `docker image prune` docker-compose pull
```
* Single image:
```bash
docker-compose pull nextcloud
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d nextcloud
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/nextcloud:latest` * Update the image:
* Stop the running container: `docker stop nextcloud`
* Delete the container: `docker rm nextcloud` ```bash
docker pull lscr.io/linuxserver/nextcloud:develop
```
* Stop the running container:
```bash
docker stop nextcloud
```
* Delete the container:
```bash
docker rm nextcloud
```
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) * Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images:
### Via Watchtower auto-updater (only use if you don't remember the original parameters) ```bash
docker image prune
* Pull the latest image at its tag and replace it with the same env variables in one run: ```
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once nextcloud
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. >[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
@ -244,19 +334,35 @@ cd docker-nextcloud
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t lscr.io/linuxserver/nextcloud:latest . -t lscr.io/linuxserver/nextcloud:develop .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions ## Versions
* **10.07.25:** - Rebase to Alpine 3.22.
* **12.02.25:** - Rebase to Alpine 3.21.
* **09.01.25:** - Fix uploading large files. Existing users should update their nginx confs.
* **09.07.24:** - Add `previous` tag for n-1 releases.
* **24.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **19.05.24:** - Added util-linux package required for taskset.
* **10.04.24:** - Added imagemagick-pdf.
* **05.04.24:** - Added imagemagick-heic. Manual update to `config.php` required - see above.
* **02.04.24:** - Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push).
* **22.03.24:** - Add imagemagick-svg module.
* **06.03.24:** - Rebase to Alpine 3.19 with php 8.3.
* **02.01.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **22.12.23:** - Site default conf updating to include mime.types for js and mjs and update location to include more file types.
* **28.10.23:** - Disable web upgrades using occ during init.
* **31.08.23:** - Re-add updatenotification app. This allows users to be notified for app updates, but also notifies for NextCloud updates. Updating NextCloud via the web UI is not supported when using this image.
* **14.08.23:** - Add develop branch.
* **25.06.23:** - Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/). * **25.06.23:** - Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/).
* **21.06.23:** - Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings. * **21.06.23:** - Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf. * **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.

View File

@ -3,11 +3,10 @@
# jenkins variables # jenkins variables
project_name: docker-nextcloud project_name: docker-nextcloud
external_type: na external_type: na
custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1" custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1"
release_type: stable release_type: prerelease
release_tag: latest release_tag: develop
ls_branch: master ls_branch: develop
build_armhf: false
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE' - BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
@ -23,6 +22,6 @@ repo_vars:
- CI_PORT='443' - CI_PORT='443'
- CI_SSL='true' - CI_SSL='true'
- CI_DELAY='120' - CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific' - CI_DOCKERENV=''
- CI_AUTH='user:password' - CI_AUTH=''
- CI_WEBPATH='' - CI_WEBPATH=''

View File

@ -1,378 +1,489 @@
NAME VERSION TYPE NAME VERSION TYPE
alpine-baselayout 3.4.3-r1 apk Process Wrapper 0.0.0.0 binary (+1 duplicate)
alpine-baselayout-data 3.4.3-r1 apk acl-libs 2.3.2-r1 apk
alpine-keys 2.4-r1 apk activity 5.0.0-dev.0 npm
alpine-release 3.18.2-r0 apk alpine-baselayout 3.7.0-r0 apk
alsa-lib 1.2.9-r1 apk alpine-baselayout-data 3.7.0-r0 apk
amphp/amp v2.6.2 php-composer alpine-keys 2.5-r0 apk
amphp/byte-stream v1.8.1 php-composer alpine-release 3.22.2-r0 apk
amphp/parallel v1.4.3 php-composer alsa-lib 1.2.14-r0 apk
amphp/parser v1.1.0 php-composer amphp/amp v2.6.4 php-composer
amphp/process v1.1.4 php-composer amphp/byte-stream v1.8.2 php-composer
amphp/serialization v1.0.0 php-composer amphp/parallel v1.4.4 php-composer
amphp/sync v1.4.2 php-composer amphp/parser v1.1.1 php-composer
aom-libs 3.6.1-r0 apk amphp/process v1.1.9 php-composer
apache2-utils 2.4.57-r3 apk amphp/serialization v1.0.0 php-composer
apk-tools 2.14.0-r2 apk amphp/sync v1.4.2 php-composer
apr 1.7.4-r0 apk andrewdalpino/okbloomer 1.0.0 php-composer
apr-util 1.6.3-r1 apk anstream 0.6.8 rust-crate
argon2-libs 20190702-r4 apk anstyle 1.0.4 rust-crate
avahi-libs 0.8-r13 apk anstyle-parse 0.2.3 rust-crate
aws/aws-crt-php v1.0.2 php-composer anstyle-query 1.0.2 rust-crate
aws/aws-sdk-php 3.240.8 php-composer anyhow 1.0.79 rust-crate
bantu/ini-get-wrapper v1.0.1 php-composer anyhow 1.0.98 rust-crate
bash 5.2.15-r5 apk aom-libs 3.12.1-r0 apk
beberlei/assert v3.3.1 php-composer apache2-utils 2.4.66-r0 apk
brick/math 0.9.2 php-composer apk-tools 2.14.9-r3 apk
brotli-libs 1.0.9-r14 apk apr 1.7.5-r0 apk
busybox 1.36.1 binary apr-util 1.6.3-r1 apk
busybox 1.36.1-r1 apk arg_enum_proc_macro 0.3.4 rust-crate
busybox-binsh 1.36.1-r1 apk argon2-libs 20190702-r5 apk
c-client 2007f-r15 apk arrayvec 0.7.4 rust-crate
ca-certificates 20230506-r0 apk av-metrics 0.9.1 rust-crate
ca-certificates-bundle 20230506-r0 apk av1-grain 0.2.3 rust-crate
cairo 1.17.8-r1 apk aws/aws-crt-php v1.2.7 php-composer
cairo-gobject 1.17.8-r1 apk aws/aws-sdk-php 3.349.3 php-composer
christian-riesen/base32 1.6.0 php-composer bamarni/composer-bin-plugin 1.8.2 php-composer
christophwurst/id3parser v0.1.4 php-composer bantu/ini-get-wrapper v1.0.1 php-composer
cjson 1.7.15-r4 apk bash 5.2.37-r0 apk
coreutils 9.3-r1 apk bitflags 2.4.1 rust-crate
cups-libs 2.4.6-r0 apk bitstream-io 2.2.0 rust-crate
curl 8.1.2-r0 apk bitstream-io 2.6.0 rust-crate
cweagans/composer-patches 1.7.1 php-composer bitvec 1.0.1 rust-crate
darsyn/ip 4.1.0 php-composer bitvec_helpers 3.1.6 rust-crate
dbus-libs 1.14.8-r0 apk brick/math 0.12.1 php-composer
deepdiver/zipstreamer 2.0.0 php-composer brotli-libs 1.1.0-r2 apk
deepdiver1975/tarstreamer 2.0.0 php-composer busybox 1.37.0-r20 apk
doctrine/cache 2.2.0 php-composer busybox-binsh 1.37.0-r20 apk
doctrine/dbal 3.3.8 php-composer c-ares 1.34.6-r0 apk
doctrine/deprecations v1.0.0 php-composer c-client 2007f-r15 apk
doctrine/event-manager 1.2.0 php-composer ca-certificates 20250911-r0 apk
doctrine/lexer 1.2.3 php-composer ca-certificates-bundle 20250911-r0 apk
egulias/email-validator 3.2.5 php-composer catatonit 0.2.1-r0 apk
ffmpeg 6.0-r15 apk cfg-if 1.0.0 rust-crate
ffmpeg-libavcodec 6.0-r15 apk christian-riesen/base32 1.6.0 php-composer
ffmpeg-libavdevice 6.0-r15 apk cjson 1.7.19-r0 apk
ffmpeg-libavfilter 6.0-r15 apk clap 4.4.14 rust-crate
ffmpeg-libavformat 6.0-r15 apk clap_builder 4.4.14 rust-crate
ffmpeg-libavutil 6.0-r15 apk clap_complete 4.4.6 rust-crate
ffmpeg-libpostproc 6.0-r15 apk clap_derive 4.4.7 rust-crate
ffmpeg-libswresample 6.0-r15 apk clap_lex 0.6.0 rust-crate
ffmpeg-libswscale 6.0-r15 apk colorchoice 1.0.0 rust-crate
fgrosse/phpasn1 v2.3.0 php-composer composer 2.9.3 binary
flac-libs 1.4.3-r0 apk console 0.15.8 rust-crate
fontconfig 2.14.2-r3 apk coreutils 9.7-r1 apk
freetype 2.13.0-r5 apk coreutils-env 9.7-r1 apk
fribidi 1.0.13-r0 apk coreutils-fmt 9.7-r1 apk
fusonic/linq v1.1.0 php-composer coreutils-sha512sum 9.7-r1 apk
fusonic/opengraph v2.2.0 php-composer crc 3.3.0 rust-crate
gdbm 1.23-r1 apk crc-catalog 2.4.0 rust-crate
gdk-pixbuf 2.42.10-r5 apk crossbeam 0.8.4 rust-crate
ghostscript 10.01.2-r0 apk crossbeam-channel 0.5.14 rust-crate
giggsey/libphonenumber-for-php 8.13.7 php-composer crossbeam-deque 0.8.5 rust-crate
giggsey/locale 2.3 php-composer crossbeam-epoch 0.9.18 rust-crate
git 2.40.1-r0 apk crossbeam-queue 0.3.11 rust-crate
glib 2.76.4-r0 apk crossbeam-utils 0.8.19 rust-crate
glslang-libs 1.3.243.0-r1 apk curl 8.14.1-r2 apk
gmp 6.2.1-r3 apk cweagans/composer-patches 1.7.3 php-composer
gnu-libiconv 1.17-r1 apk dbus-libs 1.16.2-r1 apk
gnu-libiconv-libs 1.17-r1 apk deepdiver/zipstreamer v2.0.3 php-composer
gnutls 3.8.0-r2 apk deepdiver1975/tarstreamer v2.1.0 php-composer
graphite2 1.3.14-r5 apk doctrine/dbal 3.10.2 php-composer
guzzlehttp/guzzle 7.5.0 php-composer doctrine/deprecations 1.1.5 php-composer
guzzlehttp/promises 1.5.2 php-composer doctrine/event-manager 2.0.1 php-composer
guzzlehttp/psr7 2.4.5 php-composer doctrine/lexer 3.0.1 php-composer
guzzlehttp/uri-template v0.2.0 php-composer dolby_vision 3.3.1 rust-crate
harfbuzz 7.3.0-r0 apk egulias/email-validator 4.0.4 php-composer
hexogen/kdtree v0.2.5 php-composer either 1.9.0 rust-crate
hwdata-pci 0.370-r0 apk errno 0.3.8 rust-crate
icewind/searchdav v3.0.1 php-composer fern 0.6.2 rust-crate
icewind/smb v3.5.4 php-composer ffmpeg 6.1.2-r2 apk
icewind/streams v0.7.7 php-composer ffmpeg-libavcodec 6.1.2-r2 apk
icu-data-en 73.2-r2 apk ffmpeg-libavdevice 6.1.2-r2 apk
icu-libs 73.2-r2 apk ffmpeg-libavfilter 6.1.2-r2 apk
imagemagick 7.1.1.13-r0 apk ffmpeg-libavformat 6.1.2-r2 apk
imagemagick-libs 7.1.1.13-r0 apk ffmpeg-libavutil 6.1.2-r2 apk
jansson 2.14-r3 apk ffmpeg-libpostproc 6.1.2-r2 apk
jbig2dec 0.19-r3 apk ffmpeg-libswresample 6.1.2-r2 apk
jq 1.6-r3 apk ffmpeg-libswscale 6.1.2-r2 apk
justinrainbow/json-schema 5.2.10 php-composer fftw-double-libs 3.3.10-r6 apk
lame-libs 3.100-r5 apk files_downloadlimit 5.0.0-dev.0 npm
laravel/serializable-closure v1.2.2 php-composer files_pdfviewer 5.0.0-dev.0 npm
lcms2 2.15-r2 apk findutils 4.10.0-r0 apk
ldb 2.7.2-r1 apk firstrunwizard 5.0.0-dev.0 npm
league/flysystem 2.5.0 php-composer fontconfig 2.15.0-r3 apk
league/mime-type-detection 1.11.0 php-composer freetype 2.13.3-r0 apk
league/uri 6.4.0 php-composer fribidi 1.0.16-r1 apk
league/uri-interfaces 2.2.0 php-composer funty 2.0.0 rust-crate
libacl 2.3.1-r3 apk fusonic/opengraph v3.0.0 php-composer
libarchive 3.6.2-r2 apk gdbm 1.24-r0 apk
libass 0.17.1-r0 apk getrandom 0.2.12 rust-crate
libasyncns 0.8-r1 apk giflib 5.2.2-r1 apk
libattr 2.5.1-r4 apk giggsey/libphonenumber-for-php-lite 9.0.17 php-composer
libavif 0.11.1-r2 apk git 2.49.1-r0 apk
libblkid 2.38.1-r8 apk git-init-template 2.49.1-r0 apk
libbluray 1.3.4-r0 apk glib 2.84.4-r0 apk
libbsd 0.11.7-r1 apk glslang-libs 1.4.309.0-r0 apk
libbz2 1.0.8-r5 apk gmp 6.3.0-r3 apk
libc-utils 0.7.2-r5 apk gnu-libiconv 1.17-r2 apk
libcap2 2.69-r0 apk gnu-libiconv-libs 1.17-r2 apk
libcrypto3 3.1.1-r3 apk gnutls 3.8.8-r0 apk
libcurl 8.1.2-r0 apk graphite2 1.3.14-r6 apk
libdav1d 1.2.1-r0 apk guzzlehttp/guzzle 7.9.3 php-composer
libde265 1.0.12-r0 apk guzzlehttp/promises 2.2.0 php-composer
libdrm 2.4.115-r4 apk guzzlehttp/psr7 2.7.1 php-composer
libedit 20221030.3.1-r1 apk guzzlehttp/uri-template v1.0.4 php-composer
libevent 2.1.12-r6 apk harfbuzz 11.2.1-r0 apk
libexpat 2.5.0-r1 apk heck 0.4.1 rust-crate
libffi 3.4.4-r2 apk hexogen/kdtree v0.2.6 php-composer
libformw 6.4_p20230506-r0 apk hwdata-pci 0.395-r0 apk
libgcc 12.2.1_git20220924-r10 apk icewind/searchdav v3.2.0 php-composer
libgomp 12.2.1_git20220924-r10 apk icewind/smb v3.7.0 php-composer
libheif 1.16.2-r0 apk icewind/streams v0.7.8 php-composer
libhwy 1.0.4-r1 apk icu-data-en 76.1-r1 apk
libice 1.1.1-r2 apk icu-libs 76.1-r1 apk
libidn2 2.3.4-r1 apk imagemagick 7.1.2.8-r0 apk
libintl 0.21.1-r7 apk imagemagick-jpeg 7.1.2.8-r0 apk
libjpeg-turbo 2.1.5.1-r3 apk imagemagick-jxl 7.1.2.8-r0 apk
libjxl 0.8.2-r0 apk imagemagick-libs 7.1.2.8-r0 apk
libldap 2.6.5-r0 apk imagemagick-openexr 7.1.2.8-r0 apk
libltdl 2.4.7-r2 apk imagemagick-webp 7.1.2.8-r0 apk
libmcrypt 2.5.8-r10 apk imath 3.1.12-r0 apk
libmd 1.0.4-r2 apk interpolate_name 0.2.4 rust-crate
libmemcached-libs 1.1.4-r1 apk itertools 0.10.5 rust-crate
libmount 2.38.1-r8 apk itertools 0.12.0 rust-crate
libncursesw 6.4_p20230506-r0 apk ivf 0.1.3 rust-crate
libogg 1.3.5-r4 apk jansson 2.14.1-r0 apk
libopenmpt 0.7.2-r0 apk joomla/string 3.0.4 php-composer
libpanelw 6.4_p20230506-r0 apk jq 1.8.1-r0 apk
libpciaccess 0.17-r2 apk justinrainbow/json-schema 6.4.2 php-composer
libplacebo 5.264.1-r1 apk kornrunner/blurhash v1.2.2 php-composer
libpng 1.6.39-r3 apk lab 0.11.0 rust-crate
libpq 15.3-r0 apk lame-libs 3.100-r5 apk
libproc2 4.0.3-r1 apk laravel/serializable-closure v2.0.4 php-composer
libpulse 16.1-r10 apk lazy_static 1.4.0 rust-crate
libraw 0.21.1-r1 apk lcms2 2.16-r0 apk
librist 0.2.7-r0 apk lcobucci/clock 3.0.0 php-composer
librsvg 2.56.3-r0 apk ldb 4.21.9-r1 apk
libsasl 2.1.28-r4 apk libSvtAv1Enc 2.3.0-r0 apk
libsm 1.2.4-r1 apk libapk2 2.14.9-r3 apk
libsmbclient 4.18.5-r0 apk libarchive 3.8.3-r0 apk
libsndfile 1.2.0-r2 apk libass 0.17.3-r0 apk
libsodium 1.0.18-r3 apk libasyncns 0.8-r4 apk
libsrt 1.5.2-r0 apk libattr 2.5.2-r2 apk
libssh 0.10.5-r0 apk libauth-samba 4.21.9-r1 apk
libssl3 3.1.1-r3 apk libavif 1.3.0-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk libblkid 2.41-r9 apk
libtasn1 4.19.0-r1 apk libbluray 1.3.4-r1 apk
libtheora 1.1.1-r17 apk libbsd 0.12.2-r0 apk
libunibreak 5.1-r0 apk libbz2 1.0.8-r6 apk
libunistring 1.1-r1 apk libc 0.2.155 rust-crate
libuuid 2.38.1-r8 apk libc 0.2.172 rust-crate
libva 2.18.0-r1 apk libcap2 2.76-r0 apk
libvdpau 1.5-r1 apk libcrypto3 3.5.4-r0 apk
libvorbis 1.3.7-r1 apk libcurl 8.14.1-r2 apk
libvpx 1.13.0-r1 apk libdav1d 1.5.1-r0 apk
libwbclient 4.18.5-r0 apk libdeflate 1.23-r0 apk
libwebp 1.3.1-r0 apk libdovi 3.3.1-r1 apk
libx11 1.8.4-r4 apk libdrm 2.4.124-r0 apk
libxau 1.0.11-r2 apk libeconf 0.6.3-r0 apk
libxcb 1.15-r1 apk libedit 20250104.3.1-r1 apk
libxdmcp 1.1.4-r2 apk libevent 2.1.12-r8 apk
libxext 1.3.5-r2 apk libexpat 2.7.3-r0 apk
libxfixes 6.0.1-r2 apk libffi 3.4.8-r0 apk
libxft 2.3.8-r1 apk libflac 1.4.3-r1 apk
libxml2 2.11.4-r0 apk libformw 6.5_p20250503-r0 apk
libxpm 3.5.16-r1 apk libgcc 14.2.0-r6 apk
libxrender 0.9.11-r3 apk libgomp 14.2.0-r6 apk
libxt 1.3.0-r2 apk libhwy 1.0.7-r1 apk
libxxhash 0.8.2-r0 apk libice 1.1.2-r0 apk
libzip 1.9.2-r2 apk libidn2 2.3.7-r0 apk
libzmq 4.3.4-r4 apk libintl 0.24.1-r0 apk
linux-pam 1.5.2-r10 apk libjpeg-turbo 3.1.0-r0 apk
lmdb 0.9.31-r0 apk libjxl 0.10.3-r2 apk
logrotate 3.21.0-r1 apk libldap 2.6.8-r0 apk
lz4-libs 1.9.4-r4 apk libltdl 2.5.4-r1 apk
mbedtls 2.28.3-r1 apk libmd 1.1.0-r0 apk
mexitek/phpcolors v1.0.4 php-composer libmemcached-libs 1.1.4-r1 apk
microsoft/azure-storage-blob 1.5.4 php-composer libmount 2.41-r9 apk
microsoft/azure-storage-common 1.5.2 php-composer libncursesw 6.5_p20250503-r0 apk
mlocati/ip-lib 1.18.0 php-composer libogg 1.3.5-r5 apk
mpg123-libs 1.31.3-r1 apk libopenmpt 0.7.15-r0 apk
mtdowling/jmespath.php 2.6.1 php-composer libpanelw 6.5_p20250503-r0 apk
musl 1.2.4-r0 apk libpciaccess 0.18.1-r0 apk
musl-utils 1.2.4-r0 apk libplacebo 6.338.2-r3 apk
nano 7.2-r1 apk libpng 1.6.53-r0 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk libpq 17.7-r0 apk
netcat-openbsd 1.219-r1 apk libproc2 4.0.4-r3 apk
nettle 3.8.1-r2 apk libpsl 0.21.5-r3 apk
nextcloud/lognormalizer v1.0.0 php-composer libpulse 17.0-r5 apk
nghttp2-libs 1.53.0-r0 apk librist 0.2.10-r1 apk
nginx 1.24.0-r6 apk libsasl 2.1.28-r8 apk
numactl 2.0.16-r4 apk libsharpyuv 1.5.0-r0 apk
onevpl-libs 2023.2.1-r0 apk libsm 1.2.5-r0 apk
oniguruma 6.9.8-r1 apk libsmbclient 4.21.9-r1 apk
openssl 3.1.1-r3 apk libsndfile 1.2.2-r2 apk
opis/closure 3.6.3 php-composer libsodium 1.0.20-r1 apk
opus 1.4-r0 apk libsrt 1.5.3-r1 apk
orc 0.4.34-r0 apk libssh 0.11.2-r0 apk
p11-kit 0.24.1-r2 apk libssl3 3.5.4-r0 apk
pango 1.50.14-r1 apk libstdc++ 14.2.0-r6 apk
pcre 8.45-r3 apk libtasn1 4.20.0-r0 apk
pcre2 10.42-r1 apk libtheora 1.1.1-r18 apk
pear/archive_tar 1.4.14 php-composer libunibreak 6.1-r0 apk
pear/console_getopt v1.4.3 php-composer libunistring 1.3-r0 apk
pear/pear-core-minimal v1.10.10 php-composer libuuid 2.41-r9 apk
pear/pear_exception v1.0.2 php-composer libva 2.22.0-r1 apk
php-cli 8.2.8 binary libvdpau 1.5-r4 apk
php-fpm 8.2.8 binary libvorbis 1.3.7-r2 apk
php-http/guzzle7-adapter 1.0.0 php-composer libvpx 1.15.0-r0 apk
php-http/httplug 2.2.0 php-composer libwbclient 4.21.9-r1 apk
php-http/promise 1.1.0 php-composer libwebp 1.5.0-r0 apk
php-opencloud/openstack v3.2.1 php-composer libwebpdemux 1.5.0-r0 apk
php82 8.2.8-r0 apk libwebpmux 1.5.0-r0 apk
php82-bcmath 8.2.8-r0 apk libx11 1.8.11-r0 apk
php82-bz2 8.2.8-r0 apk libxau 1.0.12-r0 apk
php82-common 8.2.8-r0 apk libxcb 1.17.0-r0 apk
php82-ctype 8.2.8-r0 apk libxdmcp 1.1.5-r1 apk
php82-curl 8.2.8-r0 apk libxext 1.3.6-r2 apk
php82-dom 8.2.8-r0 apk libxfixes 6.0.1-r4 apk
php82-exif 8.2.8-r0 apk libxml2 2.13.9-r0 apk
php82-fileinfo 8.2.8-r0 apk libxpm 3.5.17-r0 apk
php82-fpm 8.2.8-r0 apk libxt 1.3.1-r0 apk
php82-ftp 8.2.8-r0 apk libxxhash 0.8.3-r0 apk
php82-gd 8.2.8-r0 apk libyuv 0.0.1887.20251502-r1 apk
php82-gmp 8.2.8-r0 apk libzip 1.11.4-r0 apk
php82-iconv 8.2.8-r0 apk libzmq 4.3.5-r2 apk
php82-imap 8.2.8-r0 apk lilv-libs 0.24.26-r0 apk
php82-intl 8.2.8-r0 apk linux-pam 1.7.0-r4 apk
php82-ldap 8.2.8-r0 apk linux-raw-sys 0.4.12 rust-crate
php82-mbstring 8.2.8-r0 apk lmdb 0.9.33-r0 apk
php82-mysqlnd 8.2.8-r0 apk log 0.4.20 rust-crate
php82-opcache 8.2.8-r0 apk logreader 5.0.0-dev.0 npm
php82-openssl 8.2.8-r0 apk logrotate 3.21.0-r1 apk
php82-pcntl 8.2.8-r0 apk lz4-libs 1.10.0-r0 apk
php82-pdo 8.2.8-r0 apk marc-mabe/php-enum v4.7.1 php-composer
php82-pdo_mysql 8.2.8-r0 apk masterminds/html5 2.9.0 php-composer
php82-pdo_pgsql 8.2.8-r0 apk maybe-rayon 0.1.1 rust-crate
php82-pdo_sqlite 8.2.8-r0 apk mbedtls 3.6.5-r0 apk
php82-pecl-apcu 5.1.22-r0 apk memchr 2.7.1 rust-crate
php82-pecl-igbinary 3.2.14-r0 apk mexitek/phpcolors v1.0.4 php-composer
php82-pecl-imagick 3.7.0-r5 apk microsoft/azure-storage-blob 1.5.4 php-composer
php82-pecl-mcrypt 1.0.6-r0 apk microsoft/azure-storage-common 1.5.2 php-composer
php82-pecl-memcached 3.2.0-r1 apk minimal-lexical 0.2.1 rust-crate
php82-pecl-msgpack 2.2.0-r0 apk mlocati/ip-lib 1.20.0 php-composer
php82-pecl-redis 5.3.7-r2 apk mpg123-libs 1.32.10-r0 apk
php82-pecl-smbclient 1.1.1-r0 apk mtdowling/jmespath.php 2.8.0 php-composer
php82-pgsql 8.2.8-r0 apk musl 1.2.5-r10 apk
php82-phar 8.2.8-r0 apk musl-utils 1.2.5-r10 apk
php82-posix 8.2.8-r0 apk nano 8.4-r0 apk
php82-session 8.2.8-r0 apk ncurses-terminfo-base 6.5_p20250503-r0 apk
php82-simplexml 8.2.8-r0 apk netcat-openbsd 1.229.1-r0 apk
php82-sockets 8.2.8-r0 apk nettle 3.10.1-r0 apk
php82-sodium 8.2.8-r0 apk new_debug_unreachable 1.0.4 rust-crate
php82-sqlite3 8.2.8-r0 apk nextcloud 1.0.0 npm
php82-sysvsem 8.2.8-r0 apk nextcloud/lognormalizer v1.0.0 php-composer
php82-xml 8.2.8-r0 apk nghttp2-libs 1.65.0-r0 apk
php82-xmlreader 8.2.8-r0 apk nginx 1.28.0-r3 apk
php82-xmlwriter 8.2.8-r0 apk nom 7.1.3 rust-crate
php82-zip 8.2.8-r0 apk noop_proc_macro 0.3.0 rust-crate
phpseclib/phpseclib 2.0.40 php-composer notifications 5.0.0-dev.0 npm
pimple/pimple v3.5.0 php-composer num-bigint 0.4.4 rust-crate
pixman 0.42.2-r1 apk num-derive 0.4.1 rust-crate
pkgconf 1.9.5-r0 apk num-integer 0.1.45 rust-crate
popt 1.19-r2 apk num-rational 0.4.1 rust-crate
procps-ng 4.0.3-r1 apk num-traits 0.2.17 rust-crate
psr/cache 1.0.1 php-composer numactl 2.0.18-r0 apk
psr/clock 1.0.0 php-composer once_cell 1.19.0 rust-crate
psr/container 2.0.2 php-composer onevpl-libs 2023.3.1-r2 apk
psr/event-dispatcher 1.0.0 php-composer oniguruma 6.9.10-r0 apk
psr/http-client 1.0.1 php-composer openexr-libiex 3.3.2-r0 apk
psr/http-factory 1.0.1 php-composer openexr-libilmthread 3.3.2-r0 apk
psr/http-message 1.0.1 php-composer openexr-libopenexr 3.3.2-r0 apk
psr/log 1.1.4 php-composer openexr-libopenexrcore 3.3.2-r0 apk
punic/punic 1.6.5 php-composer openssl 3.5.4-r0 apk
ralouphie/getallheaders 3.0.3 php-composer opus 1.5.2-r1 apk
ramsey/collection 1.1.3 php-composer orc 0.4.40-r1 apk
ramsey/uuid 4.1.1 php-composer p11-kit 0.25.5-r2 apk
readline 8.2.1-r1 apk paragonie/constant_time_encoding v2.6.3 php-composer
rsync 3.2.7-r4 apk password_policy 4.0.0-dev.0 npm
rubix/ml dev-chore/bump-flysystem-v2.1.1 php-composer paste 1.0.14 rust-crate
rubix/tensor 2.2.3 php-composer pcre2 10.46-r0 apk
rullzer/easytotp v0.1.4 php-composer pear/archive_tar 1.5.0 php-composer
sabre/dav 4.4.0 php-composer pear/console_getopt v1.4.3 php-composer
sabre/event 5.1.4 php-composer pear/pear-core-minimal v1.10.16 php-composer
sabre/http 5.1.5 php-composer pear/pear_exception v1.0.2 php-composer
sabre/uri 2.2.2 php-composer photos 5.0.0-dev.1 npm
sabre/vobject 4.4.2 php-composer php-http/guzzle7-adapter 1.1.0 php-composer
sabre/xml 2.2.5 php-composer php-http/httplug 2.4.1 php-composer
samba-client 4.18.5-r0 apk php-http/promise 1.3.1 php-composer
samba-client-libs 4.18.5-r0 apk php-opencloud/openstack v3.14.0 php-composer
samba-common 4.18.5-r0 apk php84 8.4.16-r0 apk
samba-libs 4.18.5-r0 apk php84-bcmath 8.4.16-r0 apk
samba-util-libs 4.18.5-r0 apk php84-bz2 8.4.16-r0 apk
scanelf 1.3.7-r1 apk php84-common 8.4.16-r0 apk
scssphp/scssphp v1.11.0 php-composer php84-ctype 8.4.16-r0 apk
sdl2 2.26.5-r0 apk php84-curl 8.4.16-r0 apk
shaderc 2023.3-r1 apk php84-dom 8.4.16-r0 apk
shadow 4.13-r4 apk php84-exif 8.4.16-r0 apk
shared-mime-info 2.2-r5 apk php84-fileinfo 8.4.16-r0 apk
skalibs 2.13.1.1-r1 apk php84-fpm 8.4.16-r0 apk
soxr 0.1.3-r5 apk php84-ftp 8.4.16-r0 apk
speexdsp 1.2.1-r1 apk php84-gd 8.4.16-r0 apk
spirv-tools 1.3.243.0-r1 apk php84-gmp 8.4.16-r0 apk
spomky-labs/base64url v2.0.4 php-composer php84-iconv 8.4.16-r0 apk
spomky-labs/cbor-php v2.0.1 php-composer php84-intl 8.4.16-r0 apk
sqlite-libs 3.41.2-r2 apk php84-ldap 8.4.16-r0 apk
ssl_client 1.36.1-r1 apk php84-mbstring 8.4.16-r0 apk
stecman/symfony-console-completion 0.11.0 php-composer php84-mysqlnd 8.4.16-r0 apk
sudo 1.9.13_p3-r2 apk php84-opcache 8.4.16-r0 apk
svt-av1-libs 1.6.0-r0 apk php84-openssl 8.4.16-r0 apk
swiftmailer/swiftmailer v6.3.0 php-composer php84-pcntl 8.4.16-r0 apk
symfony/console v5.4.19 php-composer php84-pdo 8.4.16-r0 apk
symfony/css-selector v5.4.11 php-composer php84-pdo_mysql 8.4.16-r0 apk
symfony/deprecation-contracts v2.5.2 php-composer php84-pdo_pgsql 8.4.16-r0 apk
symfony/dom-crawler v5.4.11 php-composer php84-pdo_sqlite 8.4.16-r0 apk
symfony/event-dispatcher v4.4.30 php-composer php84-pecl-apcu 5.1.27-r0 apk
symfony/event-dispatcher-contracts v1.1.9 php-composer php84-pecl-igbinary 3.2.16-r1 apk
symfony/http-foundation v5.4.10 php-composer php84-pecl-imagick 3.8.0-r1 apk
symfony/mailer v5.4.19 php-composer php84-pecl-imap 1.0.3-r0 apk
symfony/mime v5.4.19 php-composer php84-pecl-memcached 3.3.0-r0 apk
symfony/polyfill-ctype v1.23.0 php-composer php84-pecl-msgpack 3.0.0-r0 apk
symfony/polyfill-iconv v1.27.0 php-composer php84-pecl-redis 6.3.0-r0 apk
symfony/polyfill-intl-grapheme v1.23.1 php-composer php84-pecl-smbclient 1.2.0_pre-r0 apk
symfony/polyfill-intl-idn v1.27.0 php-composer php84-pgsql 8.4.16-r0 apk
symfony/polyfill-intl-normalizer v1.27.0 php-composer php84-phar 8.4.16-r0 apk
symfony/polyfill-mbstring v1.27.0 php-composer php84-posix 8.4.16-r0 apk
symfony/polyfill-php72 v1.27.0 php-composer php84-session 8.4.16-r0 apk
symfony/polyfill-php73 v1.23.0 php-composer php84-simplexml 8.4.16-r0 apk
symfony/polyfill-php73 v1.26.0 php-composer php84-sockets 8.4.16-r0 apk
symfony/polyfill-php80 v1.26.0 php-composer php84-sodium 8.4.16-r0 apk
symfony/polyfill-php80 v1.27.0 php-composer php84-sqlite3 8.4.16-r0 apk
symfony/process v4.4.30 php-composer php84-sysvsem 8.4.16-r0 apk
symfony/routing v4.4.30 php-composer php84-xml 8.4.16-r0 apk
symfony/service-contracts v3.0.2 php-composer php84-xmlreader 8.4.16-r0 apk
symfony/string v6.0.19 php-composer php84-xmlwriter 8.4.16-r0 apk
symfony/translation v4.4.41 php-composer php84-zip 8.4.16-r0 apk
symfony/translation-contracts v2.4.0 php-composer phpseclib/phpseclib 2.0.47 php-composer
talloc 2.4.0-r1 apk pimple/pimple v3.5.0 php-composer
tdb-libs 1.4.8-r1 apk popt 1.19-r4 apk
tevent 0.14.1-r1 apk ppv-lite86 0.2.17 rust-crate
thecodingmachine/safe v1.3.3 php-composer privacy 4.0.0-dev.0 npm
tiff 4.5.1-r0 apk proc-macro2 1.0.76 rust-crate
tzdata 2023c-r1 apk procps-ng 4.0.4-r3 apk
utmps-libs 0.1.2.1-r1 apk profiling 1.0.13 rust-crate
v4l-utils-libs 1.24.1-r0 apk profiling-procmacros 1.0.13 rust-crate
vidstab 1.1.1-r0 apk psr/cache 3.0.0 php-composer
vulkan-loader 1.3.243.0-r1 apk psr/clock 1.0.0 php-composer
wayland-libs-client 1.22.0-r2 apk psr/container 2.0.2 php-composer
web-auth/cose-lib v3.3.9 php-composer psr/event-dispatcher 1.0.0 php-composer
web-auth/metadata-service v3.3.9 php-composer psr/http-client 1.0.3 php-composer
web-auth/webauthn-lib v3.3.9 php-composer psr/http-factory 1.1.0 php-composer
x264-libs 0.164_git20220602-r1 apk psr/http-message 2.0 php-composer
x265-libs 3.5-r4 apk psr/log 3.0.2 php-composer (+1 duplicate)
xvidcore 1.3.7-r1 apk punic/punic 3.8.1 php-composer
xz-libs 5.4.3-r0 apk quote 1.0.35 rust-crate
zimg 3.0.5-r0 apk radium 0.7.0 rust-crate
zlib 1.2.13-r1 apk ralouphie/getallheaders 3.0.3 php-composer
zstd-libs 1.5.5-r4 apk rand 0.8.5 rust-crate
rand_chacha 0.3.1 rust-crate
rand_core 0.6.4 rust-crate
rav1e 0.7.1 rust-crate
rav1e-libs 0.7.1-r2 apk
rayon 1.8.0 rust-crate
rayon-core 1.12.0 rust-crate
readline 8.2.13-r1 apk
recommendations 5.0.0-dev.0 npm
rsync 3.4.1-r1 apk
rubix/ml 2.5.2 php-composer
rubix/tensor 3.0.5 php-composer
rullzer/easytotp v0.1.4 php-composer
rustix 0.38.28 rust-crate
sabre/dav 4.7.0 php-composer
sabre/event 5.1.7 php-composer
sabre/http 5.1.12 php-composer
sabre/uri 2.3.4 php-composer
sabre/vobject 4.5.6 php-composer
sabre/xml 2.2.11 php-composer
samba-client 4.21.9-r1 apk
samba-client-libs 4.21.9-r1 apk
samba-common 4.21.9-r1 apk
samba-libs 4.21.9-r1 apk
samba-util-libs 4.21.9-r1 apk
scan_fmt 0.2.6 rust-crate
scanelf 1.3.8-r1 apk
sdl2-compat 2.32.56-r0 apk
sdl3 3.2.16-r0 apk
serd-libs 0.32.4-r0 apk
shaderc 2024.4-r0 apk
shadow 4.17.3-r0 apk
signal-hook 0.3.17 rust-crate
signal-hook-registry 1.4.1 rust-crate
simd_helpers 0.1.0 rust-crate
skalibs-libs 2.14.4.0-r0 apk
sord-libs 0.16.18-r0 apk
soxr 0.1.3-r7 apk
speexdsp 1.2.1-r2 apk
spirv-tools 1.4.313.0-r0 apk
spomky-labs/cbor-php 3.0.4 php-composer
spomky-labs/pki-framework 1.2.1 php-composer
sqlite-libs 3.49.2-r1 apk
sratom 0.6.18-r0 apk
ssl_client 1.37.0-r20 apk
stecman/symfony-console-completion v0.14.0 php-composer
sudo 1.9.17_p2-r0 apk
support 4.0.0-dev.0 npm
symfony/console v6.4.17 php-composer
symfony/css-selector v6.4.13 php-composer
symfony/deprecation-contracts v3.6.0 php-composer (+1 duplicate)
symfony/dom-crawler v6.4.23 php-composer
symfony/event-dispatcher v6.4.8 php-composer
symfony/event-dispatcher-contracts v3.5.0 php-composer
symfony/http-foundation v6.4.29 php-composer
symfony/mailer v6.4.12 php-composer
symfony/mime v6.4.12 php-composer
symfony/polyfill-intl-grapheme v1.32.0 php-composer
symfony/polyfill-intl-idn v1.32.0 php-composer
symfony/polyfill-intl-normalizer v1.32.0 php-composer
symfony/polyfill-mbstring v1.31.0 php-composer
symfony/polyfill-php80 v1.31.0 php-composer
symfony/polyfill-php82 v1.31.0 php-composer
symfony/polyfill-php82 v1.32.0 php-composer
symfony/polyfill-php83 v1.31.0 php-composer
symfony/polyfill-php83 v1.32.0 php-composer
symfony/polyfill-php84 v1.32.0 php-composer
symfony/polyfill-uuid v1.29.0 php-composer
symfony/process v6.4.15 php-composer
symfony/routing v6.4.12 php-composer
symfony/service-contracts v3.5.1 php-composer
symfony/string v6.4.15 php-composer
symfony/translation v6.4.4 php-composer
symfony/translation-contracts v3.4.2 php-composer
symfony/uid v6.4.3 php-composer
syn 2.0.48 rust-crate
talloc 2.4.2-r1 apk
tap 1.0.1 rust-crate
tdb-libs 1.4.12-r0 apk
teams 32.0.0 npm
terminal_size 0.3.0 rust-crate
tevent 0.16.1-r0 apk
text 6.0.0 npm
thiserror 1.0.56 rust-crate
thiserror-impl 1.0.56 rust-crate
tinyvec 1.9.0 rust-crate
twofactor_totp 14.0.0 npm
tzdata 2025c-r0 apk
unicode-ident 1.0.12 rust-crate
unicode-width 0.1.11 rust-crate
utf8parse 0.2.1 rust-crate
utmps-libs 0.1.3.1-r0 apk
v4l-utils-libs 1.28.1-r1 apk
v_frame 0.3.7 rust-crate
vidstab 1.1.1-r0 apk
viewer 5.0.0-dev.0 npm
vulkan-loader 1.4.313.0-r0 apk
wamania/php-stemmer v4.0.0 php-composer
wapmorgan/mp3info 0.1.1 php-composer
wayland-libs-client 1.23.1-r3 apk
web-auth/cose-lib 4.3.0 php-composer
web-auth/webauthn-lib 4.9.1 php-composer
wyz 0.5.1 rust-crate
x264-libs 0.164.3108-r0 apk
x265-libs 3.6-r0 apk
xvidcore 1.3.7-r2 apk
xz-libs 5.8.1-r0 apk
y4m 0.8.0 rust-crate
zimg 3.0.5-r3 apk
zix-libs 0.6.2-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk

View File

@ -9,48 +9,35 @@ project_blurb: |
Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb_optional_extras_enabled: false
# supported architectures # supported architectures
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version # development version
development_versions: false development_versions: true
development_versions_items: development_versions_items:
- { tag: "latest", desc: "Stable Nextcloud releases" } - {tag: "latest", desc: "Stable Nextcloud releases"}
- {tag: "develop", desc: "Beta Nextcloud pre-releases *only*"}
- {tag: "previous", desc: "Nextcloud releases from the previous major version"}
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_net: false
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata", desc: "Nextcloud configs." } - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
- { vol_path: "/data", vol_host_path: "/path/to/data", desc: "Your personal data." } - {vol_path: "/data", vol_host_path: "/path/to/data", desc: "Your personal data."}
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "443", internal_port: "443", port_desc: "WebUI" } - {external_port: "443", internal_port: "443", port_desc: "WebUI"}
param_device_map: false readonly_supported: false
cap_add_param: false nonroot_supported: false
# optional container parameters
opt_param_usage_include_env: false
opt_param_usage_include_vols: false
opt_param_usage_include_ports: false
opt_param_device_map: false
opt_cap_add_param: false
optional_block_1: false
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud]({{ project_url }}). Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud]({{ project_url }}).
Note: `occ` should be run without prepending with `sudo -u abc php` or `sudo -u www-data php` ie; `docker exec -it nextcloud occ maintenance:mode --off`
### Updating Nextcloud ### Updating Nextcloud
Updating Nextcloud is done by pulling the new image, and recreating the container with it. Updating Nextcloud is done by pulling the new image, and recreating the container with it.
@ -65,6 +52,34 @@ app_setup_block: |
If (auto) installed, those built-in packages may cause instability and should be removed. If (auto) installed, those built-in packages may cause instability and should be removed.
### HEIC Image Previews
In order to enable HEIC image preview generation you will need to add the following to your `config.php` file in your `config/www/nextcloud/config' directory;
```
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\BMP',
'OC\Preview\XBitmap',
'OC\Preview\MP3',
'OC\Preview\TXT',
'OC\Preview\MarkDown',
'OC\Preview\OpenDocument',
'OC\Preview\Krita',
'OC\Preview\HEIC',
),
```
You may need to log out and back in for the changes to come in to effect.
This fix was sourced from [Nextcloud Documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#enabledpreviewproviders)
Nextcloud state that HEIC preview is disabled by default due to performance or privacy concerns, so enable this at your own risk.
### Custom App Directories ### Custom App Directories
If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex: If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex:
@ -75,54 +90,121 @@ app_setup_block: |
``` ```
Afterwards, you can set `"path" => OC::$SERVERROOT . "/your_custom_apps_folder",` in your `config.php` file, per the [official documentation](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories). Afterwards, you can set `"path" => OC::$SERVERROOT . "/your_custom_apps_folder",` in your `config.php` file, per the [official documentation](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories).
# init diagram
init_diagram: |
"nextcloud:develop": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-nginx-end -> init-config
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-nextcloud-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-nginx-end -> init-nextcloud-config
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-permissions -> init-version-checks
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-php-fpm
svc-php-fpm -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
}
"nextcloud:develop" <- Base Images
# changelog # changelog
changelogs: changelogs:
- { date: "25.06.23:", desc: "Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/)." } - {date: "10.07.25:", desc: "Rebase to Alpine 3.22."}
- { date: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings." } - {date: "12.02.25:", desc: "Rebase to Alpine 3.21."}
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." } - {date: "09.01.25:", desc: "Fix uploading large files. Existing users should update their nginx confs."}
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." } - {date: "09.07.24:", desc: "Add `previous` tag for n-1 releases."}
- { date: "21.03.23:", desc: "Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``." } - {date: "24.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- { date: "02.03.23:", desc: "Set permissions on crontabs during init." } - {date: "19.05.24:", desc: "Added util-linux package required for taskset."}
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." } - {date: "10.04.24:", desc: "Added imagemagick-pdf."}
- { date: "10.10.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." } - {date: "05.04.24:", desc: "Added imagemagick-heic. Manual update to `config.php` required - see above."}
- { date: "30.09.22:", desc: "Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html" } - {date: "02.04.24:", desc: "Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push)."}
- { date: "21.05.22:", desc: "Update version check endpoint." } - {date: "22.03.24:", desc: "Add imagemagick-svg module."}
- { date: "28.04.22:", desc: "Increase OPCache interned strings buffered setting to 16." } - {date: "06.03.24:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- { date: "14.04.22:", desc: "Nginx default site config updated for v23 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container). Fix LDAP connection." } - {date: "02.01.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- { date: "11.09.21:", desc: "Rebasing to alpine 3.14" } - {date: "22.12.23:", desc: "Site default conf updating to include mime.types for js and mjs and update location to include more file types."}
- { date: "21.03.21:", desc: "Publish `php8` tag for testing." } - {date: "28.10.23:", desc: "Disable web upgrades using occ during init."}
- { date: "25.02.21:", desc: "Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "31.08.23:", desc: "Re-add updatenotification app. This allows users to be notified for app updates, but also notifies for NextCloud updates. Updating NextCloud via the web UI is not supported when using this image."}
- { date: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup." } - {date: "14.08.23:", desc: "Add develop branch."}
- { date: "20.01.21:", desc: "Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "25.06.23:", desc: "Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/)."}
- { date: "16.01.21:", desc: "Rebasing to alpine 3.13. Users with issues on 32-bit arm, [see this article](https://docs.linuxserver.io/faq#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-3-13)." } - {date: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings."}
- { date: "12.08.20:", desc: "Various updates to default site config, including added support for webfinger (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- { date: "03.06.20:", desc: "Rebasing to alpine 3.12" } - {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."}
- { date: "03.06.20:", desc: "Add php7-bcmath and php7-fileinfo" } - {date: "21.03.23:", desc: "Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``."}
- { date: "31.05.20:", desc: "Add aliases for occ and updater.phar" } - {date: "02.03.23:", desc: "Set permissions on crontabs during init."}
- { date: "31.03.20:", desc: "Allow crontab to be user customized, fix logrotate." } - {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- { date: "17.01.20:", desc: "Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "10.10.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))."}
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." } - {date: "30.09.22:", desc: "Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html"}
- { date: "18.11.19:", desc: "Nginx default site config updated for v17 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "21.05.22:", desc: "Update version check endpoint."}
- { date: "28.10.19:", desc: "Change cronjob to run every 5 minutes." } - {date: "28.04.22:", desc: "Increase OPCache interned strings buffered setting to 16."}
- { date: "24.10.19:", desc: "Nginx default site config updated due to CVE-2019-11043 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "14.04.22:", desc: "Nginx default site config updated for v23 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container). Fix LDAP connection."}
- { date: "14.07.19:", desc: "Download nextcloud during build time." } - {date: "11.09.21:", desc: "Rebasing to alpine 3.14"}
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." } - {date: "21.03.21:", desc: "Publish `php8` tag for testing."}
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." } - {date: "25.02.21:", desc: "Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements." } - {date: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup."}
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." } - {date: "20.01.21:", desc: "Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "28.01.19:", desc: "Add pipeline logic and multi arch." } - {date: "16.01.21:", desc: "Rebasing to alpine 3.13. Users with issues on 32-bit arm, [see this article](https://docs.linuxserver.io/faq#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-3-13)."}
- { date: "25.01.19:", desc: "Add php7-phar for occ upgrades." } - {date: "12.08.20:", desc: "Various updates to default site config, including added support for webfinger (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "05.09.18:", desc: "Rebase to alpine 3.8." } - {date: "03.06.20:", desc: "Rebasing to alpine 3.12"}
- { date: "11.06.18:", desc: "Use latest rather than specific version for initial install." } - {date: "03.06.20:", desc: "Add php7-bcmath and php7-fileinfo"}
- { date: "26.04.18:", desc: "Bump default install to 13.0.1." } - {date: "31.05.20:", desc: "Add aliases for occ and updater.phar"}
- { date: "06.02.18:", desc: "Bump default install to 13.0.0." } - {date: "31.03.20:", desc: "Allow crontab to be user customized, fix logrotate."}
- { date: "26.01.18:", desc: "Rebase to alpine 3.7, bump default install to 12.0.5." } - {date: "17.01.20:", desc: "Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "12.12.17:", desc: "Bump default install to 12.0.4, fix continuation lines." } - {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
- { date: "15.10.17:", desc: "Sed php.ini for opcache requirements in newer nextcloud versions." } - {date: "18.11.19:", desc: "Nginx default site config updated for v17 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "20.09.17:", desc: "Bump default install to 12.0.3." } - {date: "28.10.19:", desc: "Change cronjob to run every 5 minutes."}
- { date: "19.08.17:", desc: "Bump default install to 12.0.2." } - {date: "24.10.19:", desc: "Nginx default site config updated due to CVE-2019-11043 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "25.05.17:", desc: "Rebase to alpine 3.6." } - {date: "14.07.19:", desc: "Download nextcloud during build time."}
- { date: "22.05.17:", desc: "Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line." } - {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
- { date: "03.05.17:", desc: "Use community repo of memcache." } - {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- { date: "07.03.17:", desc: "Release into main repository and upgrade to php7 and Alpine 3.5." } - {date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements."}
- {date: "22.02.19:", desc: "Rebasing to alpine 3.9."}
- {date: "28.01.19:", desc: "Add pipeline logic and multi arch."}
- {date: "25.01.19:", desc: "Add php7-phar for occ upgrades."}
- {date: "05.09.18:", desc: "Rebase to alpine 3.8."}
- {date: "11.06.18:", desc: "Use latest rather than specific version for initial install."}
- {date: "26.04.18:", desc: "Bump default install to 13.0.1."}
- {date: "06.02.18:", desc: "Bump default install to 13.0.0."}
- {date: "26.01.18:", desc: "Rebase to alpine 3.7, bump default install to 12.0.5."}
- {date: "12.12.17:", desc: "Bump default install to 12.0.4, fix continuation lines."}
- {date: "15.10.17:", desc: "Sed php.ini for opcache requirements in newer nextcloud versions."}
- {date: "20.09.17:", desc: "Bump default install to 12.0.3."}
- {date: "19.08.17:", desc: "Bump default install to 12.0.2."}
- {date: "25.05.17:", desc: "Rebase to alpine 3.6."}
- {date: "22.05.17:", desc: "Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line."}
- {date: "03.05.17:", desc: "Use community repo of memcache."}
- {date: "07.03.17:", desc: "Release into main repository and upgrade to php7 and Alpine 3.5."}

View File

@ -1,4 +1,4 @@
## Version 2023/06/23 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample ## Version 2025/07/10 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample
# Set the `immutable` cache control options only for assets with a cache busting `v` argument # Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable { map $arg_v $asset_immutable {
@ -9,9 +9,10 @@ map $arg_v $asset_immutable {
server { server {
listen 80 default_server; listen 80 default_server;
listen [::]:80 default_server; listen [::]:80 default_server;
listen 443 ssl default_server;
listen 443 ssl http2 default_server; listen [::]:443 ssl default_server;
listen [::]:443 ssl http2 default_server; listen 443 quic reuseport default_server;
listen [::]:443 quic reuseport default_server;
server_name _; server_name _;
@ -26,7 +27,7 @@ server {
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html#nextcloud-in-the-webroot-of-nginx # https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html#nextcloud-in-the-webroot-of-nginx
# set max upload size and increase upload timeout: # set max upload size and increase upload timeout:
client_max_body_size 512M; client_max_body_size 0;
client_body_timeout 300s; client_body_timeout 300s;
fastcgi_buffers 64 4K; fastcgi_buffers 64 4K;
@ -36,25 +37,24 @@ server {
gzip_comp_level 4; gzip_comp_level 4;
gzip_min_length 256; gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; gzip_types application/atom+xml text/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Pagespeed is not supported by Nextcloud, so if your server is built # Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it. # with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off; #pagespeed off;
# The settings allows you to optimize the HTTP2 bandwitdth. # The settings allows you to optimize the HTTP2 bandwidth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/ # See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tunning hints # for tuning hints
client_body_buffer_size 512k; client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess` # HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always; add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always; add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always; add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Permitted-Cross-Domain-Policies "none" always; add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-Robots-Tag "noindex, nofollow" always; add_header X-XSS-Protection "1; mode=block" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak # Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By; fastcgi_hide_header X-Powered-By;
@ -66,7 +66,7 @@ server {
# that file is correctly served; if it doesn't, then the request is passed to # that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need # the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets, # to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus # `/updater`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri` # `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour. # always provides the desired behaviour.
index index.php index.html /index.php$request_uri; index index.php index.html /index.php$request_uri;
@ -113,7 +113,7 @@ server {
# to the URI, resulting in a HTTP 500 error response. # to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) { location ~ \.php(?:$|/) {
# Required for legacy support # Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info; set $path_info $fastcgi_path_info;
@ -134,7 +134,8 @@ server {
fastcgi_max_temp_file_size 0; fastcgi_max_temp_file_size 0;
} }
location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ { # Serve static files
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
try_files $uri /index.php$request_uri; try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463, $asset_immutable"; add_header Cache-Control "public, max-age=15778463, $asset_immutable";
access_log off; # Optional: Don't log access to assets access_log off; # Optional: Don't log access to assets
@ -142,6 +143,7 @@ server {
location ~ \.wasm$ { location ~ \.wasm$ {
default_type application/wasm; default_type application/wasm;
} }
} }
location ~ \.woff2?$ { location ~ \.woff2?$ {

View File

@ -10,7 +10,7 @@ mkdir -p \
/data /data
# migrate legacy install (copy inside container) # migrate legacy install (copy inside container)
if [ -f /config/www/nextcloud/version.php ]; then if [[ -f /config/www/nextcloud/version.php ]]; then
echo "Migrating legacy install (this can take a while) ...)" echo "Migrating legacy install (this can take a while) ...)"
rsync -rlD --remove-source-files --exclude-from=/app/upgrade.exclude /config/www/nextcloud/ /app/www/public/ rsync -rlD --remove-source-files --exclude-from=/app/upgrade.exclude /config/www/nextcloud/ /app/www/public/
rm -rf /config/www/nextcloud/updater/ rm -rf /config/www/nextcloud/updater/
@ -26,7 +26,7 @@ fi
# symlink config folders # symlink config folders
for dir in apps config themes; do for dir in apps config themes; do
if [ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]; then if [[ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]]; then
rm -rf "/app/www/public/${dir}" rm -rf "/app/www/public/${dir}"
ln -s "/config/www/nextcloud/${dir}" "/app/www/public/${dir}" ln -s "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
lsiown abc:abc "/config/www/nextcloud/${dir}" "/app/www/public/${dir}" lsiown abc:abc "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
@ -34,9 +34,9 @@ for dir in apps config themes; do
done done
# get versions # get versions
image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null) image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null | xargs)
installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null) installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null | xargs)
if [ "${installed_version}" = "" ]; then if [[ "${installed_version}" = "" ]]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
fi fi
image_major="${image_version%%.*}" image_major="${image_version%%.*}"
@ -54,23 +54,23 @@ if vergt "${installed_version}" "${image_version}"; then
sleep infinity sleep infinity
fi fi
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_major}" "${max_upgrade}"; then if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_major}" "${max_upgrade}"; then
echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first." echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first."
sleep infinity sleep infinity
fi fi
if [ "${installed_version}" = "0.0.0.0" ] || [ ! -f /app/www/public/version.php ] || [ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]; then if [[ "${installed_version}" = "0.0.0.0" ]] || [[ ! -f /app/www/public/version.php ]] || [[ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]]; then
touch /tmp/needs_install touch /tmp/needs_install
fi fi
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_version}" "${installed_version}"; then if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_version}" "${installed_version}"; then
touch /tmp/needs_upgrade touch /tmp/needs_upgrade
fi fi
# initialize nextcloud # initialize nextcloud
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_install ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_install ]] || [[ -f /tmp/needs_upgrade ]]; then
echo "Initializing nextcloud ${image_version} (this can take a while) ..." echo "Initializing nextcloud ${image_version} (this can take a while) ..."
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
echo "Upgrading nextcloud from ${installed_version} ..." echo "Upgrading nextcloud from ${installed_version} ..."
shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json) shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json)
for app in ${shippedApps}; do for app in ${shippedApps}; do
@ -80,25 +80,25 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal
rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/ rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/
for dir in apps config themes; do for dir in apps config themes; do
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ] || [ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]] || [[ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]]; then
rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/ rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/
fi fi
done done
if [ -z "$(ls -A /data/ 2>/dev/null)" ]; then if [[ -z "$(ls -A /data/ 2>/dev/null)" ]]; then
rsync -rlD --include "/data" --exclude '/*' /app/www/src/ / rsync -rlD --include "/data" --exclude '/*' /app/www/src/ /
fi fi
echo "Setting permissions" echo "Setting permissions"
lsiown abc:abc /data lsiown abc:abc /data
lsiown abc:abc -R \ lsiown -R abc:abc \
/app/www/public \ /app/www/public \
/config/www/nextcloud /config/www/nextcloud
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
# Upgrade # Upgrade
occ upgrade occ upgrade
else else
if [ "${installed_version}" = "0.0.0.0" ]; then if [[ "${installed_version}" = "0.0.0.0" ]]; then
# Install # Install
echo "New nextcloud instance" echo "New nextcloud instance"
echo "Please run the web-based installer on first connect!" echo "Please run the web-based installer on first connect!"
@ -124,7 +124,7 @@ if occ config:system:get installed >/dev/null 2>&1; then
occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu' occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu'
fi fi
if ! occ config:system:get filelocking.enabled >/dev/null 2>&1; then if ! occ config:system:get filelocking.enabled >/dev/null 2>&1; then
occ config:system:set filelocking.enabled --value=true occ config:system:set filelocking.enabled --value=true --type=boolean
fi fi
if ! occ config:system:get memcache.locking >/dev/null 2>&1; then if ! occ config:system:get memcache.locking >/dev/null 2>&1; then
occ config:system:set memcache.locking --value='\\OC\\Memcache\\APCu' occ config:system:set memcache.locking --value='\\OC\\Memcache\\APCu'
@ -132,6 +132,9 @@ if occ config:system:get installed >/dev/null 2>&1; then
if ! occ config:system:get datadirectory >/dev/null 2>&1; then if ! occ config:system:get datadirectory >/dev/null 2>&1; then
occ config:system:set datadirectory --value='/data' occ config:system:set datadirectory --value='/data'
fi fi
if ! occ config:system:get upgrade.disable-web >/dev/null 2>&1; then
occ config:system:set upgrade.disable-web --value=true --type=boolean
fi
else else
echo "After completing the web-based installer, restart the Nextcloud container to apply default memory caching and transactional file locking configurations." echo "After completing the web-based installer, restart the Nextcloud container to apply default memory caching and transactional file locking configurations."
echo "Alternatively, you can apply your own configurations by editing /config/www/nextcloud/config/config.php following the documentation:" echo "Alternatively, you can apply your own configurations by editing /config/www/nextcloud/config/config.php following the documentation:"
@ -139,15 +142,35 @@ else
echo "https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html" echo "https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html"
fi fi
if (occ app:list --no-interaction | grep -q richdocumentscode) 2>/dev/null; then # remove problematic apps
echo "Removing CODE Server" for APP in richdocumentscode; do
APP=$(occ app:list --no-interaction | grep richdocumentscode | awk -F ' ' '{print $2}' | tr -d ':') if (occ app:list | grep -q " - ${APP}:") 2>/dev/null; then
occ app:remove --no-interaction "${APP}" 2>/dev/null echo "Removing ${APP}"
fi fi
APP_PATH=$(occ app:getpath "${APP}" 2>/dev/null)
if [[ -z "${APP_PATH}" ]] || [[ ! -d "${APP_PATH}" ]]; then
APP_PATH="/app/www/public/apps/${APP}"
fi
if [[ -d "${APP_PATH}" ]]; then
occ app:disable "${APP}" >/dev/null 2>&1
fi
APP_STATUS="$(occ config:app:get "${APP}" enabled 2>/dev/null)"
if [[ "${APP_STATUS}" != "no" ]] && [[ -n "${APP_STATUS}" ]]; then
occ config:app:set "${APP}" enabled --value="no" >/dev/null 2>&1
fi
occ app:remove "${APP}" >/dev/null 2>&1
rm -rf "${APP_PATH}"
done
# set data directory # set data directory
if [ ! -s /config/www/nextcloud/config/config.php ]; then if [[ ! -s /config/www/nextcloud/config/config.php ]]; then
echo -e "<?php\n\$CONFIG = array (\n 'datadirectory' => '/data',\n);" >/config/www/nextcloud/config/config.php echo -e "<?php\n\$CONFIG = array (\n 'datadirectory' => '/data',\n);" >/config/www/nextcloud/config/config.php
elif [ -f /config/www/nextcloud/config/config.php ]; then elif [[ -f /config/www/nextcloud/config/config.php ]]; then
sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php
fi fi
#modify javascript mime type and add .mjs support
if [[ -s /etc/nginx/mime.types ]]; then
sed -i 's|\bjs;|js mjs;|g' /etc/nginx/mime.types
sed -i 's|\bapplication/javascript|text/javascript|g' /etc/nginx/mime.types
fi

2
root/migrations/02-default-location Normal file → Executable file
View File

@ -5,7 +5,7 @@ DEFAULT_CONF="/config/nginx/site-confs/default.conf"
OLD_ROOT="root /config/www/nextcloud/;" OLD_ROOT="root /config/www/nextcloud/;"
NEW_ROOT="root /app/www/public;" NEW_ROOT="root /app/www/public;"
if grep -q "${OLD_ROOT}" "${DEFAULT_CONF}"; then if [[ -f "${DEFAULT_CONF}" ]] && grep -q "${OLD_ROOT}" "${DEFAULT_CONF}" 2>/dev/null; then
echo "updating root in ${DEFAULT_CONF}" echo "updating root in ${DEFAULT_CONF}"
sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}" sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}"
fi fi