Compare commits

...

360 Commits

Author SHA1 Message Date
LinuxServer-CI f537f6f127 Bot Updating Package Versions 2023-05-25 19:33:32 +00:00
LinuxServer-CI 3d3039dd60 Bot Updating Package Versions 2023-05-23 11:52:44 +00:00
LinuxServer-CI c4de665eff Bot Updating Templated Files 2023-05-23 11:48:56 +00:00
LinuxServer-CI b6f1034488 Bot Updating Package Versions 2023-05-16 11:49:48 +00:00
LinuxServer-CI 74805eac37 Bot Updating Package Versions 2023-05-09 12:48:46 +00:00
LinuxServer-CI a90a7743ce Bot Updating Package Versions 2023-05-02 11:49:03 +00:00
aptalca bce2ec1945 Merge pull request #308 from linuxserver/version-trigger
update version command
2023-04-26 14:51:21 -04:00
aptalca 4c04b3eb32 update version command 2023-04-25 15:21:02 -04:00
LinuxServer-CI a2a6a75f29 Bot Updating Package Versions 2023-04-25 11:48:57 +00:00
Eric Nemchik ddd081b78e Merge pull request #305 from linuxserver/move-ssl-include
Move ssl.conf include to default.conf
2023-04-17 11:06:19 -05:00
LinuxServer-CI 677dc7a242 Bot Updating Package Versions 2023-04-17 10:57:43 -05:00
Eric Nemchik 1b02609aca Merge pull request #306 from linuxserver/community-php81-pecl-smbclient
Install php81-pecl-smbclient from community
2023-04-17 10:53:51 -05:00
Eric Nemchik 535e2f5549 Install php81-pecl-smbclient from community
https://gitlab.alpinelinux.org/alpine/aports/-/commit/512d38d0d2b78cbe51e0a3cd983bdc476f4f91f7
2023-04-17 15:31:39 +00:00
Eric Nemchik 7ea5b546e0 Move ssl.conf include to default.conf 2023-04-13 11:05:57 -05:00
LinuxServer-CI c04a8ca435 Bot Updating Package Versions 2023-04-11 06:50:49 -05:00
LinuxServer-CI a16ccdffd6 Bot Updating Package Versions 2023-04-04 13:51:00 +02:00
LinuxServer-CI 85c15c7233 Bot Updating Package Versions 2023-04-02 17:30:14 +02:00
LinuxServer-CI d767519846 Bot Updating Templated Files 2023-04-02 10:26:38 -05:00
LinuxServer-CI 6dd0ddf228 Bot Updating Templated Files 2023-04-02 17:25:05 +02:00
LinuxServer-CI 7fac7c2f9b Bot Updating Templated Files 2023-04-02 10:23:24 -05:00
LinuxServer-CI e0f05f8ff7 Bot Updating Package Versions 2023-03-26 10:26:05 -05:00
aptalca c1568bac54 Merge pull request #302 from linuxserver/default-date
Update default.conf.sample
2023-03-21 19:47:41 -04:00
Eric Nemchik 5204bed595 Update default.conf.sample
Re: https://github.com/linuxserver/docker-nextcloud/pull/299
Missed date change
2023-03-21 18:19:01 -05:00
LinuxServer-CI ff645ae6ac Bot Updating Package Versions 2023-03-21 16:36:05 -05:00
LinuxServer-CI 136bf09d01 Bot Updating Templated Files 2023-03-21 22:32:38 +01:00
Adam adac09ee94 Merge pull request #300 from linuxserver/php-sysvsem 2023-03-21 21:31:16 +00:00
TheSpad d0fb2037a3 Update changelog 2023-03-21 20:36:49 +00:00
Adam a050585f50 Merge pull request #299 from stavros-k/patch-1 2023-03-21 20:35:52 +00:00
TheSpad 6898fc5624 Add php81-sysvsem 2023-03-21 20:19:27 +00:00
Stavros Kois 278258c6e6 Change the default header of X-Robots-Tag to "noindex, nofollow" 2023-03-21 20:47:14 +02:00
LinuxServer-CI 26a423f0fe Bot Updating Package Versions 2023-03-21 10:14:43 -05:00
Eric Nemchik 92abc99a6a Merge pull request #291 from linuxserver/crontab-perms
Format cron init and set permissions
2023-03-15 13:15:50 -05:00
LinuxServer-CI d53c755031 Bot Updating Package Versions 2023-03-12 16:27:27 +01:00
Eric Nemchik dea003a225 Merge pull request #294 from linuxserver/fix-richdocs
Get specific app name when removing richdocumentscode
2023-03-08 08:24:56 -06:00
TheSpad 04888dd430 Get specific app name when removing richdocumentscode 2023-03-05 22:13:29 +00:00
LinuxServer-CI ef63add4ab Bot Updating Package Versions 2023-03-05 16:30:24 +01:00
LinuxServer-CI 158ec344d3 Bot Updating Templated Files 2023-03-05 09:26:59 -06:00
Eric Nemchik 44ba90ed86 Fix date 2023-03-02 18:52:37 -06:00
Eric Nemchik 339a3bdc69 Update readme 2023-03-02 18:29:42 -06:00
Eric Nemchik ec980363d5 Format cron init and set permissions 2023-03-02 13:42:55 -06:00
LinuxServer-CI 18e1a75102 Bot Updating Package Versions 2023-02-26 16:28:32 +01:00
LinuxServer-CI 8ecf900212 Bot Updating Package Versions 2023-02-23 18:15:56 +01:00
LinuxServer-CI 7887c27450 Bot Updating Package Versions 2023-02-22 15:13:49 +01:00
Eric Nemchik 5375c24558 Merge pull request #282 from linuxserver/3.17
Rebase to alpine 3.17 with php8.1
2023-02-22 08:08:49 -06:00
LinuxServer-CI d38ad6aac3 Bot Updating Package Versions 2023-02-19 09:28:17 -06:00
Eric Nemchik 4459133f98 Make aliases in /root 2023-02-17 08:22:51 -06:00
Eric Nemchik 77ebd7dbc4 Update with jenkins builder 2023-02-17 08:13:33 -06:00
Eric Nemchik bf21d1f389 Remove redundant perms 2023-02-13 14:09:12 +00:00
Eric Nemchik 81c33ed619 Hide dev versions (no longer used) 2023-02-13 14:09:12 +00:00
Eric Nemchik a92ad43ca6 Install php81-pecl-mcrypt from edge 2023-02-13 14:09:12 +00:00
Eric Nemchik b075adb87d Rebase to alpine 3.17 with php8.1 2023-02-13 14:09:12 +00:00
LinuxServer-CI 8ada419f48 Bot Updating Package Versions 2023-02-12 09:31:14 -06:00
LinuxServer-CI 684dc8ca05 Bot Updating Templated Files 2023-02-12 09:27:56 -06:00
LinuxServer-CI 8668565749 Bot Updating Templated Files 2023-02-12 09:26:33 -06:00
LinuxServer-CI 8c282c0859 Bot Updating Package Versions 2023-02-05 16:27:18 +01:00
LinuxServer-CI b1851c3af0 Bot Updating Package Versions 2023-01-29 09:26:53 -06:00
LinuxServer-CI 3c326e02c1 Bot Updating Package Versions 2023-01-22 16:26:58 +01:00
Eric Nemchik 8c36f67e53 Merge pull request #281 from linuxserver/adjust-cron
Remove cron service (not needed)
2023-01-14 22:26:45 -06:00
Eric Nemchik ae524541d6 Remove cron service (not needed)
Adjust cron init
Format shell scripts
2023-01-13 18:27:31 -06:00
LinuxServer-CI d5dad08344 Bot Updating Package Versions 2023-01-08 16:27:49 +01:00
LinuxServer-CI 8eb085b88f Bot Updating Package Versions 2022-12-25 16:27:13 +01:00
LinuxServer-CI 62db97dd64 Bot Updating Package Versions 2022-12-18 09:26:59 -06:00
LinuxServer-CI 90d2da1cd5 Bot Updating Package Versions 2022-12-08 10:21:23 -06:00
LinuxServer-CI be93bbf746 Bot Updating Templated Files 2022-12-04 09:29:54 -06:00
LinuxServer-CI 8104070ebf Bot Updating Templated Files 2022-12-04 09:28:32 -06:00
LinuxServer-CI 6b52102ca3 Bot Updating Templated Files 2022-12-04 09:27:08 -06:00
LinuxServer-CI 11660059f6 Bot Updating Package Versions 2022-11-13 09:36:47 -06:00
LinuxServer-CI a784a1433f Bot Updating Templated Files 2022-11-13 16:32:48 +01:00
LinuxServer-CI 6aab6d3975 Bot Updating Package Versions 2022-11-06 16:34:57 +01:00
LinuxServer-CI a65b8ecf58 Bot Updating Package Versions 2022-11-03 13:36:37 +01:00
LinuxServer-CI d7f7064318 Bot Updating Package Versions 2022-10-27 16:06:15 +02:00
Eric Nemchik 7cc89b09a1 Merge pull request #270 from wmutschl/readme
Replaced site-confs/default with site-confs/default.conf in README
2022-10-27 09:02:20 -05:00
Willi Mutschler 0a6ac686f4 Replaced site-confs/default with site-confs/default.conf in README 2022-10-27 12:59:28 +02:00
LinuxServer-CI 60da778f2f Bot Updating Package Versions 2022-10-23 17:40:31 +02:00
LinuxServer-CI 76d7721a25 Bot Updating Package Versions 2022-10-19 16:00:46 +02:00
Eric Nemchik a348335524 Merge pull request #219 from linuxserver/standard-base
Standard base
2022-10-19 08:54:42 -05:00
LinuxServer-CI 6a2aa4a1ca Bot Updating Package Versions 2022-10-16 10:40:00 -05:00
Eric Nemchik 8852458508 Merge remote-tracking branch 'origin/master' into standard-base 2022-10-10 15:11:19 +00:00
Eric Nemchik 1d9f7e6817 Update Jenkinsfile 2022-10-10 14:26:55 +00:00
LinuxServer-CI 191cce310c Bot Updating Package Versions 2022-10-09 17:40:28 +02:00
Eric Nemchik 2cde886c70 Add default_server 2022-10-04 16:17:15 -05:00
LinuxServer-CI edf745db10 Bot Updating Templated Files 2022-09-30 14:54:06 -05:00
Matt Langlois 316986d000 Disable PHP output buffering as per Nextcloud Docs (#224)
* Disable output buffering

* Replicate changes to other docker files

* Add changelog entry

* Address feedback
2022-09-30 15:52:34 -04:00
LinuxServer-CI 31cb8e4935 Bot Updating Package Versions 2022-09-25 10:38:18 -05:00
LinuxServer-CI bde6fc9f63 Bot Updating Package Versions 2022-09-18 10:43:05 -05:00
LinuxServer-CI 1e16325149 Bot Updating Templated Files 2022-09-18 10:36:07 -05:00
Eric Nemchik b45a89f1d5 Resolve merge conflilct 2022-09-09 21:31:12 -05:00
Eric Nemchik c4d302097e Call php without number 2022-09-09 21:25:21 -05:00
Eric Nemchik c30ba44888 Add missing php extensions 2022-09-09 21:09:39 -05:00
Eric Nemchik 109cc8409d Update user cron to use php8 2022-09-09 20:15:17 -05:00
LinuxServer-CI 4a707ce577 Bot Updating Package Versions 2022-09-04 10:34:31 -05:00
LinuxServer-CI 7c003a6cd7 Bot Updating Package Versions 2022-08-28 10:34:30 -05:00
Eric Nemchik 262bba1a75 Keep /config volume consistently 2022-08-21 17:05:18 -05:00
Eric Nemchik 8793ee0b5a Remove forced https 2022-08-21 16:44:01 -05:00
Eric Nemchik 0ebfea4317 Update default.conf using nextcloud docs
and allow http
2022-08-21 16:26:38 -05:00
Eric Nemchik d9ffd8bd74 Merge branch 'master' into standard-base 2022-08-21 16:08:04 -05:00
LinuxServer-CI 9bced87980 Bot Updating Package Versions 2022-08-21 17:34:05 +02:00
Eric Nemchik bb7a68f1fd Use standard nginx.conf from lsio alpine nginx base image 2022-08-15 19:29:08 -05:00
LinuxServer-CI f36f7620f6 Bot Updating Package Versions 2022-08-12 11:19:52 +02:00
LinuxServer-CI 6aa36926aa Bot Updating Package Versions 2022-08-06 14:15:10 -05:00
LinuxServer-CI 5efadeabda Bot Updating Package Versions 2022-07-31 17:33:32 +02:00
LinuxServer-CI 3099d97fcd Bot Updating Package Versions 2022-07-24 17:34:48 +02:00
LinuxServer-CI c802a0529c Bot Updating Package Versions 2022-07-17 10:33:28 -05:00
LinuxServer-CI bd5ece92bb Bot Updating Package Versions 2022-07-10 10:33:25 -05:00
LinuxServer-CI 0eabcf2e01 Bot Updating Package Versions 2022-07-03 17:33:57 +02:00
LinuxServer-CI 92ce9a1b61 Bot Updating Package Versions 2022-06-26 17:33:13 +02:00
LinuxServer-CI aa0443a52d Bot Updating Package Versions 2022-06-19 10:32:24 -05:00
LinuxServer-CI 2b2dcfcaa0 Bot Updating Package Versions 2022-06-12 17:32:20 +02:00
LinuxServer-CI a02bfd9900 Bot Updating Package Versions 2022-06-05 17:32:27 +02:00
LinuxServer-CI 1dee2cc1a1 Bot Updating Package Versions 2022-05-29 17:35:28 +02:00
LinuxServer-CI ea758c2cf4 Bot Updating Package Versions 2022-05-21 15:06:12 -05:00
aptalca debcde540d Merge pull request #249 from linuxserver/versioncheck
update version check endpoint
2022-05-21 16:02:29 -04:00
aptalca 8fa1abb2e6 update version check endpoint 2022-05-21 15:34:13 -04:00
LinuxServer-CI cf3f2fc783 Bot Updating Package Versions 2022-05-15 17:34:30 +02:00
LinuxServer-CI 82bc31c2cf Bot Updating Package Versions 2022-05-08 10:38:58 -05:00
LinuxServer-CI a915a30be5 Bot Updating Templated Files 2022-05-08 10:33:20 -05:00
LinuxServer-CI 4ae093840a Bot Updating Package Versions 2022-05-01 17:38:13 +02:00
LinuxServer-CI 54b06e5991 Bot Updating Templated Files 2022-05-01 17:34:49 +02:00
LinuxServer-CI 11f7683286 Bot Updating Templated Files 2022-05-01 17:33:36 +02:00
LinuxServer-CI 18ea0bd827 Bot Updating Package Versions 2022-04-28 17:20:47 +02:00
LinuxServer-CI 679b5004fa Bot Updating Templated Files 2022-04-28 17:15:10 +02:00
aptalca ef6f834fe7 Merge pull request #243 from axelsimon/patch-1
Dockerfile: Raise opcache interned strings buffer to 16
2022-04-28 11:13:56 -04:00
aptalca ea80d1638a increase opcache buffer on other arches 2022-04-28 10:50:54 -04:00
aptalca dbf0bd26aa Merge branch 'master' into patch-1 2022-04-28 10:49:55 -04:00
LinuxServer-CI 89f927edea Bot Updating Package Versions 2022-04-14 15:44:37 +02:00
LinuxServer-CI 5400dc4108 Bot Updating Templated Files 2022-04-14 15:38:45 +02:00
aptalca 73cf6c6607 Merge pull request #244 from NobleKangaroo/fix-legacy-support
Fix LDAP module (legacy AJAX endpoints)
2022-04-14 09:37:35 -04:00
aptalca 7b436bd63e migrate other changes to upstream nginx config, update readme 2022-04-14 09:11:56 -04:00
NobleKangaroo 5936b997bd Fix legacy support 2022-04-13 14:48:08 -04:00
axel simon bdcc10185a Update readme-vars.yml 2022-04-13 11:55:31 +01:00
axel simon 6742414db2 Dockerfile: Raise opcache interned strings buffer to 16
In line with https://github.com/nextcloud/docker/pull/1702/ and to avoid the error message:
> The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.
2022-04-12 17:14:34 +01:00
LinuxServer-CI afc7a69ccc Bot Updating Package Versions 2022-04-10 10:32:57 -05:00
LinuxServer-CI 51130ae35b Bot Updating Package Versions 2022-04-03 17:32:34 +02:00
LinuxServer-CI bb882bd50b Bot Updating Package Versions 2022-03-27 10:31:57 -05:00
LinuxServer-CI 3e35d88fd6 Bot Updating Package Versions 2022-03-17 12:20:38 -05:00
Adam 56abe2cd58 Merge pull request #238 from linuxserver/fix-git 2022-03-17 17:14:37 +00:00
TheSpad 6b36af2031 Change smbclient clone from git:// to https:// to allow unauthenticated use. 2022-03-17 09:28:11 +00:00
LinuxServer-CI 3990147f5b Bot Updating Package Versions 2022-03-13 10:31:50 -05:00
LinuxServer-CI a20f38eb65 Bot Updating Package Versions 2022-02-27 16:31:49 +01:00
LinuxServer-CI f89d6f1a36 Bot Updating Package Versions 2022-02-20 16:31:23 +01:00
LinuxServer-CI 147a592096 Bot Updating Package Versions 2022-02-13 16:30:55 +01:00
LinuxServer-CI 20fc55b58a Bot Updating Package Versions 2022-02-06 16:29:45 +01:00
LinuxServer-CI 22853dc33a Bot Updating Package Versions 2022-01-23 16:32:07 +01:00
LinuxServer-CI 25bcb88e45 Bot Updating Package Versions 2021-12-26 16:33:06 +01:00
LinuxServer-CI bce77bb0d2 Bot Updating Templated Files 2021-12-19 16:34:00 +01:00
LinuxServer-CI 3c969b8b4c Bot Updating Templated Files 2021-12-19 16:32:38 +01:00
LinuxServer-CI 4e77243bf6 Bot Updating Package Versions 2021-12-12 16:33:34 +01:00
LinuxServer-CI 38fe5a4698 Bot Updating Package Versions 2021-12-05 16:33:07 +01:00
LinuxServer-CI 8f8f266e0f Bot Updating Package Versions 2021-11-28 16:32:48 +01:00
LinuxServer-CI b151ea151c Bot Updating Package Versions 2021-11-21 16:32:29 +01:00
LinuxServer-CI 48c4923c70 Bot Updating Package Versions 2021-11-14 16:33:46 +01:00
LinuxServer-CI 3d557ebb6b Bot Updating Package Versions 2021-11-12 15:16:15 +01:00
LinuxServer-CI 35dd239ca5 Bot Updating Package Versions 2021-11-11 10:16:34 +01:00
LinuxServer-CI 49210fecd0 Bot Updating Package Versions 2021-10-31 16:35:33 +01:00
LinuxServer-CI 4e1cb009be Bot Updating Package Versions 2021-10-24 17:32:18 +02:00
LinuxServer-CI 26485c4306 Bot Updating Package Versions 2021-10-17 17:32:07 +02:00
LinuxServer-CI 4e1e1caf7e Bot Updating Package Versions 2021-10-10 17:31:48 +02:00
LinuxServer-CI 391e2e0559 Bot Updating Templated Files 2021-10-03 17:32:12 +02:00
LinuxServer-CI c82f9cd39b Bot Updating Templated Files 2021-10-03 17:31:03 +02:00
LinuxServer-CI 3d9c0e4a7f Bot Updating Package Versions 2021-09-30 11:18:47 +02:00
LinuxServer-CI e3f6a873da Bot Updating Package Versions 2021-09-26 17:32:24 +02:00
LinuxServer-CI 34609e84a6 Bot Updating Package Versions 2021-09-20 20:19:45 +02:00
LinuxServer-CI d9b72c9f90 Bot Updating Templated Files 2021-09-20 20:12:15 +02:00
aptalca e0c6e54f2c Merge pull request #213 from j0nnymoe/master
Rebasing to 3.14
2021-09-20 14:10:54 -04:00
LinuxServer-CI 88c3e69385 Bot Updating Package Versions 2021-09-19 17:32:12 +02:00
LinuxServer-CI 5548c6fd48 Bot Updating Package Versions 2021-09-12 17:32:22 +02:00
j0nnymoe 1f36a8dd2a Update readme-vars.yml
Adding rebase changelog
2021-09-11 07:45:06 +01:00
j0nnymoe 301a5ba627 Update Dockerfile.armhf
Rebasing to 3.14
2021-09-11 07:44:20 +01:00
j0nnymoe 9bab41e4d9 Update Dockerfile.aarch64
Rebasing to 3.14
2021-09-11 07:43:53 +01:00
j0nnymoe 272901812d Update Dockerfile
Rebasing to 3.14
2021-09-11 07:43:17 +01:00
LinuxServer-CI 497d029139 Bot Updating Package Versions 2021-08-29 17:35:20 +02:00
LinuxServer-CI 1891dacbae Bot Updating Templated Files 2021-08-29 17:31:29 +02:00
LinuxServer-CI 8174ceb4b6 Bot Updating Package Versions 2021-08-22 17:37:49 +02:00
LinuxServer-CI 99c1f4f240 Bot Updating Package Versions 2021-08-15 17:35:31 +02:00
LinuxServer-CI 2ad1a9dbf2 Bot Updating Package Versions 2021-08-05 15:25:19 +02:00
LinuxServer-CI 2561c003ed Bot Updating Package Versions 2021-07-25 17:37:51 +02:00
LinuxServer-CI fecea9d042 Bot Updating Package Versions 2021-07-18 17:38:00 +02:00
LinuxServer-CI 9b4d2e9aaa Bot Updating Package Versions 2021-07-11 15:40:54 +00:00
LinuxServer-CI 058c439f18 Bot Updating Templated Files 2021-07-04 15:36:58 +00:00
LinuxServer-CI 9cc4d01dde Bot Updating Templated Files 2021-07-04 15:35:30 +00:00
LinuxServer-CI 9b5fb1753d Bot Updating Package Versions 2021-07-01 16:25:47 +00:00
LinuxServer-CI 510dbcb5a3 Bot Updating Package Versions 2021-06-27 11:38:12 -04:00
LinuxServer-CI 7f1ae7acb0 Bot Updating Package Versions 2021-06-20 15:54:15 +00:00
LinuxServer-CI c3ce37dfd5 Bot Updating Package Versions 2021-06-13 11:44:26 -04:00
LinuxServer-CI c89b350d6c Bot Updating Package Versions 2021-06-06 15:58:36 +00:00
LinuxServer-CI 6dc02d4b67 Bot Updating Package Versions 2021-05-30 16:59:59 +01:00
LinuxServer-CI bfa2633922 Bot Updating Package Versions 2021-05-20 10:21:16 +01:00
LinuxServer-CI 6fa720ddeb Bot Updating Package Versions 2021-05-16 15:46:02 +00:00
LinuxServer-CI 66e26d5abf Bot Updating Package Versions 2021-05-09 15:47:11 +00:00
LinuxServer-CI 1e95588765 Bot Updating Package Versions 2021-04-25 16:54:15 +01:00
LinuxServer-CI 27c5d7cfc7 Bot Updating Package Versions 2021-04-18 15:45:44 +00:00
LinuxServer-CI 72a2fb2e77 Bot Updating Templated Files 2021-04-18 15:38:17 +00:00
LinuxServer-CI 18e6a018b0 Bot Updating Templated Files 2021-04-18 15:36:47 +00:00
LinuxServer-CI f32f889748 Bot Updating Package Versions 2021-04-09 04:26:50 -04:00
LinuxServer-CI 2ff299799d Bot Updating Package Versions 2021-04-04 15:45:53 +00:00
LinuxServer-CI d80323cbd7 Bot Updating Package Versions 2021-03-28 16:44:08 +01:00
aptalca 03a11ed3c2 Merge pull request #193 from linuxserver/readme
Update readme with php8 tag info
2021-03-21 22:38:16 -04:00
aptalca 7989e75d99 Update readme with php8 tag info 2021-03-21 21:47:17 -04:00
LinuxServer-CI 63ac413394 Bot Updating Package Versions 2021-03-21 11:44:07 -04:00
LinuxServer-CI 60ce804127 Bot Updating Package Versions 2021-03-14 15:48:50 +00:00
LinuxServer-CI 212f58793f Bot Updating Package Versions 2021-03-07 15:40:14 +00:00
LinuxServer-CI 87090fb6fa Bot Updating Package Versions 2021-02-25 19:55:40 +00:00
aptalca 3943379ccf Merge pull request #188 from linuxserver/v21
update default site config for v21
2021-02-25 14:46:34 -05:00
aptalca 868122601b update default site config for v21 2021-02-25 14:13:08 -05:00
aptalca a5008c1640 Merge pull request #184 from Tokugero/master
Making code server removal non-interactive
2021-02-22 08:00:00 -05:00
Tokugero ec4095c431 Removing debug 2021-02-21 21:17:45 -08:00
Tokugero f6fefcc0b8 Updating to remove interaction and dump error to null 2021-02-21 21:17:16 -08:00
LinuxServer-CI 71b9740252 Bot Updating Package Versions 2021-02-21 15:47:56 +00:00
LinuxServer-CI ca8405c1fb Bot Updating Package Versions 2021-02-14 15:44:31 +00:00
LinuxServer-CI c5210f2252 Bot Updating Templated Files 2021-02-14 15:35:41 +00:00
LinuxServer-CI 6e585daba1 Bot Updating Templated Files 2021-02-14 15:34:07 +00:00
LinuxServer-CI 44c75aceca Bot Updating Package Versions 2021-02-07 15:40:10 +00:00
LinuxServer-CI b60554a6b0 Bot Updating Package Versions 2021-02-02 21:18:38 +00:00
LinuxServer-CI 7978ce4cb1 Bot Updating Package Versions 2021-01-31 15:44:02 +00:00
LinuxServer-CI 3f88c9e6b5 Bot Updating Package Versions 2021-01-26 13:30:17 -05:00
LinuxServer-CI 5003f56da8 Bot Updating Package Versions 2021-01-24 10:58:36 -05:00
LinuxServer-CI bdab6bc866 Bot Updating Package Versions 2021-01-21 15:31:34 -05:00
aptalca ba13746ba3 Merge pull request #177 from linuxserver/iconv
Fix iconv, remove broken CODE server
2021-01-21 15:21:44 -05:00
aptalca 4341156c29 attempt to remove CODE server 2021-01-21 14:32:03 -05:00
aptalca 222690e62c fix iconv 2021-01-21 12:57:42 -05:00
LinuxServer-CI aab8152f0b Bot Updating Package Versions 2021-01-20 18:07:41 -05:00
aptalca 8d2ceff238 Merge pull request #176 from linuxserver/fcgi
increase fcgi timeout, add blurb re: built in code
2021-01-20 18:00:51 -05:00
aptalca 60106fa00f add link to docs re: libseccomp 2021-01-20 17:17:03 -05:00
aptalca 2743eaf63d increase fcgi timeout, add blurb re: built in code 2021-01-20 17:11:03 -05:00
LinuxServer-CI 2a338d4a32 Bot Updating Package Versions 2021-01-16 19:34:07 +00:00
aptalca e651276550 Merge pull request #173 from linuxserver/3.13
Rebase to alpine 3.13
2021-01-16 14:25:46 -05:00
aptalca 7316cecf0d Rebase to alpine 3.13 2021-01-16 13:56:53 -05:00
LinuxServer-CI 01171c8a5a Bot Updating Package Versions 2021-01-11 06:00:03 -05:00
LinuxServer-CI 5d04508b0c Bot Updating Package Versions 2020-12-16 18:50:03 +00:00
LinuxServer-CI 74a60aeba4 Bot Updating Templated Files 2020-12-16 18:39:34 +00:00
LinuxServer-CI b2d791c50e Bot Updating Templated Files 2020-12-16 13:38:30 -05:00
LinuxServer-CI fb38629ffd Bot Updating Package Versions 2020-12-09 07:38:35 -05:00
LinuxServer-CI 7108831cbd Bot Updating Package Versions 2020-12-02 12:39:09 +00:00
LinuxServer-CI 40dbf96ed3 Bot Updating Package Versions 2020-11-25 07:40:29 -05:00
LinuxServer-CI 5b1857ea2e Bot Updating Package Versions 2020-11-11 07:40:58 -05:00
LinuxServer-CI f6fa819e9a Bot Updating Package Versions 2020-11-02 12:27:52 -05:00
LinuxServer-CI e81b6160de Bot Updating Templated Files 2020-11-02 11:26:37 -05:00
thelamer a2a5bcd84c update baseimages 2020-11-02 08:05:50 -08:00
LinuxServer-CI dac688a577 Bot Updating Package Versions 2020-10-26 11:34:17 -04:00
LinuxServer-CI 3b025a28b1 Bot Updating Package Versions 2020-10-21 11:38:26 +00:00
LinuxServer-CI 8e015a072b Bot Updating Package Versions 2020-10-14 11:37:39 +00:00
LinuxServer-CI d663b38bd4 Bot Updating Package Versions 2020-10-07 12:37:19 +00:00
LinuxServer-CI cc1bc3accf Bot Updating Package Versions 2020-10-03 06:36:30 -04:00
LinuxServer-CI 694b04be43 Bot Updating Templated Files 2020-10-03 11:30:42 +01:00
LinuxServer-CI 1296f52290 Bot Updating Templated Files 2020-10-03 11:29:34 +01:00
LinuxServer-CI bcf0bedc02 Bot Updating Package Versions 2020-09-30 12:36:55 +01:00
LinuxServer-CI 8465ef95fc Bot Updating Package Versions 2020-09-16 07:37:35 -04:00
LinuxServer-CI 4daf2f54dd Bot Updating Package Versions 2020-09-09 07:35:59 -04:00
LinuxServer-CI bf206a4c26 Bot Updating Package Versions 2020-09-02 07:36:56 -04:00
LinuxServer-CI bb7cbcfe72 Bot Updating Package Versions 2020-08-26 11:43:03 +00:00
LinuxServer-CI 202e32064d Bot Updating Templated Files 2020-08-20 18:20:28 -04:00
Eric Nemchik c3983dec02 Merge pull request #157 from MiguelNdeCarvalho/master
Nginx: Add rewrite rule for WebFinger
2020-08-20 17:19:21 -05:00
LinuxServer-CI 1adaea2f52 Bot Updating Package Versions 2020-08-19 07:36:51 -04:00
aptalca 98170c8111 various updates to default site conf 2020-08-12 10:23:05 -04:00
MiguelNdeCarvalho 07de53ca04 Nginx: Add rewrite rule for WebFinger 2020-08-12 13:18:28 +01:00
LinuxServer-CI 01507c3b7d Bot Updating Package Versions 2020-08-12 07:37:17 -04:00
LinuxServer-CI 77bab20e9d Bot Updating Package Versions 2020-08-05 11:38:52 +00:00
LinuxServer-CI 9c2d8f63dc Bot Updating Templated Files 2020-08-05 13:33:43 +02:00
LinuxServer-CI 7cd1ec4148 Bot Updating Templated Files 2020-08-05 11:32:51 +00:00
LinuxServer-CI af5c1e1fd1 Bot Updating Package Versions 2020-07-16 15:33:31 -04:00
LinuxServer-CI 9e640c2446 Bot Updating Package Versions 2020-07-15 11:44:26 +00:00
LinuxServer-CI 2a8328ae40 Bot Updating Package Versions 2020-07-08 13:37:09 +02:00
LinuxServer-CI 99d9fc85b4 Bot Updating Package Versions 2020-06-26 11:53:55 +00:00
j0nnymoe 317756d873 Merge pull request #155 from linuxserver/updater.phar
Fix updater.phar
2020-06-26 12:43:59 +01:00
chbmb 171c14cc43 Fix updater.phar 2020-06-25 21:55:15 +01:00
LinuxServer-CI 1a81e84750 Bot Updating Package Versions 2020-06-24 11:37:01 +00:00
LinuxServer-CI d256ac620b Bot Updating Package Versions 2020-06-17 13:36:41 +02:00
LinuxServer-CI a092bb7f65 Bot Updating Package Versions 2020-06-10 07:37:01 -04:00
chbmb 25f011ff6d Merge pull request #150 from linuxserver/occ
Fix occ alias
2020-06-03 19:16:06 +01:00
chbmb 0d9395c2f9 Pass command switches correctly. 2020-06-03 18:19:58 +01:00
chbmb 4898350304 Fix occ alias 2020-06-03 16:57:13 +01:00
LinuxServer-CI f083694bba Bot Updating Package Versions 2020-06-03 14:53:13 +00:00
LinuxServer-CI 70ebff1fe9 Bot Updating Package Versions 2020-06-03 16:46:02 +02:00
LinuxServer-CI 20d71208f4 Bot Updating Templated Files 2020-06-03 14:41:29 +00:00
chbmb 3e90fa1dcf Merge pull request #147 from linuxserver/master-3.12
Rebasing to Alpine 3.12
2020-06-03 15:40:14 +01:00
chbmb db1ac46d19 Merge branch 'master' into master-3.12 2020-06-03 15:03:15 +01:00
LinuxServer-CI 975196656e Bot Updating Package Versions 2020-06-03 13:22:45 +00:00
LinuxServer-CI 30303f4e15 Bot Updating Templated Files 2020-06-03 13:17:40 +00:00
chbmb 50307befe0 Merge pull request #149 from linuxserver/php-mods
Add php7-bcmath & php7-fileinfo
2020-06-03 14:16:16 +01:00
chbmb 3bc14e5333 Add php7-bcmath & php7-fileinfo
Required for NC19
2020-06-03 13:55:04 +01:00
thelamer 83e49cad23 Rebasing to Alpine 3.12 2020-06-01 13:13:00 -07:00
LinuxServer-CI 54cc5c1bc3 Bot Updating Package Versions 2020-05-31 01:21:49 +00:00
LinuxServer-CI 37ff294391 Bot Updating Templated Files 2020-05-31 02:28:55 +02:00
chbmb 394134dd14 Merge pull request #146 from linuxserver/occ/update.phar
occ & updater.phar
2020-05-31 01:28:00 +01:00
chbmb 97b4894d3c Update changelog and instructions 2020-05-31 00:20:42 +01:00
chbmb 4cacb750b8 occ & updater.phar
Create aliases in /usr/bin to enable easier use of both common commands
2020-05-30 23:05:13 +01:00
LinuxServer-CI 0987871498 Bot Updating Package Versions 2020-05-27 11:42:32 +00:00
LinuxServer-CI c4fda7d279 Bot Updating Package Versions 2020-05-20 11:44:28 +00:00
LinuxServer-CI 4dad41f325 Bot Updating Package Versions 2020-05-13 07:44:16 -04:00
LinuxServer-CI 87efd94e66 Bot Updating Package Versions 2020-05-06 07:37:32 -04:00
LinuxServer-CI 4c1b17a7fe Bot Updating Templated Files 2020-04-29 07:32:59 -04:00
LinuxServer-CI 79d1717fef Bot Updating Package Versions 2020-04-22 07:42:44 -04:00
LinuxServer-CI 4a51a660cc Bot Updating Package Versions 2020-04-15 12:36:55 +01:00
LinuxServer-CI b5fa38205a Bot Updating Package Versions 2020-04-08 13:48:57 +02:00
LinuxServer-CI ec7d149463 Bot Updating Templated Files 2020-04-08 11:33:09 +00:00
LinuxServer-CI 4e62aeece5 Bot Updating Package Versions 2020-04-01 11:36:16 +00:00
LinuxServer-CI 66b59d4f58 Bot Updating Package Versions 2020-03-31 21:57:13 +00:00
driz 4a0e026596 Merge pull request #137 from linuxserver/crontab
user customizable crontab, fix logrotate
2020-03-31 17:48:22 -04:00
aptalca 85dcc3d9f3 user customizable crontab, fix lofrotate 2020-03-31 17:15:55 -04:00
LinuxServer-CI 819482117b Bot Updating Package Versions 2020-03-25 12:41:37 +00:00
LinuxServer-CI 9d0c4642ff Bot Updating Package Versions 2020-03-24 08:37:58 +00:00
LinuxServer-CI eb2faa23b9 Bot Updating Templated Files 2020-03-24 09:29:13 +01:00
LinuxServer-CI 2489e3043f Bot Updating Templated Files 2020-03-18 12:33:14 +00:00
LinuxServer-CI 43c0e0e0b4 Bot Updating Package Versions 2020-03-12 08:32:52 +00:00
LinuxServer-CI bd7df43019 Bot Updating Package Versions 2020-03-11 12:40:30 +00:00
LinuxServer-CI 05e589ee98 Bot Updating Package Versions 2020-03-04 12:39:42 +00:00
LinuxServer-CI a6adba5387 Bot Updating Package Versions 2020-02-26 07:39:44 -05:00
LinuxServer-CI 9b52790a9c Bot Updating Package Versions 2020-02-19 07:37:09 -05:00
LinuxServer-CI 62a1203f8b Bot Updating Package Versions 2020-02-12 07:42:33 -05:00
LinuxServer-CI 23f762ff52 Bot Updating Package Versions 2020-02-07 03:27:29 +00:00
aptalca aad6bf2d92 Various php and nginx site conf optimizations (#133)
* php.ini and site config updates

* display real ip in nginx logs with rp

* fixed diffs w/ upstream nextcloud git (#129)

* Bot Updating Package Versions

* fixed diffs w/ nextcloud upstream

Edit line 53, 67 - ocs-provider + ocm-provider, one call:
https://github.com/nextcloud/documentation/commit/3206db9fb8290343753828b10f817cf066cf88bd
https://github.com/nextcloud/documentation/pull/1293

New line 55, edit 58 - try_files resets $fastcgi_path_info, fix so $path_info gets value:  
https://github.com/nextcloud/documentation/commit/8f6c1aa61aa3cd9d9e3e567c0afe4a822d3fc403
https://github.com/nextcloud/documentation/pull/1679

Co-authored-by: Evan Wade <evan+pgp@evanwade.com>
2020-02-06 19:22:05 -08:00
LinuxServer-CI c2ee37ff7f Bot Updating Package Versions 2020-02-05 07:58:49 -05:00
LinuxServer-CI 6baba71326 Bot Updating Package Versions 2020-01-29 12:44:41 +00:00
LinuxServer-CI 4e1380994e Bot Updating Package Versions 2020-01-22 10:13:45 -05:00
LinuxServer-CI c45992751d Bot Updating Package Versions 2020-01-15 15:31:41 +01:00
LinuxServer-CI 71924c6768 Bot Updating Package Versions 2020-01-08 07:37:19 -05:00
LinuxServer-CI c2fe0e9b57 Bot Updating Package Versions 2020-01-01 07:45:00 -05:00
LinuxServer-CI d0c8ae82b3 Bot Updating Package Versions 2019-12-25 13:36:43 +01:00
LinuxServer-CI 67c52786a7 Bot Updating Package Versions 2019-12-21 23:24:44 +00:00
LinuxServer-CI 5ba50704e9 Bot Updating Templated Files 2019-12-21 18:19:53 -05:00
thelamer 91d2482d3f Rebasing to Alpine 3.11 2019-12-21 15:18:51 -08:00
LinuxServer-CI 9c0fb97e11 Bot Updating Package Versions 2019-12-19 05:34:50 -05:00
LinuxServer-CI 3007775252 Bot Updating Package Versions 2019-12-18 07:43:14 -05:00
LinuxServer-CI d365d52999 Bot Updating Package Versions 2019-12-11 13:40:34 +01:00
LinuxServer-CI 5475c0e402 Bot Updating Package Versions 2019-12-04 07:37:42 -05:00
LinuxServer-CI 0e16c614d5 Bot Updating Templated Files 2019-12-04 07:33:48 -05:00
LinuxServer-CI 396cb03bc0 Bot Updating Package Versions 2019-11-20 12:38:25 +00:00
LinuxServer-CI 3ac5839861 Bot Updating Package Versions 2019-11-18 21:55:17 +01:00
j0nnymoe aa8ad8a32d Update site config for v17 (#120)
Update site config for v17
2019-11-18 20:51:10 +00:00
aptalca 86e1ecb3d6 Update site config for v17 2019-11-18 15:02:51 -05:00
LinuxServer-CI 2e52336bb6 Bot Updating Package Versions 2019-11-13 13:39:32 +01:00
LinuxServer-CI 4f9edbc4c4 Bot Updating Package Versions 2019-11-06 12:37:43 +00:00
LinuxServer-CI 26924d13e1 Bot Updating Templated Files 2019-11-06 12:32:43 +00:00
LinuxServer-CI f041940338 Bot Updating Package Versions 2019-10-30 08:40:59 -04:00
LinuxServer-CI e5942ea3f5 Bot Updating Package Versions 2019-10-28 14:48:06 -04:00
aptalca 239b510de5 Merge pull request #118 from TechAsh/master
Change cronjob to run every 5 minutes.
2019-10-28 14:41:12 -04:00
Ash Harland b743ccda06 Change cronjob to run every 5 minutes. 2019-10-28 14:35:37 +00:00
LinuxServer-CI 9ef01dc3af Bot Updating Package Versions 2019-10-26 15:18:53 +00:00
LinuxServer-CI 249052f3f4 Bot Updating Package Versions 2019-10-26 06:49:54 +00:00
aptalca 906fcb8228 update nginx site conf due to CVE 2019-10-25 23:45:45 -07:00
LinuxServer-CI e0be2f5c50 Bot Updating Package Versions 2019-10-23 11:35:49 +00:00
LinuxServer-CI dfcf04b1f8 Bot Updating Package Versions 2019-10-16 12:36:32 +01:00
LinuxServer-CI 6cde7d43c8 Bot Updating Package Versions 2019-10-09 07:39:06 -04:00
LinuxServer-CI 8c4fe7304c Bot Updating Templated Files 2019-10-09 07:34:31 -04:00
LinuxServer-CI b74f21e71b Bot Updating Templated Files 2019-10-09 07:33:05 -04:00
LinuxServer-CI 2ec0b22bd2 Bot Updating Package Versions 2019-09-25 07:39:09 -04:00
LinuxServer-CI eb9a27c181 Bot Updating Package Versions 2019-09-18 12:35:58 +01:00
LinuxServer-CI 4d7a0e616e Bot Updating Package Versions 2019-09-11 07:43:54 -04:00
LinuxServer-CI 0b590f03f3 Bot Updating Templated Files 2019-09-11 12:34:38 +01:00
LinuxServer-CI a01cf9429e Bot Updating Templated Files 2019-09-11 07:33:40 -04:00
LinuxServer-CI 4a6c111358 Bot Updating Package Versions 2019-08-28 13:36:20 +02:00
LinuxServer-CI e63a651fbc Bot Updating Package Versions 2019-08-26 03:35:27 -04:00
LinuxServer-CI 5bfa8da198 Bot Updating Package Versions 2019-08-21 13:40:55 +02:00
LinuxServer-CI c4b31dbef6 Bot Updating Package Versions 2019-08-14 07:40:37 -04:00
LinuxServer-CI 6cb5c3915a Bot Updating Package Versions 2019-08-07 07:44:05 -04:00
LinuxServer-CI 835b22e334 Bot Updating Package Versions 2019-07-31 07:36:18 -04:00
LinuxServer-CI 52d1e10864 Bot Updating Package Versions 2019-07-24 13:41:31 +02:00
LinuxServer-CI 7667becee9 Bot Updating Package Versions 2019-07-17 12:41:57 +01:00
aptalca 1d885d9871 fix variable name 2019-07-15 13:41:06 -07:00
aptalca 7397494f49 Download nextcloud during build 2019-07-15 13:41:06 -07:00
47 changed files with 2091 additions and 927 deletions
Executable
+20
View File
@@ -0,0 +1,20 @@
# This file is globally distributed to all container image projects from
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
trim_trailing_whitespace = false
[{Dockerfile*,**.yml}]
indent_style = space
indent_size = 2
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4
+123
View File
@@ -0,0 +1,123 @@
# Contributing to nextcloud
## Gotchas
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* 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 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)
## Common files
| File | Use case |
| :----: | --- |
| `Dockerfile` | Dockerfile used to build amd64 images |
| `Dockerfile.aarch64` | Dockerfile used to build 64bit ARM architectures |
| `Dockerfile.armhf` | Dockerfile used to build 32bit ARM architectures |
| `Jenkinsfile` | This file is a product of our builder and should not be edited directly. This is used to build the image |
| `jenkins-vars.yml` | This file is used to generate the `Jenkinsfile` mentioned above, it only affects the build-process |
| `package_versions.txt` | This file is generated as a part of the build-process and should not be edited directly. It lists all the installed packages and their versions |
| `README.md` | This file is a product of our builder and should not be edited directly. This displays the readme for the repository and image registries |
| `readme-vars.yml` | This file is used to generate the `README.md` |
## Readme
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).
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)
### Fixing typos or clarify the text in the readme
There are variables for multiple parts of the readme, the most common ones are:
| Variable | Description |
| :----: | --- |
| `project_blurb` | This is the short excerpt shown above the project logo. |
| `app_setup_block` | This is the text that shows up under "Application Setup" if enabled |
### Parameters
The compose and run examples are also generated from these variables.
We have a [reference file](https://github.com/linuxserver/docker-jenkins-builder/blob/master/vars/_container-vars-blank) in our Jenkins Builder.
These are prefixed with `param_` for required parameters, or `opt_param` for optional parameters, except for `cap_add`.
Remember to enable param, if currently disabled. This differs between parameters, and can be seen in the reference file.
Devices, environment variables, ports and volumes expects its variables in a certain way.
### Devices
```yml
param_devices:
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
opt_param_devices:
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
```
### Environment variables
```yml
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
opt_param_env_vars:
- { env_var: "VERSION", env_value: "latest", desc: "Supported values are LATEST, PLEXPASS or a specific version number." }
```
### Ports
```yml
param_ports:
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
opt_param_ports:
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
```
### Volumes
```yml
param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
opt_param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
```
### Testing template changes
After you make any changes to the templates, you can use our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) to have the files updated from the modified templates. Please use the command found under `Running Locally` [on this page](https://github.com/linuxserver/docker-jenkins-builder/blob/master/README.md) to generate them prior to submitting a PR.
## Dockerfiles
We use multiple Dockerfiles in our repos, this is because sometimes some CPU architectures needs different packages to work.
If you are proposing additional packages to be added, ensure that you added the packages to all the Dockerfiles in alphabetical order.
### Testing your changes
```bash
git clone https://github.com/linuxserver/docker-nextcloud.git
cd docker-nextcloud
docker build \
--no-cache \
--pull \
-t linuxserver/nextcloud:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## 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
```yml
changelogs:
- { date: "DD.MM.YY:", desc: "Added some love to templates" }
```
+2
View File
@@ -0,0 +1,2 @@
github: linuxserver
open_collective: linuxserver
-21
View File
@@ -1,21 +0,0 @@
<!--- Provide a general summary of the issue in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you have an issue with the project, please provide us with the following information -->
<!--- Host OS -->
<!--- Command line users, your run/create command, GUI/Unraid users, a screenshot of your template settings. -->
<!--- Docker log output, docker log <container-name> -->
<!--- Mention if you're using symlinks on any of the volume mounts. -->
<!--- If you have a suggestion or fix for the project, please provide us with the following information -->
<!--- What you think your suggestion brings to the project, or fixes with the project -->
<!--- If it's a fix, would it be better suited as a Pull request to the repo ? -->
## Thanks, team linuxserver.io
+13
View File
@@ -0,0 +1,13 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum
url: https://discourse.linuxserver.io
about: Post on our community forum.
- name: Documentation
url: https://docs.linuxserver.io/images/docker-nextcloud
about: Documentation - information about all of our containers.
+77
View File
@@ -0,0 +1,77 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
- armhf
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
render: bash
validations:
required: true
+31
View File
@@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false
+32 -4
View File
@@ -2,14 +2,42 @@
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- Before submitting a pull request please check the following -->
<!--- That you have made a branch in your fork, we'd rather not merge from your master -->
<!--- 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 -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
<!--- -->
<!--- We maintain a changelog of major revisions to the container at the end of readme-vars.yml in the root of this repository, please add your changes there if appropriate -->
## Thanks, team linuxserver.io
<!--- Coding guidelines: -->
<!--- 1. Installed packages in the Dockerfiles should be in alphabetical order -->
<!--- 2. Changes to Dockerfile should be replicated in Dockerfile.armhf and Dockerfile.aarch64 if applicable -->
<!--- 3. Indentation style (tabs vs 4 spaces vs 1 space) should match the rest of the document -->
<!--- 4. Readme is auto generated from readme-vars.yml, make your changes there -->
------------------------------
- [ ] 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
------------------------------
<!--- We welcome all PRs though this doesnt guarantee it will be accepted. -->
## Description:
<!--- Describe your changes in detail -->
## Benefits of this PR and context:
<!--- Please explain why we should accept this PR. If this fixes an outstanding bug, please reference the issue # -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Source / References:
<!--- Please include any forum posts/github links relevant to the PR -->
+16
View File
@@ -0,0 +1,16 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit
+13
View File
@@ -0,0 +1,13 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '35 2 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit
+104
View File
@@ -0,0 +1,104 @@
name: External Trigger Main
on:
workflow_dispatch:
jobs:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: External Trigger
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
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
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for nextcloud branch master"
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,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****"
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/nextcloud"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag latest"
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"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
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
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
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \
--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 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 latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
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
+45
View File
@@ -0,0 +1,45 @@
name: External Trigger Scheduler
on:
schedule:
- cron: '27 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
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_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
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 ${br}" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/external_trigger.yml/dispatches
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done
+13
View File
@@ -0,0 +1,13 @@
name: Greetings
on: [pull_request_target, issues]
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
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.'
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)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+42
View File
@@ -0,0 +1,42 @@
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"
+50
View File
@@ -0,0 +1,50 @@
name: Package Trigger Scheduler
on:
schedule:
- cron: '42 11 * * 2'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/package_trigger.yml/dispatches
sleep 30
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
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
fi
done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
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) 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"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
+10
View File
@@ -0,0 +1,10 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
+1
View File
@@ -41,3 +41,4 @@ $RECYCLE.BIN/
Network Trash Folder
Temporary Items
.apdisk
.jenkins-external
+84 -92
View File
@@ -1,107 +1,99 @@
FROM lsiobase/nginx:3.10
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
unzip && \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-sysvsem \
php81-xmlreader \
php81-zip \
samba-client \
sudo && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
php81-pecl-smbclient && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(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); \
fi && \
echo "**** download nextcloud ****" && \
curl -o /app/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
echo "**** test tarball ****" && \
tar xvf /app/nextcloud.tar.bz2 -C \
/tmp && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 443
VOLUME /config /data
EXPOSE 80 443
VOLUME /config
+84 -92
View File
@@ -1,107 +1,99 @@
FROM lsiobase/nginx:arm64v8-3.10
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
unzip && \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-sysvsem \
php81-xmlreader \
php81-zip \
samba-client \
sudo && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
php81-pecl-smbclient && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(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); \
fi && \
echo "**** download nextcloud ****" && \
curl -o /app/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
echo "**** test tarball ****" && \
tar xvf /app/nextcloud.tar.bz2 -C \
/tmp && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 443
VOLUME /config /data
EXPOSE 80 443
VOLUME /config
+84 -92
View File
@@ -1,107 +1,99 @@
FROM lsiobase/nginx:arm32v7-3.10
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
unzip && \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-sysvsem \
php81-xmlreader \
php81-zip \
samba-client \
sudo && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
php81-pecl-smbclient && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(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); \
fi && \
echo "**** download nextcloud ****" && \
curl -o /app/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
echo "**** test tarball ****" && \
tar xvf /app/nextcloud.tar.bz2 -C \
/tmp && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 443
VOLUME /config /data
EXPOSE 80 443
VOLUME /config
Vendored
+544 -174
View File
@@ -2,6 +2,10 @@ pipeline {
agent {
label 'X86-64-MULTI'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10', daysToKeepStr: '60'))
parallelsAlwaysFailFast()
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
@@ -10,6 +14,9 @@ pipeline {
environment {
BUILDS_DISCORD=credentials('build_webhook_url')
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
LS_USER = 'linuxserver'
LS_REPO = 'docker-nextcloud'
@@ -32,10 +39,16 @@ pipeline {
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -49,14 +62,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.LICENSE_TAG = sh(
script: '''#!/bin/bash
if [ -e LICENSE ] ; then
cat LICENSE | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -104,7 +110,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php | awk -F\\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}' ''',
script: ''' 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 ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
@@ -117,6 +123,30 @@ pipeline {
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
if (semver.find()) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else {
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
if (semver.find()) {
if (semver[0][3]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else if (!semver[0][3] && !semver[0][4]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
}
}
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
} else {
println("No SEMVER detected")
}
}
}
}
@@ -129,12 +159,17 @@ pipeline {
steps {
script{
env.IMAGE = env.DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
}
}
}
@@ -147,12 +182,17 @@ pipeline {
steps {
script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
@@ -165,12 +205,17 @@ pipeline {
steps {
script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
}
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
}
@@ -183,25 +228,22 @@ pipeline {
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
string(credentialsId: 'ci-tests-s3-key-id', variable: 'S3_KEY'),
string(credentialsId: 'ci-tests-s3-secret-access-key', variable: 'S3_SECRET')
]) {
script{
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull lsiodev/spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-t lsiodev/spaces-file-upload:latest \
python /upload.py'''
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \
pip install s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
}
}
}
@@ -218,36 +260,106 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || \
[ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/LICENSE | md5sum | cut -c1-8)" != "${LICENSE_TAG}" ]; then
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/LICENSE ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile"
rm -Rf ${TEMPDIR}
exit 0
else
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
fi
done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old and deprecated templates"
rm -Rf ${TEMPDIR}
exit 0
else
echo "No templates to delete"
fi
# Stage 3 - Update templates
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md LICENSE
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
echo ".jenkins-external" >> .gitignore
git add .gitignore
fi
git add ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Templated Files'
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
@@ -272,31 +384,135 @@ pipeline {
}
}
}
// If this is a master build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
script{
sh '''#! /bin/bash
WRONG_PERM=$(find ./ -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print)
if [[ -n "${WRONG_PERM}" ]]; then
echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}"
exit 1
else
echo "S6 service file perms look good."
fi '''
}
}
}
/* #######################
GitLab Mirroring
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
when {
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
}
}
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "master"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/nextcloud") | .uuid' || :)
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/nextcloud",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-nextcloud",\
"backendUrl":"https://ghcr.io/linuxserver/nextcloud",\
"publicUrl":"https://lscr.io/linuxserver/nextcloud"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
}
}
/* ###############
Build Container
############### */
// Build Docker container for push to LS Repo
stage('Build-Single') {
when {
environment name: 'MULTIARCH', value: 'false'
expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
}
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
echo "Running on node: ${NODE_NAME}"
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nextcloud/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nextcloud\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nextcloud\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nextcloud\" \
--label \"org.opencontainers.image.description=[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. 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. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
// Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') {
when {
environment name: 'MULTIARCH', value: 'true'
allOf {
environment name: 'MULTIARCH', value: 'true'
expression { params.PACKAGE_CHECK == 'false' }
}
environment name: 'EXIT_STATUS', value: ''
}
parallel {
stage('Build X86') {
steps {
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
echo "Running on node: ${NODE_NAME}"
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nextcloud/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nextcloud\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nextcloud\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nextcloud\" \
--label \"org.opencontainers.image.description=[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. 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. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
stage('Build ARMHF') {
@@ -304,26 +520,37 @@ pipeline {
label 'ARMHF'
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nextcloud/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nextcloud\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nextcloud\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nextcloud\" \
--label \"org.opencontainers.image.description=[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. 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. \" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
}
}
stage('Build ARM64') {
@@ -331,26 +558,37 @@ pipeline {
label 'ARM64'
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nextcloud/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nextcloud\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nextcloud\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nextcloud\" \
--label \"org.opencontainers.image.description=[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. 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. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
}
}
}
@@ -366,22 +604,17 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
fi
if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info -v > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
touch ${TEMPDIR}/package_versions.txt
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
@@ -449,20 +682,21 @@ pipeline {
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
string(credentialsId: 'ci-tests-s3-key-id', variable: 'S3_KEY'),
string(credentialsId: 'ci-tests-s3-secret-access-key ', variable: 'S3_SECRET')
]) {
script{
env.CI_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
}
sh '''#! /bin/bash
set -e
docker pull lsiodev/ci:latest
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
--shm-size=1gb \
@@ -474,16 +708,14 @@ pipeline {
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-e SECRET_KEY=\"${S3_SECRET}\" \
-e ACCESS_KEY=\"${S3_KEY}\" \
-e DOCKER_ENV=\"${CI_DOCKERENV}\" \
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \
-t lsiodev/ci:latest \
python /ci/ci.py'''
-t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}
}
}
@@ -503,19 +735,37 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
sh "docker push ${IMAGE}:latest"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:latest || :'''
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
done
'''
}
}
}
}
@@ -532,46 +782,83 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh '''#! /bin/bash
if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-latest"
sh "docker push ${IMAGE}:arm32v7-latest"
sh "docker push ${IMAGE}:arm64v8-latest"
sh "docker manifest push --purge ${IMAGE}:latest || :"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:latest"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-latest \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-latest \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-latest \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi
done
'''
}
}
}
}
@@ -586,9 +873,9 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}"
echo "Pushing New tag for current commit ${META_TAG}"
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\
@@ -596,10 +883,10 @@ pipeline {
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
@@ -621,14 +908,20 @@ pipeline {
]
]) {
sh '''#! /bin/bash
docker pull lsiodev/readme-sync
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \
lsiodev/readme-sync bash -c 'node sync' '''
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
ghcr.io/linuxserver/readme-sync bash -c 'node sync'
rm -Rf ${TEMPDIR} '''
}
}
}
@@ -636,12 +929,78 @@ pipeline {
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
sh '''#! /bin/bash
# Function to retrieve JSON data from URL
get_json() {
local url="$1"
local response=$(curl -s "$url")
if [ $? -ne 0 ]; then
echo "Failed to retrieve JSON data from $url"
return 1
fi
local json=$(echo "$response" | jq .)
if [ $? -ne 0 ]; then
echo "Failed to parse JSON data from $url"
return 1
fi
echo "$json"
}
build_table() {
local data="$1"
# Get the keys in the JSON data
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
# Check if keys are empty
if [ -z "$keys" ]; then
echo "JSON report data does not contain any keys or the report does not exist."
return 1
fi
# Build table header
local header="| Tag | Passed |\\n| --- | --- |\\n"
# Loop through the JSON data to build the table rows
local rows=""
for build in $keys; do
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
if [ "$status" = "true" ]; then
status="✅"
else
status="❌"
fi
local row="| "$build" | "$status" |\\n"
rows="${rows}${row}"
done
local table="${header}${rows}"
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
echo "$escaped_table"
}
if [[ "${CI}" = "true" ]]; then
# Retrieve JSON data from URL
data=$(get_json "$CI_JSON_URL")
# Create table from JSON data
table=$(build_table "$data")
echo -e "$table"
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
else
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
fi
'''
}
}
}
@@ -655,16 +1014,27 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || :
'''
cleanWs()
}
}
}
+171 -82
View File
@@ -1,92 +1,137 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring :-
[![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.")
[![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.")
[![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")
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
Find us at:
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
* [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.
* [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.
* [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)
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
[![](https://images.microbadger.com/badges/version/linuxserver/nextcloud.svg)](https://microbadger.com/images/linuxserver/nextcloud "Get your own version badge on microbadger.com")
[![](https://images.microbadger.com/badges/image/linuxserver/nextcloud.svg)](https://microbadger.com/images/linuxserver/nextcloud "Get your own version badge on microbadger.com")
![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg)
![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg)
[![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Pipeline-Builders/docker-nextcloud/master)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/)
[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nextcloud/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nextcloud/latest/index.html)
[![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)
[![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 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)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-nextcloud/container_registry)
[![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 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/)
[![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)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
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.
[![nextcloud](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nextcloud-icon.png)](https://nextcloud.com/)
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. 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://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/).
Simply pulling `linuxserver/nextcloud` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
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.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> |
## Application Setup
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
Docker image update and recreation of container alone won't update nextcloud version.
In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either
1. Perform the in app gui update.
2. Use the CLI version by running `docker exec -it nextcloud updater.phar`
(Both of these are described [here](https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html))
Note: Both `occ` and `updater.phar` can be run without prepending with `sudo -u abc php` or `sudo -u www-data php`
If you are not customizing our default nginx configuration you will need to remove the file:
```
/config/nginx/site-confs/default.conf
```
Then restart the container to replace it with the latest one.
### Collaborative Editing
Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons.
If (auto) installed, those built-in packages may cause instability and should be removed.
### Strict reverse proxies
This image uses a self-signed certificate by default. This naturally means the scheme is `https`.
If you are using a reverse proxy which validates certificates, you need to [disable this check for the container](https://docs.linuxserver.io/faq#strict-proxy).
## Usage
Here are some example snippets to help you get started creating a container.
### docker
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```
docker create \
--name=nextcloud \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 443:443 \
-v </path/to/appdata>:/config \
-v <path/to/data>:/data \
--restart unless-stopped \
linuxserver/nextcloud
```
### docker-compose
Compatible with docker-compose v2 schemas.
```
```yaml
---
version: "2"
version: "2.1"
services:
nextcloud:
image: linuxserver/nextcloud
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TZ=Etc/UTC
volumes:
- </path/to/appdata>:/config
- <path/to/data>:/data
- /path/to/appdata:/config
- /path/to/data:/data
ports:
- 443:443
restart: unless-stopped
```
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
```bash
docker run -d \
--name=nextcloud \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 443:443 \
-v /path/to/appdata:/config \
-v /path/to/data:/data \
--restart unless-stopped \
lscr.io/linuxserver/nextcloud:latest
```
## 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.
@@ -96,10 +141,27 @@ Container images are configured using parameters passed at runtime (such as thos
| `-p 443` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-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 /data` | Your personal data. |
## Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend `FILE__`.
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
## 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`.
@@ -108,82 +170,83 @@ Ensure any volume directories on the host are owned by the same user you specify
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
## Docker Mods
&nbsp;
## Application Setup
Access the webui at `<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
If you are updating our container along with the in app updater and you are not customizing our default nginx configuration you will need to remove the file:
```
/config/nginx/site-confs/default
```
Then restart the container to replace it with the latest one.
[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=nextcloud&query=%24.mods%5B%27nextcloud%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=nextcloud "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
## Support Info
* Shell access whilst the container is running: `docker exec -it nextcloud /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f nextcloud`
* container version number
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' linuxserver/nextcloud`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:latest`
## 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.
Below are the instructions for updating containers:
### Via Docker Run/Create
* Update the image: `docker pull linuxserver/nextcloud`
* Stop the running container: `docker stop nextcloud`
* Delete the container: `docker rm nextcloud`
* Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* Start the new container: `docker start nextcloud`
* You can also remove the old dangling images: `docker image prune`
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.
Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull nextcloud`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d nextcloud`
* You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (especially useful if you don't remember the original parameters)
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/nextcloud:latest`
* Stop the running container: `docker stop nextcloud`
* Delete the container: `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)
* You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* 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
```
**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.
* 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)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic:
```
If you want to make local modifications to these images for development purposes or just to customize the logic:
```bash
git clone https://github.com/linuxserver/docker-nextcloud.git
cd docker-nextcloud
docker build \
--no-cache \
--pull \
-t linuxserver/nextcloud:latest .
-t lscr.io/linuxserver/nextcloud:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
@@ -191,6 +254,32 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **13.04.23:** - Move ssl.conf include to default.conf.
* **21.03.23:** - Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``.
* **02.03.23:** - Set permissions on crontabs during init.
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **10.10.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **30.09.22:** - Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html
* **21.05.22:** - Update version check endpoint.
* **28.04.22:** - Increase OPCache interned strings buffered setting to 16.
* **14.04.22:** - Nginx default site config updated for v23 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container). Fix LDAP connection.
* **11.09.21:** - Rebasing to alpine 3.14
* **21.03.21:** - Publish `php8` tag for testing.
* **25.02.21:** - Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container).
* **21.01.21:** - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup.
* **20.01.21:** - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container).
* **16.01.21:** - 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).
* **12.08.20:** - 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).
* **03.06.20:** - Rebasing to alpine 3.12
* **03.06.20:** - Add php7-bcmath and php7-fileinfo
* **31.05.20:** - Add aliases for occ and updater.phar
* **31.03.20:** - Allow crontab to be user customized, fix logrotate.
* **17.01.20:** - 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).
* **19.12.19:** - Rebasing to alpine 3.11.
* **18.11.19:** - Nginx default site config updated for v17 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container).
* **28.10.19:** - Change cronjob to run every 5 minutes.
* **24.10.19:** - Nginx default site config updated due to CVE-2019-11043 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container).
* **14.07.19:** - Download nextcloud during build time.
* **28.06.19:** - Rebasing to alpine 3.10.
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **27.02.19:** - Updating base nginx config to sync up with v15 requirements.
+1 -1
View File
@@ -3,7 +3,7 @@
# jenkins variables
project_name: docker-nextcloud
external_type: na
custom_version_command: "curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php | awk -F\\\\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'"
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_tag: latest
ls_branch: master
+235 -199
View File
@@ -1,199 +1,235 @@
alpine-baselayout-3.1.2-r0
alpine-keys-2.1-r2
alsa-lib-1.1.9-r0
apache2-utils-2.4.39-r0
apk-tools-2.10.4-r1
apr-1.6.5-r0
apr-util-1.6.1-r6
argon2-libs-20171227-r2
avahi-libs-0.7-r1
bash-5.0.0-r0
busybox-1.30.1-r2
c-client-2007f-r9
ca-certificates-20190108-r0
ca-certificates-cacert-20190108-r0
cairo-1.16.0-r2
coreutils-8.31-r0
cups-libs-2.2.11-r0
curl-7.65.1-r0
db-5.3.28-r1
dbus-libs-1.12.16-r0
expat-2.2.7-r0
ffmpeg-4.1.3-r1
ffmpeg-libs-4.1.3-r1
fontconfig-2.13.1-r0
freetype-2.10.0-r0
fribidi-1.0.5-r1
gdk-pixbuf-2.38.1-r0
ghostscript-9.27-r1
git-2.22.0-r0
glib-2.60.4-r0
gmp-6.1.2-r1
gnutls-3.6.8-r0
graphite2-1.3.13-r1
harfbuzz-2.5.1-r0
icu-libs-64.2-r0
imagemagick-7.0.8.49-r2
imagemagick-libs-7.0.8.49-r2
jansson-2.12-r0
jbig2dec-0.16-r0
lame-3.100-r0
lcms2-2.9-r1
ldb-1.5.4-r0
libacl-2.2.52-r6
libarchive-3.3.3-r0
libass-0.14.0-r0
libattr-2.4.48-r0
libblkid-2.33.2-r0
libbsd-0.9.1-r0
libbz2-1.0.6-r7
libc-utils-0.7.1-r0
libcap-2.27-r0
libcom_err-1.45.2-r0
libcroco-0.6.13-r0
libcrypto1.1-1.1.1c-r0
libcurl-7.65.1-r0
libde265-1.0.3-r0
libdrm-2.4.98-r0
libedit-20190324.3.1-r0
libffi-3.2.1-r6
libgcc-8.3.0-r0
libheif-1.3.2-r2
libice-1.0.9-r3
libintl-0.19.8.1-r4
libjpeg-turbo-2.0.2-r0
libldap-2.4.47-r2
libltdl-2.4.6-r6
libmagic-5.37-r0
libmcrypt-2.5.8-r7
libmemcached-libs-1.0.18-r3
libmount-2.33.2-r0
libogg-1.3.3-r2
libpciaccess-0.14-r0
libpng-1.6.37-r1
libpq-11.4-r0
libressl2.7-libcrypto-2.7.5-r0
libressl2.7-libssl-2.7.5-r0
librsvg-2.40.20-r0
libsasl-2.1.27-r3
libsm-1.2.3-r0
libsmbclient-4.10.5-r0
libsodium-1.0.18-r0
libssl1.1-1.1.1c-r0
libstdc++-8.3.0-r0
libtasn1-4.13-r0
libtheora-1.1.1-r14
libtls-standalone-2.9.1-r0
libunistring-0.9.10-r0
libuuid-2.33.2-r0
libva-2.4.1-r0
libvdpau-1.2-r0
libvorbis-1.3.6-r2
libvpx-1.8.0-r0
libwbclient-4.10.5-r0
libwebp-1.0.2-r0
libx11-1.6.8-r0
libxau-1.0.9-r0
libxcb-1.13.1-r0
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxfixes-5.0.3-r2
libxft-2.3.3-r0
libxml2-2.9.9-r2
libxpm-3.5.12-r0
libxrender-0.9.10-r3
libxt-1.1.5-r2
libzip-1.5.2-r0
linux-pam-1.3.0-r1
lmdb-0.9.23-r0
logrotate-3.15.0-r0
lz4-libs-1.9.1-r0
musl-1.1.22-r2
musl-utils-1.1.22-r2
nano-4.3-r0
ncurses-libs-6.1_p20190518-r0
ncurses-terminfo-6.1_p20190518-r0
ncurses-terminfo-base-6.1_p20190518-r0
nettle-3.4.1-r1
nghttp2-libs-1.38.0-r0
nginx-1.16.0-r2
openssl-1.1.1c-r0
opus-1.3.1-r0
p11-kit-0.23.16.1-r0
pango-1.42.4-r1
pcre-8.43-r0
pcre2-10.33-r0
php7-7.3.7-r0
php7-bz2-7.3.7-r0
php7-common-7.3.7-r0
php7-ctype-7.3.7-r0
php7-curl-7.3.7-r0
php7-dom-7.3.7-r0
php7-exif-7.3.7-r0
php7-fileinfo-7.3.6-r0
php7-fpm-7.3.6-r0
php7-ftp-7.3.7-r0
php7-gd-7.3.7-r0
php7-gmp-7.3.7-r0
php7-iconv-7.3.7-r0
php7-imap-7.3.7-r0
php7-intl-7.3.7-r0
php7-json-7.3.6-r0
php7-ldap-7.3.7-r0
php7-mbstring-7.3.7-r0
php7-mysqlnd-7.3.7-r0
php7-opcache-7.3.7-r0
php7-openssl-7.3.7-r0
php7-pcntl-7.3.7-r0
php7-pdo-7.3.7-r0
php7-pdo_mysql-7.3.7-r0
php7-pdo_pgsql-7.3.7-r0
php7-pdo_sqlite-7.3.7-r0
php7-pecl-apcu-5.1.17-r1
php7-pecl-igbinary-3.0.1-r1
php7-pecl-imagick-3.4.4-r1
php7-pecl-mcrypt-1.0.2-r1
php7-pecl-memcached-3.1.3-r2
php7-pecl-redis-4.3.0-r2
php7-pgsql-7.3.7-r0
php7-phar-7.3.7-r0
php7-posix-7.3.7-r0
php7-session-7.3.7-r0
php7-simplexml-7.3.6-r0
php7-sodium-7.3.7-r0
php7-sqlite3-7.3.7-r0
php7-xml-7.3.6-r0
php7-xmlreader-7.3.7-r0
php7-xmlwriter-7.3.6-r0
php7-zip-7.3.7-r0
pixman-0.38.4-r0
popt-1.16-r7
readline-8.0.0-r0
samba-client-4.10.5-r0
samba-client-libs-4.10.5-r0
samba-common-4.10.5-r0
samba-common-libs-4.10.5-r0
samba-heimdal-libs-4.10.5-r0
samba-libs-4.10.5-r0
scanelf-1.2.3-r0
sdl2-2.0.9-r0
shadow-4.6-r2
shared-mime-info-1.12-r0
sqlite-libs-3.28.0-r0
ssl_client-1.30.1-r2
sudo-1.8.27-r0
talloc-2.2.0-r0
tar-1.32-r0
tdb-libs-1.3.18-r0
tevent-0.9.39-r0
tiff-4.0.10-r0
tzdata-2019a-r0
unzip-6.0-r4
v4l-utils-libs-1.16.6-r0
wayland-libs-client-1.17.0-r0
x264-libs-20180304-r1
x265-libs-3.0-r0
xvidcore-1.3.4-r1
xz-5.2.4-r0
xz-libs-5.2.4-r0
zlib-1.2.11-r1
NAME VERSION TYPE
alpine-baselayout 3.4.0-r0 apk
alpine-baselayout-data 3.4.0-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.17.3-r0 apk
alsa-lib 1.2.8-r0 apk
aom-libs 3.5.0-r0 apk
apache2-utils 2.4.57-r0 apk
apk-tools 2.12.10-r1 apk
apr 1.7.2-r0 apk
apr-util 1.6.3-r0 apk
argon2-libs 20190702-r2 apk
avahi-libs 0.8-r6 apk
bash 5.2.15-r0 apk
brotli-libs 1.0.9-r9 apk
busybox 1.35.0 binary
busybox 1.35.0-r29 apk
busybox-binsh 1.35.0-r29 apk
c-client 2007f-r14 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
cairo 1.17.6-r3 apk
cairo-gobject 1.17.6-r3 apk
cjson 1.7.15-r3 apk
coreutils 9.1-r0 apk
cups-libs 2.4.2-r1 apk
curl 8.1.0-r1 apk
dbus-libs 1.14.4-r0 apk
ffmpeg 5.1.3-r0 apk
ffmpeg-libs 5.1.3-r0 apk
flac-libs 1.4.2-r0 apk
fontconfig 2.14.1-r0 apk
freetype 2.12.1-r0 apk
fribidi 1.0.12-r0 apk
gdbm 1.23-r0 apk
gdk-pixbuf 2.42.10-r0 apk
ghostscript 10.01.1-r0 apk
git 2.38.5-r0 apk
glib 2.74.7-r0 apk
gmp 6.2.1-r2 apk
gnu-libiconv 1.17-r0 apk
gnu-libiconv-libs 1.17-r0 apk
gnutls 3.7.8-r3 apk
graphite2 1.3.14-r2 apk
harfbuzz 5.3.1-r1 apk
hwdata-pci 0.364-r0 apk
icu-data-en 72.1-r1 apk
icu-libs 72.1-r1 apk
imagemagick 7.1.0.62-r0 apk
imagemagick-libs 7.1.0.62-r0 apk
jansson 2.14-r0 apk
jbig2dec 0.19-r1 apk
jq 1.6-r2 apk
lame 3.100-r2 apk
lcms2 2.14-r0 apk
ldb 2.5.3-r0 apk
libacl 2.3.1-r1 apk
libarchive 3.6.1-r2 apk
libass 0.16.0-r1 apk
libasyncns 0.8-r1 apk
libattr 2.5.1-r2 apk
libavif 0.11.1-r0 apk
libblkid 2.38.1-r1 apk
libbsd 0.11.7-r0 apk
libbz2 1.0.8-r4 apk
libc-utils 0.7.2-r3 apk
libcap2 2.66-r1 apk
libcrypto3 3.0.8-r4 apk
libcurl 8.1.1-r1 apk
libdav1d 1.0.0-r2 apk
libde265 1.0.11-r1 apk
libdrm 2.4.114-r0 apk
libedit 20221030.3.1-r0 apk
libexpat 2.5.0-r0 apk
libffi 3.4.4-r0 apk
libgcc 12.2.1_git20220924-r4 apk
libgomp 12.2.1_git20220924-r4 apk
libheif 1.13.0-r0 apk
libice 1.0.10-r1 apk
libintl 0.21.1-r1 apk
libjpeg-turbo 2.1.4-r0 apk
libjxl 0.7.0-r0 apk
libldap 2.6.3-r6 apk
libltdl 2.4.7-r1 apk
libmcrypt 2.5.8-r10 apk
libmd 1.0.4-r0 apk
libmemcached-libs 1.0.18-r5 apk
libmount 2.38.1-r1 apk
libogg 1.3.5-r2 apk
libpciaccess 0.17-r0 apk
libpng 1.6.38-r0 apk
libpq 15.3-r0 apk
libproc 3.3.17-r2 apk
libpulse 16.1-r6 apk
librist 0.2.7-r0 apk
librsvg 2.55.1-r0 apk
libsasl 2.1.28-r3 apk
libsm 1.2.3-r1 apk
libsmbclient 4.16.10-r0 apk
libsndfile 1.1.0-r2 apk
libsodium 1.0.18-r2 apk
libsrt 1.5.1-r0 apk
libssh 0.10.5-r0 apk
libssl3 3.0.8-r4 apk
libstdc++ 12.2.1_git20220924-r4 apk
libtasn1 4.19.0-r0 apk
libtheora 1.1.1-r16 apk
libunistring 1.1-r0 apk
libuuid 2.38.1-r1 apk
libva 2.16.0-r0 apk
libvdpau 1.5-r0 apk
libvorbis 1.3.7-r0 apk
libvpx 1.12.0-r1 apk
libwbclient 4.16.10-r0 apk
libwebp 1.2.4-r2 apk
libx11 1.8.4-r0 apk
libxau 1.0.10-r0 apk
libxcb 1.15-r0 apk
libxdmcp 1.1.4-r0 apk
libxext 1.3.5-r0 apk
libxfixes 6.0.0-r0 apk
libxft 2.3.7-r0 apk
libxml2 2.10.4-r0 apk
libxpm 3.5.15-r0 apk
libxrender 0.9.11-r0 apk
libxt 1.2.1-r0 apk
libzip 1.9.2-r2 apk
libzmq 4.3.4-r1 apk
linux-pam 1.5.2-r1 apk
lmdb 0.9.29-r2 apk
logrotate 3.20.1-r3 apk
lz4-libs 1.9.4-r1 apk
mbedtls 2.28.3-r0 apk
musl 1.2.3-r5 apk
musl-utils 1.2.3-r5 apk
nano 7.0-r0 apk
ncurses-libs 6.3_p20221119-r0 apk
ncurses-terminfo-base 6.3_p20221119-r0 apk
netcat-openbsd 1.130-r4 apk
nettle 3.8.1-r0 apk
nghttp2-libs 1.51.0-r0 apk
nginx 1.22.1-r0 apk
numactl 2.0.16-r1 apk
oniguruma 6.9.8-r0 apk
openssl 3.0.8-r4 apk
opus 1.3.1-r1 apk
orc 0.4.33-r0 apk
p11-kit 0.24.1-r1 apk
pango 1.50.13-r0 apk
pcre 8.45-r2 apk
pcre2 10.42-r0 apk
php-cli 8.1.19 binary
php-fpm 8.1.19 binary
php81 8.1.19-r0 apk
php81-bcmath 8.1.19-r0 apk
php81-bz2 8.1.19-r0 apk
php81-common 8.1.19-r0 apk
php81-ctype 8.1.19-r0 apk
php81-curl 8.1.19-r0 apk
php81-dom 8.1.19-r0 apk
php81-exif 8.1.19-r0 apk
php81-fileinfo 8.1.19-r0 apk
php81-fpm 8.1.19-r0 apk
php81-ftp 8.1.19-r0 apk
php81-gd 8.1.19-r0 apk
php81-gmp 8.1.19-r0 apk
php81-iconv 8.1.19-r0 apk
php81-imap 8.1.19-r0 apk
php81-intl 8.1.19-r0 apk
php81-ldap 8.1.19-r0 apk
php81-mbstring 8.1.19-r0 apk
php81-mysqlnd 8.1.19-r0 apk
php81-opcache 8.1.19-r0 apk
php81-openssl 8.1.19-r0 apk
php81-pcntl 8.1.19-r0 apk
php81-pdo 8.1.19-r0 apk
php81-pdo_mysql 8.1.19-r0 apk
php81-pdo_pgsql 8.1.19-r0 apk
php81-pdo_sqlite 8.1.19-r0 apk
php81-pecl-apcu 5.1.22-r0 apk
php81-pecl-igbinary 3.2.12-r0 apk
php81-pecl-imagick 3.7.0-r0 apk
php81-pecl-mcrypt 1.0.6-r0 apk
php81-pecl-memcached 3.2.0-r0 apk
php81-pecl-redis 5.3.7-r0 apk
php81-pecl-smbclient 1.1.1-r0 apk
php81-pgsql 8.1.19-r0 apk
php81-phar 8.1.19-r0 apk
php81-posix 8.1.19-r0 apk
php81-session 8.1.19-r0 apk
php81-simplexml 8.1.19-r0 apk
php81-sodium 8.1.19-r0 apk
php81-sqlite3 8.1.19-r0 apk
php81-sysvsem 8.1.19-r0 apk
php81-xml 8.1.19-r0 apk
php81-xmlreader 8.1.19-r0 apk
php81-xmlwriter 8.1.19-r0 apk
php81-zip 8.1.19-r0 apk
pixman 0.42.2-r0 apk
pkgconf 1.9.4-r0 apk
popt 1.19-r0 apk
procps 3.3.17-r2 apk
readline 8.2.0-r0 apk
samba-client 4.16.10-r0 apk
samba-client-libs 4.16.10-r0 apk
samba-common 4.16.10-r0 apk
samba-libs 4.16.10-r0 apk
samba-util-libs 4.16.10-r0 apk
scanelf 1.3.5-r1 apk
sdl2 2.26.5-r0 apk
shadow 4.13-r0 apk
shared-mime-info 2.2-r2 apk
skalibs 2.12.0.1-r0 apk
soxr 0.1.3-r3 apk
speexdsp 1.2.1-r0 apk
sqlite-libs 3.40.1-r0 apk
ssl_client 1.35.0-r29 apk
sudo 1.9.12_p2-r1 apk
svt-av1-libs 1.3.0-r0 apk
talloc 2.3.4-r0 apk
tdb-libs 1.4.6-r0 apk
tevent 0.13.0-r0 apk
tiff 4.4.0-r3 apk
tzdata 2023c-r0 apk
utmps-libs 0.1.2.0-r1 apk
v4l-utils-libs 1.22.1-r2 apk
vidstab 1.1.0-r2 apk
wayland-libs-client 1.21.0-r1 apk
x264-libs 0.164_git20220602-r0 apk
x265-libs 3.5-r3 apk
xvidcore 1.3.7-r1 apk
xz 5.2.9-r0 apk
xz-libs 5.2.9-r0 apk
zlib 1.2.13-r0 apk
zstd-libs 1.5.5-r0 apk
+50 -5
View File
@@ -19,6 +19,8 @@ available_architectures:
# development version
development_versions: false
development_versions_items:
- { tag: "latest", desc: "Stable Nextcloud releases" }
# container parameters
common_param_env_vars_enabled: true
@@ -29,8 +31,8 @@ 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_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata>", desc: "Nextcloud configs." }
- { vol_path: "/data", vol_host_path: "<path/to/data>", desc: "Your personal data." }
- { vol_path: "/config", vol_host_path: "/path/to/appdata", desc: "Nextcloud configs." }
- { vol_path: "/data", vol_host_path: "/path/to/data", desc: "Your personal data." }
param_usage_include_ports: true
param_ports:
- { external_port: "443", internal_port: "443", port_desc: "WebUI" }
@@ -48,16 +50,59 @@ optional_block_1: false
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the webui at `<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 }}).
If you are updating our container along with the in app updater and you are not customizing our default nginx configuration you will need to remove the file:
Docker image update and recreation of container alone won't update nextcloud version.
In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either
1. Perform the in app gui update.
2. Use the CLI version by running `docker exec -it nextcloud updater.phar`
(Both of these are described [here](https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html))
Note: Both `occ` and `updater.phar` can be run without prepending with `sudo -u abc php` or `sudo -u www-data php`
If you are not customizing our default nginx configuration you will need to remove the file:
```
/config/nginx/site-confs/default
/config/nginx/site-confs/default.conf
```
Then restart the container to replace it with the latest one.
### Collaborative Editing
Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons.
If (auto) installed, those built-in packages may cause instability and should be removed.
# changelog
changelogs:
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
- { date: "21.03.23:", desc: "Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``." }
- { date: "02.03.23:", desc: "Set permissions on crontabs during init." }
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
- { 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: "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: "21.05.22:", desc: "Update version check endpoint." }
- { date: "28.04.22:", desc: "Increase OPCache interned strings buffered setting to 16." }
- { 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: "11.09.21:", desc: "Rebasing to alpine 3.14" }
- { date: "21.03.21:", desc: "Publish `php8` tag for testing." }
- { 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: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup." }
- { 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: "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: "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: "03.06.20:", desc: "Rebasing to alpine 3.12" }
- { date: "03.06.20:", desc: "Add php7-bcmath and php7-fileinfo" }
- { date: "31.05.20:", desc: "Add aliases for occ and updater.phar" }
- { date: "31.03.20:", desc: "Allow crontab to be user customized, fix logrotate." }
- { 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: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- { 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: "28.10.19:", desc: "Change cronjob to run every 5 minutes." }
- { 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.07.19:", desc: "Download nextcloud during build time." }
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements." }
-84
View File
@@ -1,84 +0,0 @@
upstream php-handler {
server 127.0.0.1:9000;
}
server {
listen 80;
listen [::]:80;
server_name _;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _;
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
fastcgi_hide_header X-Powered-By;
root /config/www/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
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/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;
location / {
rewrite ^ /index.php$request_uri;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|ocm-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^\/(?:updater|ocs-provider|ocm-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff2?|svg|gif)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
}
}
-1
View File
@@ -1 +0,0 @@
*/15 * * * * s6-setuidgid abc php7 -f /config/www/nextcloud/cron.php
-38
View File
@@ -1,38 +0,0 @@
#!/bin/bash
ocpath="${NEXTCLOUD_PATH}"
htuser='abc'
htgroup='abc'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
@@ -0,0 +1,170 @@
## Version 2023/04/13 - 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
map $arg_v $asset_immutable {
"" "";
default "immutable";
}
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
include /config/nginx/ssl.conf;
root /config/www/nextcloud/;
# display real ip in nginx logs when connected through reverse proxy via docker network
set_real_ip_from 172.0.0.0/8;
real_ip_header X-Forwarded-For;
# 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:
client_max_body_size 512M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
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;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# The settings allows you to optimize the HTTP2 bandwitdth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tunning hints
client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" 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-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# 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
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# 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;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param front_controller_active true; # Enable pretty urls
fastcgi_pass 127.0.0.1:9000;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
fastcgi_max_temp_file_size 0;
}
location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
access_log off; # Optional: Don't log access to assets
location ~ \.wasm$ {
default_type application/wasm;
}
}
location ~ \.woff2?$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
# enable for basic auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
try_files $uri $uri/ /index.php$request_uri;
}
# deny access to .htaccess/.htpasswd files
location ~ /\.ht {
deny all;
}
}
-8
View File
@@ -1,8 +0,0 @@
#!/usr/bin/with-contenv bash
# permissions
chown abc:abc \
/config \
/data
chown -R abc:abc \
/var/lib/nginx
-22
View File
@@ -1,22 +0,0 @@
#!/usr/bin/with-contenv bash
# create folders
mkdir -p \
"${NEXTCLOUD_PATH}"
# install app
if [ ! -e "${NEXTCLOUD_PATH}/index.php" ]; then
NEXTCLOUD_VERSION=$(cat /version.txt)
curl -o /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2
tar xf /tmp/nextcloud.tar.bz2 -C \
"${NEXTCLOUD_PATH}" --strip-components=1
rm -f \
/tmp/nextcloud.tar.bz2
chown abc:abc -R \
"${NEXTCLOUD_PATH}"
chmod +x "${NEXTCLOUD_PATH}/occ"
fi
# set cronjob
crontab /defaults/nextcloud
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/with-contenv bash
# copy config
[[ ! -f /config/www/nextcloud/config/config.php ]] && \
cp /defaults/config.php /config/www/nextcloud/config/config.php
# permissions
chown abc:abc \
/config/www/nextcloud/config/config.php
+9
View File
@@ -0,0 +1,9 @@
# do daily/weekly/monthly maintenance
# min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
# nextcloud cron
*/5 * * * * s6-setuidgid abc php -f /config/www/nextcloud/cron.php
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make folders
mkdir -p \
/config/crontabs
## root
# if crontabs do not exist in config
if [[ ! -f /config/crontabs/root ]]; then
# copy crontab from system
if crontab -l -u root; then
crontab -l -u root >/config/crontabs/root
fi
# if crontabs still do not exist in config (were not copied from system)
# copy crontab from included defaults (using -n, do not overwrite an existing file)
cp -n /etc/crontabs/root /config/crontabs/
fi
sed -i "s|s6-setuidgid abc php[78] -f /config/www/nextcloud/cron.php|s6-setuidgid abc php -f /config/www/nextcloud/cron.php|" /config/crontabs/root
# set permissions and import user crontabs
lsiown root:root /config/crontabs/root
crontab -u root /config/crontabs/root
@@ -0,0 +1 @@
oneshot
@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-crontabs-config/run
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# create folders
mkdir -p \
/config/www/nextcloud \
/data
# install app
if [ ! -e /config/www/nextcloud/index.php ]; then
tar xf /app/nextcloud.tar.bz2 -C \
/config/www/nextcloud --strip-components=1
lsiown abc:abc -R \
/config/www/nextcloud
chmod +x /config/www/nextcloud/occ
fi
# copy config
if [[ ! -f /config/www/nextcloud/config/config.php ]]; then
cp /defaults/config.php /config/www/nextcloud/config/config.php
fi
# permissions
lsiown abc:abc \
/config/www/nextcloud/config/config.php \
/data
if (occ app:list --no-interaction | grep -q richdocumentscode) 2>/dev/null; then
echo "Removing CODE Server"
APP=$(occ app:list --no-interaction | grep richdocumentscode | awk -F ' ' '{print $2}' | tr -d ':')
occ app:remove --no-interaction "${APP}" 2>/dev/null
fi
@@ -0,0 +1 @@
oneshot
@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/with-contenv bash
/usr/sbin/crond -f -S -l 0 -c /etc/crontabs
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
sudo -u abc -s /bin/bash -c "php /config/www/nextcloud/occ $*"
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
sudo -u abc -s /bin/bash -c "php /config/www/nextcloud/updater/updater.phar $*"