Compare commits

..

329 Commits

Author SHA1 Message Date
LinuxServer-CI
83e9ee723c Bot Updating Templated Files 2026-04-10 19:13:21 +00:00
LinuxServer-CI
69f8714750 Bot Updating Package Versions 2026-03-27 19:14:15 +00:00
LinuxServer-CI
fb0817506c Bot Updating Package Versions 2026-03-20 19:09:06 +00:00
LinuxServer-CI
812f33861c Bot Updating Package Versions 2026-03-13 19:03:25 +00:00
LinuxServer-CI
0ea5f069a1 Bot Updating Package Versions 2026-02-20 19:08:26 +00:00
LinuxServer-CI
0bbf23fef2 Bot Updating Templated Files 2026-02-13 19:12:34 +00:00
LinuxServer-CI
745334ec1d Bot Updating Templated Files 2026-02-13 19:10:27 +00:00
LinuxServer-CI
5ce6c7af4a Bot Updating Package Versions 2026-02-06 19:10:18 +00:00
LinuxServer-CI
4070c6c1c1 Bot Updating Package Versions 2026-01-30 19:04:04 +00:00
LinuxServer-CI
6f90ce6e0d Bot Updating Package Versions 2026-01-23 18:55:21 +00:00
LinuxServer-CI
2b346cb9fa Bot Updating Package Versions 2026-01-02 18:49:15 +00:00
LinuxServer-CI
a40f07406b Bot Updating Package Versions 2025-12-26 18:47:23 +00:00
LinuxServer-CI
1c1f459dc4 Bot Updating Package Versions 2025-12-19 18:48:19 +00:00
LinuxServer-CI
302ee1006f Bot Updating Package Versions 2025-12-12 18:49:33 +00:00
LinuxServer-CI
fcc5f92e92 Bot Updating Package Versions 2025-11-28 18:44:27 +00:00
LinuxServer-CI
9fea03932a Bot Updating Package Versions 2025-11-21 18:46:07 +00:00
LinuxServer-CI
74ec59b86d Bot Updating Templated Files 2025-11-21 18:41:24 +00:00
LinuxServer-CI
724ba9ef76 Bot Updating Package Versions 2025-11-14 18:46:12 +00:00
LinuxServer-CI
f50233ce8b Bot Updating Package Versions 2025-10-24 18:44:06 +00:00
LinuxServer-CI
c73a11aba7 Bot Updating Templated Files 2025-10-24 18:41:03 +00:00
LinuxServer-CI
703c162c61 Bot Updating Package Versions 2025-10-17 18:40:31 +00:00
LinuxServer-CI
255dadc4a2 Bot Updating Package Versions 2025-10-10 18:42:53 +00:00
LinuxServer-CI
b630586890 Bot Updating Package Versions 2025-10-03 18:41:31 +00:00
LinuxServer-CI
5b41448ab4 Bot Updating Package Versions 2025-09-26 18:40:43 +00:00
LinuxServer-CI
7de3a01c49 Bot Updating Package Versions 2025-09-19 18:41:36 +00:00
LinuxServer-CI
e862bbe087 Bot Updating Package Versions 2025-08-22 18:44:39 +00:00
LinuxServer-CI
631ca67ed7 Bot Updating Package Versions 2025-08-15 18:48:03 +00:00
LinuxServer-CI
feddce3a10 Bot Updating Package Versions 2025-08-08 18:48:17 +00:00
LinuxServer-CI
c9cae0a107 Bot Updating Package Versions 2025-08-01 18:50:09 +00:00
LinuxServer-CI
d81ca906b4 Bot Updating Package Versions 2025-07-29 14:26:44 +00:00
LinuxServer-CI
003291efcd Bot Updating Templated Files 2025-07-29 14:22:58 +00:00
Adam
84eab95209 Merge pull request #160 from linuxserver/master-3.22 2025-07-29 15:20:42 +01:00
thespad
4884cbbffe Fix opcache dir 2025-07-27 13:51:33 +01:00
LinuxServer-CI
cf1be7a51b Bot Updating Package Versions 2025-07-25 18:49:16 +00:00
thespad
367b8290ae Rebase to 3.22 2025-07-20 15:55:48 +01:00
LinuxServer-CI
28be1a9d0d Bot Updating Package Versions 2025-07-18 18:48:21 +00:00
LinuxServer-CI
baf9346f97 Bot Updating Package Versions 2025-07-17 14:55:54 +00:00
LinuxServer-CI
96e0f64b82 Bot Updating Package Versions 2025-07-11 18:47:00 +00:00
LinuxServer-CI
9fee85e68f Bot Updating Templated Files 2025-07-04 18:46:06 +00:00
LinuxServer-CI
b861d95624 Bot Updating Templated Files 2025-07-04 18:44:07 +00:00
LinuxServer-CI
1a07453ce2 Bot Updating Templated Files 2025-06-13 18:44:46 +00:00
LinuxServer-CI
05979763c7 Bot Updating Package Versions 2025-05-23 18:48:30 +00:00
LinuxServer-CI
87dc95bd6d Bot Updating Package Versions 2025-05-16 18:47:07 +00:00
LinuxServer-CI
2a7210c37e Bot Updating Templated Files 2025-05-16 18:42:10 +00:00
LinuxServer-CI
35f6b1f6d8 Bot Updating Package Versions 2025-04-18 18:39:23 +00:00
LinuxServer-CI
2c4d1b9b62 Bot Updating Package Versions 2025-04-11 18:41:50 +00:00
LinuxServer-CI
42fbe8217a Bot Updating Package Versions 2025-04-04 18:40:31 +00:00
LinuxServer-CI
7dee5e1a01 Bot Updating Package Versions 2025-03-21 18:42:02 +00:00
LinuxServer-CI
a230d311d1 Bot Updating Package Versions 2025-03-14 18:40:08 +00:00
LinuxServer-CI
ab125ba9c9 Bot Updating Package Versions 2025-02-28 18:40:12 +00:00
LinuxServer-CI
ab686871e0 Bot Updating Package Versions 2025-02-21 18:37:51 +00:00
LinuxServer-CI
ad873f5eb7 Bot Updating Package Versions 2025-02-14 18:41:09 +00:00
LinuxServer-CI
017a6a04c8 Bot Updating Templated Files 2025-02-14 18:36:03 +00:00
LinuxServer-CI
8fde173b55 Bot Updating Templated Files 2025-01-31 18:37:58 +00:00
LinuxServer-CI
7e221490a1 Bot Updating Templated Files 2025-01-31 18:36:28 +00:00
LinuxServer-CI
0b86fded9b Bot Updating Package Versions 2025-01-24 18:37:18 +00:00
quietsy
34e623e206 Merge pull request #158 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-22 19:53:46 +02:00
quietsy
fe1da81d91 Add categories to readme-vars.yml 2025-01-22 14:53:01 +02:00
LinuxServer-CI
04b2db2a1e Bot Updating Package Versions 2025-01-17 18:36:41 +00:00
LinuxServer-CI
6f7a724083 Bot Updating Package Versions 2025-01-10 18:38:17 +00:00
LinuxServer-CI
bd423ad357 Bot Updating Package Versions 2024-12-27 18:37:08 +00:00
LinuxServer-CI
c87c3ad09f Bot Updating Package Versions 2024-12-20 18:42:28 +00:00
LinuxServer-CI
d54a4cf599 Bot Updating Templated Files 2024-12-20 18:39:05 +00:00
LinuxServer-CI
25fcd4876a Bot Updating Templated Files 2024-12-20 18:37:32 +00:00
LinuxServer-CI
83122a9d03 Bot Updating Package Versions 2024-12-13 18:42:33 +00:00
LinuxServer-CI
274349166b Bot Updating Templated Files 2024-12-06 18:44:22 +00:00
LinuxServer-CI
54548adcc7 Bot Updating Templated Files 2024-12-06 18:42:21 +00:00
LinuxServer-CI
e1470dc8ab Bot Updating Templated Files 2024-12-06 18:40:28 +00:00
LinuxServer-CI
413458f588 Bot Updating Package Versions 2024-11-29 18:41:01 +00:00
LinuxServer-CI
6b689fed34 Bot Updating Package Versions 2024-11-22 18:38:58 +00:00
LinuxServer-CI
5240552ed4 Bot Updating Templated Files 2024-11-15 18:39:32 +00:00
LinuxServer-CI
3f9edfc3cc Bot Updating Templated Files 2024-11-15 18:37:59 +00:00
LinuxServer-CI
a460662903 Bot Updating Package Versions 2024-11-01 18:36:43 +00:00
LinuxServer-CI
2b6f0b7927 Bot Updating Package Versions 2024-10-25 18:37:24 +00:00
LinuxServer-CI
9fb77214d3 Bot Updating Templated Files 2024-10-04 18:37:22 +00:00
LinuxServer-CI
fc112da970 Bot Updating Package Versions 2024-09-27 18:42:02 +00:00
LinuxServer-CI
b8432990ae Bot Updating Templated Files 2024-09-27 18:39:58 +00:00
LinuxServer-CI
698b56ae07 Bot Updating Templated Files 2024-09-27 18:38:40 +00:00
LinuxServer-CI
7c8281caba Bot Updating Templated Files 2024-09-27 18:37:12 +00:00
LinuxServer-CI
2374a19761 Bot Updating Package Versions 2024-09-20 18:36:33 +00:00
LinuxServer-CI
694a33a9c1 Bot Updating Package Versions 2024-09-13 18:38:02 +00:00
LinuxServer-CI
59959cbae7 Bot Updating Package Versions 2024-09-06 18:35:43 +00:00
LinuxServer-CI
def983ab25 Bot Updating Package Versions 2024-08-23 18:37:45 +00:00
LinuxServer-CI
95cdaf22af Bot Updating Templated Files 2024-08-23 18:35:34 +00:00
LinuxServer-CI
36e67b267e Bot Updating Templated Files 2024-08-23 18:34:00 +00:00
LinuxServer-CI
019bf21bf2 Bot Updating Package Versions 2024-08-16 18:34:50 +00:00
LinuxServer-CI
81a23c1ffe Bot Updating Package Versions 2024-08-09 18:36:21 +00:00
LinuxServer-CI
b601769e0f Bot Updating Package Versions 2024-08-02 18:35:10 +00:00
LinuxServer-CI
822a1e7bcd Bot Updating Package Versions 2024-07-26 18:32:46 +00:00
Eric Nemchik
a70321c371 Merge pull request #153 from linuxserver/delete-default-conf
Delete root/defaults/nginx/site-confs/default.conf.sample
2024-07-19 16:35:59 -05:00
LinuxServer-CI
f399491bf6 Bot Updating Package Versions 2024-07-19 18:33:47 +00:00
Eric Nemchik
493b46774c Delete root/defaults/nginx/site-confs/default.conf.sample
redundant to base
2024-07-16 20:44:11 -05:00
LinuxServer-CI
bf821250ce Bot Updating Package Versions 2024-07-12 18:39:29 +00:00
LinuxServer-CI
2c7e8e2347 Bot Updating Templated Files 2024-07-12 18:37:23 +00:00
LinuxServer-CI
0a811d8ff0 Bot Updating Templated Files 2024-07-12 18:35:17 +00:00
LinuxServer-CI
a2b5099589 Bot Updating Package Versions 2024-07-05 18:34:20 +00:00
LinuxServer-CI
d1de807dbd Bot Updating Package Versions 2024-06-28 09:08:39 +00:00
Roxedus
2d0a689cfa Merge pull request #152 from linuxserver/master-3.20 2024-06-28 11:04:07 +02:00
thespad
32482621b1 Rebase to 3.20 2024-06-27 16:33:46 +01:00
LinuxServer-CI
ae11a9757a Bot Updating Package Versions 2024-06-21 18:34:08 +00:00
LinuxServer-CI
438ca48450 Bot Updating Package Versions 2024-06-14 18:34:10 +00:00
LinuxServer-CI
f4d5ee4d4b Bot Updating Package Versions 2024-05-24 18:36:32 +00:00
LinuxServer-CI
50b7879b20 Bot Updating Templated Files 2024-05-24 18:34:18 +00:00
LinuxServer-CI
3a54e1e8a4 Bot Updating Templated Files 2024-05-24 18:32:03 +00:00
LinuxServer-CI
0fa6c3b178 Bot Updating Package Versions 2024-05-17 18:34:23 +00:00
LinuxServer-CI
5f8befb76f Bot Updating Package Versions 2024-05-10 18:34:30 +00:00
LinuxServer-CI
b4c8ae5421 Bot Updating Templated Files 2024-05-10 18:30:46 +00:00
LinuxServer-CI
0457e2e6c9 Bot Updating Package Versions 2024-05-03 18:34:58 +00:00
LinuxServer-CI
f2adb642db Bot Updating Templated Files 2024-05-03 18:30:46 +00:00
LinuxServer-CI
d7534720d4 Bot Updating Package Versions 2024-04-26 18:31:53 +00:00
LinuxServer-CI
44ed891b5b Bot Updating Package Versions 2024-04-19 18:30:03 +00:00
LinuxServer-CI
c4bfc70a35 Bot Updating Package Versions 2024-04-12 18:27:59 +00:00
LinuxServer-CI
810384ffc8 Bot Updating Package Versions 2024-04-05 18:29:54 +00:00
LinuxServer-CI
3980f54fb1 Bot Updating Package Versions 2024-03-29 18:29:08 +00:00
LinuxServer-CI
e1970defc6 Bot Updating Package Versions 2024-03-22 18:30:26 +00:00
LinuxServer-CI
0654cc0288 Bot Updating Package Versions 2024-03-15 18:35:44 +00:00
LinuxServer-CI
7cf45e7130 Bot Updating Templated Files 2024-03-15 18:30:00 +00:00
LinuxServer-CI
696994332b Bot Updating Package Versions 2024-03-07 13:54:12 +00:00
LinuxServer-CI
bbcf5f8d5a Bot Updating Templated Files 2024-03-07 13:51:18 +00:00
Andrew Berry
1aedaec411 Enable the PHP opcache and disable revalidation (#149)
* Enable the PHP opcache and disable revalidation

* Add opcache update to changelog
2024-03-07 08:49:31 -05:00
LinuxServer-CI
dee7bdbd92 Bot Updating Templated Files 2024-03-06 17:56:36 +00:00
Eric Nemchik
a721071117 Cleanup default site conf (#142)
* Cleanup default site conf

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

* update dates

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 12:52:31 -05:00
LinuxServer-CI
2e5e686e36 Bot Updating Package Versions 2024-03-01 18:31:19 +00:00
LinuxServer-CI
86fa1c70a3 Bot Updating Templated Files 2024-02-23 18:31:22 +00:00
LinuxServer-CI
2b2f8dfd6d Bot Updating Templated Files 2024-02-23 18:29:36 +00:00
LinuxServer-CI
46eacc80b8 Bot Updating Package Versions 2024-02-18 21:49:23 +00:00
LinuxServer-CI
0f3c2b0401 Bot Updating Package Versions 2024-02-17 15:45:10 +00:00
Adam
837c5942db Merge pull request #145 from linuxserver/feature/add_dom_php_extension
Add DOM php extension
2024-02-17 14:35:30 +00:00
Chris Hunt
879e81fb6b Add DOM php extension 2024-02-17 08:29:57 +00:00
LinuxServer-CI
c5500f1c10 Bot Updating Package Versions 2024-02-16 18:29:23 +00:00
LinuxServer-CI
0830b88bd6 Bot Updating Package Versions 2024-02-09 18:29:01 +00:00
LinuxServer-CI
27f3745f2a Bot Updating Package Versions 2024-02-02 18:30:25 +00:00
LinuxServer-CI
bbecc0b09a Bot Updating Package Versions 2024-01-26 16:43:37 +00:00
LinuxServer-CI
dad5208309 Bot Updating Templated Files 2024-01-26 16:39:55 +00:00
Eric Nemchik
d999bb49de Merge pull request #140 from linuxserver/3.19
Rebase to Alpine 3.19
2024-01-26 10:37:50 -06:00
LinuxServer-CI
6b588ea844 Bot Updating Package Versions 2024-01-19 18:31:46 +00:00
LinuxServer-CI
d893aac03f Bot Updating Package Versions 2024-01-12 18:35:54 +00:00
LinuxServer-CI
6432966c54 Bot Updating Templated Files 2024-01-12 18:32:20 +00:00
LinuxServer-CI
4ea20437ae Bot Updating Templated Files 2024-01-12 18:30:36 +00:00
LinuxServer-CI
883863471c Bot Updating Package Versions 2024-01-05 18:32:08 +00:00
Eric Nemchik
ca4da80275 Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:12:50 -06:00
LinuxServer-CI
578be1f1f3 Bot Updating Package Versions 2023-12-22 18:31:05 +00:00
LinuxServer-CI
4cb619e62d Bot Updating Package Versions 2023-12-15 18:32:01 +00:00
LinuxServer-CI
c5eeeea25f Bot Updating Package Versions 2023-12-08 18:32:04 +00:00
LinuxServer-CI
7d6fadb7a0 Bot Updating Package Versions 2023-12-01 18:31:59 +00:00
Eric Nemchik
6208bee94a Merge pull request #138 from linuxserver/quiet-migration
only run migration if conf exists
2023-11-29 08:30:57 -06:00
Eric Nemchik
5a13df03c2 only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:42:57 -06:00
LinuxServer-CI
95b5c12980 Bot Updating Package Versions 2023-11-24 18:30:13 +00:00
LinuxServer-CI
1930594564 Bot Updating Package Versions 2023-11-17 18:34:44 +00:00
LinuxServer-CI
ab062598dd Bot Updating Templated Files 2023-11-17 18:31:28 +00:00
LinuxServer-CI
6e67e9639f Bot Updating Package Versions 2023-11-10 18:29:51 +00:00
LinuxServer-CI
08c8690c05 Bot Updating Package Versions 2023-10-27 18:30:40 +00:00
LinuxServer-CI
10c24c4e6c Bot Updating Package Versions 2023-10-20 18:30:04 +00:00
LinuxServer-CI
9f3e2d5e25 Bot Updating Package Versions 2023-10-13 18:32:34 +00:00
LinuxServer-CI
7f2ed151a8 Bot Updating Templated Files 2023-10-07 00:23:35 +00:00
LinuxServer-CI
edf366cafc Bot Updating Package Versions 2023-10-06 18:37:37 +00:00
LinuxServer-CI
56cfd5e4f9 Bot Updating Templated Files 2023-10-06 18:32:40 +00:00
LinuxServer-CI
ec44060cd9 Bot Updating Templated Files 2023-10-06 18:30:08 +00:00
LinuxServer-CI
9c3398a642 Bot Updating Package Versions 2023-09-29 18:30:40 +00:00
LinuxServer-CI
8ae8376b0e Bot Updating Package Versions 2023-09-22 18:31:02 +00:00
LinuxServer-CI
171f7a06ba Bot Updating Package Versions 2023-09-08 18:29:10 +00:00
LinuxServer-CI
ea77b698e9 Bot Updating Package Versions 2023-09-01 18:28:10 +00:00
LinuxServer-CI
72e0b2429d Bot Updating Package Versions 2023-08-18 18:29:16 +00:00
LinuxServer-CI
cd14d065fb Bot Updating Package Versions 2023-08-11 18:28:08 +00:00
LinuxServer-CI
5ec148867c Bot Updating Package Versions 2023-08-04 18:29:09 +00:00
LinuxServer-CI
bc67105b9f Bot Updating Package Versions 2023-07-28 18:27:45 +00:00
LinuxServer-CI
78ce2e7888 Bot Updating Package Versions 2023-07-21 18:31:34 +00:00
LinuxServer-CI
a3d7d6b52d Bot Updating Package Versions 2023-07-14 18:33:24 +00:00
LinuxServer-CI
73abea2a2a Bot Updating Package Versions 2023-07-07 18:35:16 +00:00
LinuxServer-CI
2ee1aac893 Bot Updating Templated Files 2023-07-07 18:33:06 +00:00
LinuxServer-CI
ca1aad4eef Bot Updating Package Versions 2023-06-23 18:33:17 +00:00
LinuxServer-CI
4b1ebc551b Bot Updating Package Versions 2023-06-16 18:30:20 +00:00
LinuxServer-CI
405811c812 Bot Updating Package Versions 2023-06-09 18:29:18 +00:00
LinuxServer-CI
72febc8128 Bot Updating Package Versions 2023-06-02 18:30:09 +00:00
LinuxServer-CI
79cc6e9958 Bot Updating Package Versions 2023-05-31 17:35:27 +00:00
Eric Nemchik
106be7d4c8 Merge pull request #130 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-31 12:31:46 -05:00
Eric Nemchik
ef39ae4b09 Merge remote-tracking branch 'origin/master' into 3.18
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-05-29 17:29:04 -05:00
Eric Nemchik
d631acbc2b Rebase to Alpine 3.18, deprecate armhf 2023-05-27 16:51:39 -05:00
LinuxServer-CI
1d14a698e9 Bot Updating Package Versions 2023-05-26 18:32:01 +00:00
LinuxServer-CI
a39cf6077e Bot Updating Templated Files 2023-05-26 18:28:15 +00:00
LinuxServer-CI
913d0ae731 Bot Updating Package Versions 2023-05-19 18:28:38 +00:00
LinuxServer-CI
f4373faaf7 Bot Updating Package Versions 2023-05-12 18:28:26 +00:00
LinuxServer-CI
6337038936 Bot Updating Package Versions 2023-04-28 18:32:32 +00:00
LinuxServer-CI
b4d0dd10ed Bot Updating Templated Files 2023-04-28 18:29:38 +00:00
LinuxServer-CI
0cd62d2600 Bot Updating Templated Files 2023-04-28 18:28:39 +00:00
LinuxServer-CI
7a416945f8 Bot Updating Package Versions 2023-04-21 18:30:09 +00:00
LinuxServer-CI
3a461589ae Bot Updating Package Versions 2023-04-18 09:13:38 -05:00
Eric Nemchik
7423abbba3 Merge pull request #125 from linuxserver/move-ssl-include
Move ssl.conf include to default.conf
2023-04-18 09:08:13 -05:00
LinuxServer-CI
dc90782e9b Bot Updating Package Versions 2023-04-14 13:30:32 -05:00
Eric Nemchik
4bc9c1c0a8 Move ssl.conf include to default.conf 2023-04-13 11:05:47 -05:00
LinuxServer-CI
c1e8f4aff6 Bot Updating Package Versions 2023-04-07 13:35:44 -05:00
LinuxServer-CI
ed2a01883e Bot Updating Package Versions 2023-04-02 03:03:28 -05:00
LinuxServer-CI
d4a94d2b22 Bot Updating Templated Files 2023-04-02 03:01:08 -05:00
LinuxServer-CI
268c0bd387 Bot Updating Templated Files 2023-04-02 02:59:33 -05:00
LinuxServer-CI
270e7fe693 Bot Updating Templated Files 2023-04-02 02:58:01 -05:00
LinuxServer-CI
12b0376ef0 Bot Updating Package Versions 2023-03-26 02:58:20 -05:00
LinuxServer-CI
279e8aff58 Bot Updating Package Versions 2023-03-09 17:53:32 +01:00
LinuxServer-CI
ff2790ec89 Bot Updating Package Versions 2023-03-05 09:00:27 +01:00
LinuxServer-CI
94c5031806 Bot Updating Templated Files 2023-03-05 08:57:50 +01:00
LinuxServer-CI
201ead3860 Bot Updating Package Versions 2023-02-26 01:59:11 -06:00
LinuxServer-CI
2a933c71f5 Bot Updating Package Versions 2023-02-19 08:58:54 +01:00
LinuxServer-CI
2579fdf1d5 Bot Updating Package Versions 2023-02-12 02:01:32 -06:00
LinuxServer-CI
9da5735d04 Bot Updating Templated Files 2023-02-12 01:59:02 -06:00
LinuxServer-CI
75a85e47d0 Bot Updating Templated Files 2023-02-12 01:57:45 -06:00
LinuxServer-CI
21da59c4d2 Bot Updating Package Versions 2023-02-05 01:58:11 -06:00
LinuxServer-CI
46f6a30e9d Bot Updating Package Versions 2023-01-27 04:20:22 -06:00
Eric Nemchik
86be90bf2e Merge pull request #120 from linuxserver/3.17
Rebase to alpine 3.17 with php8.1 (master)
2023-01-27 04:17:38 -06:00
Eric Nemchik
de8ba1b570 Fix perm check 2023-01-25 19:33:19 -06:00
Eric Nemchik
96d2cfabc4 Adjust for overlayfs chown bug 2023-01-25 19:19:23 -06:00
Eric Nemchik
fb74b689ec Adjust file ownership 2023-01-23 20:46:38 -06:00
Eric Nemchik
59fd8f30c9 Only set folder permissions when symlinking 2023-01-23 20:08:33 -06:00
Eric Nemchik
b9940034b8 Move install back to Dockerfile 2023-01-23 19:50:44 -06:00
Eric Nemchik
0a47a08cc0 Rebase to alpine 3.17 with php8.1 2023-01-22 16:28:25 -06:00
LinuxServer-CI
4ed42cde3a Bot Updating Package Versions 2023-01-22 01:58:06 -06:00
Eric Nemchik
c4f48e26a5 Merge pull request #119 from linuxserver/format
Format shell scripts
2023-01-18 06:02:56 -06:00
Eric Nemchik
a7e8da1751 Format shell scripts 2023-01-15 09:48:49 -06:00
LinuxServer-CI
fed915b7c7 Bot Updating Package Versions 2022-12-25 08:57:52 +01:00
LinuxServer-CI
89d886bf9b Bot Updating Templated Files 2022-12-04 02:00:50 -06:00
LinuxServer-CI
311858e691 Bot Updating Templated Files 2022-12-04 08:59:21 +01:00
LinuxServer-CI
c8907dc91d Bot Updating Templated Files 2022-12-04 01:58:04 -06:00
Eric Nemchik
a7e89cd97c Merge pull request #112 from linuxserver/fix-permissions
Reorder init to fix permissions
2022-11-25 11:20:32 -06:00
TheSpad
56f29b5e96 Symlink before permissions 2022-11-25 16:27:53 +00:00
TheSpad
9279d33966 Reorder init to fix permissions 2022-11-25 16:26:58 +00:00
KodeStar
e1be906c7a Merge pull request #111 from linuxserver/master-logs
Remove logrotate and symlink logs
2022-11-25 15:10:38 +00:00
Eric Nemchik
40f301e5f9 Spacing 2022-11-25 01:04:24 +00:00
Eric Nemchik
b4403d7c37 Remove logrotate and symlink logs 2022-11-24 23:11:37 +00:00
LinuxServer-CI
2d84657f1c Bot Updating Package Versions 2022-11-24 00:08:34 +01:00
Eric Nemchik
09350f3a5c Merge pull request #79 from linuxserver/standard-base
Standard base
2022-11-23 17:06:49 -06:00
Eric Nemchik
5e59fa3aa2 Add php8-intl 2022-11-14 21:44:23 +00:00
Eric Nemchik
c7992939d7 Fix default.conf date 2022-11-14 21:21:08 +00:00
Eric Nemchik
b941be0b9b Merge branch 'master' into standard-base 2022-11-14 15:20:33 -06:00
Eric Nemchik
fb1014c8fd Include default.conf
Don't include =404 in try_files
2022-11-14 21:16:04 +00:00
Eric Nemchik
5b4cf6dc3b Don't error when migration file doesn't exist 2022-11-14 21:15:25 +00:00
LinuxServer-CI
55a99e5fe5 Bot Updating Package Versions 2022-11-13 09:00:11 +01:00
LinuxServer-CI
a9828f41b4 Bot Updating Templated Files 2022-11-13 08:57:49 +01:00
LinuxServer-CI
5c439758c4 Bot Updating Templated Files 2022-11-06 20:20:11 +01:00
aptalca
511320826a Merge pull request #107 from linuxserver/master-2.x
change upstream branch to 2.x
2022-11-06 14:18:55 -05:00
aptalca
be02445f7c update readme 2022-11-04 15:51:33 -04:00
aptalca
12b30e60e6 change upstream branch to 2.x 2022-11-04 15:50:23 -04:00
LinuxServer-CI
40d7d7473c Bot Updating Package Versions 2022-11-04 18:01:11 +01:00
LinuxServer-CI
dd38966ea3 Bot Updating Package Versions 2022-10-30 02:58:24 -05:00
LinuxServer-CI
3330a74e44 Bot Updating Package Versions 2022-10-23 09:59:12 +02:00
LinuxServer-CI
a0dc297a62 Bot Updating Package Versions 2022-09-25 02:58:15 -05:00
LinuxServer-CI
06916de766 Bot Updating Package Versions 2022-09-18 10:00:10 +02:00
LinuxServer-CI
b5b6a14b76 Bot Updating Templated Files 2022-09-18 09:57:54 +02:00
LinuxServer-CI
661cac879e Bot Updating Package Versions 2022-09-04 09:58:19 +02:00
LinuxServer-CI
5cf14aca3d Bot Updating Package Versions 2022-08-28 09:58:06 +02:00
Eric Nemchik
58857e1645 Update readme 2022-08-23 10:06:53 -05:00
Eric Nemchik
98407a0b20 Keep /config volume consistently 2022-08-21 16:54:02 -05:00
LinuxServer-CI
3ed7a3d71c Bot Updating Package Versions 2022-08-21 02:58:20 -05:00
Eric Nemchik
b5f15e1436 Add default location migration 2022-08-20 18:54:29 -05:00
Eric Nemchik
10c254db2c Use standard nginx.conf from lsio alpine nginx base image 2022-08-20 12:40:26 -05:00
LinuxServer-CI
39c59c06a1 Bot Updating Package Versions 2022-08-14 09:58:15 +02:00
LinuxServer-CI
c02488e09b Bot Updating Package Versions 2022-08-07 02:57:57 -05:00
LinuxServer-CI
723c5aea52 Bot Updating Package Versions 2022-08-03 13:43:27 +02:00
LinuxServer-CI
a55198f00f Bot Updating Package Versions 2022-07-24 02:58:39 -05:00
LinuxServer-CI
4a55c599da Bot Updating Package Versions 2022-07-17 02:58:08 -05:00
LinuxServer-CI
456545bcc9 Bot Updating Package Versions 2022-07-10 09:57:51 +02:00
LinuxServer-CI
20a43b6ab3 Bot Updating Package Versions 2022-07-03 09:58:21 +02:00
LinuxServer-CI
88678a0561 Bot Updating Package Versions 2022-06-26 09:58:25 +02:00
LinuxServer-CI
8fa1b7a527 Bot Updating Package Versions 2022-06-19 02:58:03 -05:00
LinuxServer-CI
02bfc31c9e Bot Updating Package Versions 2022-06-12 02:58:26 -05:00
LinuxServer-CI
6afc3aa3b4 Bot Updating Package Versions 2022-06-05 09:58:09 +02:00
LinuxServer-CI
7c68367a99 Bot Updating Package Versions 2022-05-29 02:58:18 -05:00
LinuxServer-CI
85935bca1a Bot Updating Package Versions 2022-05-15 02:58:32 -05:00
LinuxServer-CI
8cf3f05a22 Bot Updating Package Versions 2022-05-08 09:59:41 +02:00
LinuxServer-CI
12494435ba Bot Updating Templated Files 2022-05-08 09:57:43 +02:00
LinuxServer-CI
f70722549c Bot Updating Package Versions 2022-05-01 03:01:04 -05:00
LinuxServer-CI
8bcb1b2e29 Bot Updating Templated Files 2022-05-01 09:58:50 +02:00
LinuxServer-CI
e79167c046 Bot Updating Templated Files 2022-05-01 09:57:41 +02:00
LinuxServer-CI
6430e1ca41 Bot Updating Package Versions 2022-04-17 02:58:28 -05:00
LinuxServer-CI
269e3e4912 Bot Updating Package Versions 2022-04-10 02:58:11 -05:00
LinuxServer-CI
d0ec2ffce4 Bot Updating Package Versions 2022-03-31 10:47:53 -05:00
LinuxServer-CI
83aad5e638 Bot Updating Package Versions 2022-03-25 10:47:37 -05:00
LinuxServer-CI
ab1a64efa9 Bot Updating Package Versions 2022-03-17 12:40:51 +01:00
aptalca
382981abdd Merge pull request #96 from linuxserver/fix
fix path
2022-03-13 23:31:37 -04:00
aptalca
67c85fb06a fix path 2022-03-13 23:17:16 -04:00
aptalca
ee37d7d648 Merge pull request #94 from linuxserver/search
make searchproviders.yaml use configurable
2022-03-13 22:20:25 -04:00
aptalca
48e2601bb5 make searchproviders.yaml use configurable 2022-03-13 16:34:14 -04:00
LinuxServer-CI
05a597aeae Bot Updating Package Versions 2022-03-13 16:34:39 +01:00
aptalca
20eea430da Merge pull request #92 from linuxserver/3.14
rebase to 3.14
2022-03-13 11:32:34 -04:00
LinuxServer-CI
94538b7678 Bot Updating Package Versions 2022-03-13 08:58:04 +01:00
aptalca
1d3e005903 remove gnu tar from all arches 2022-03-11 12:33:41 -05:00
aptalca
b80ef18abb rebase to 3.14 2022-03-11 12:31:11 -05:00
LinuxServer-CI
d291f8e2ec Bot Updating Package Versions 2022-03-06 08:59:33 +01:00
LinuxServer-CI
cc9a84b0cc Bot Updating Package Versions 2022-02-27 08:58:29 +01:00
LinuxServer-CI
c29c23e7a2 Bot Updating Package Versions 2022-02-20 08:57:56 +01:00
LinuxServer-CI
2ee91c559d Bot Updating Package Versions 2022-02-13 08:58:14 +01:00
LinuxServer-CI
fef327d0b8 Bot Updating Package Versions 2022-02-06 08:57:58 +01:00
LinuxServer-CI
b2951972b0 Bot Updating Package Versions 2022-01-23 08:57:55 +01:00
LinuxServer-CI
c5739b5916 Bot Updating Package Versions 2021-12-26 08:57:57 +01:00
LinuxServer-CI
3af6408f4f Bot Updating Package Versions 2021-12-19 09:01:27 +01:00
LinuxServer-CI
6b54e93c4e Bot Updating Templated Files 2021-12-19 08:59:13 +01:00
LinuxServer-CI
aabf6d3919 Bot Updating Templated Files 2021-12-19 08:57:55 +01:00
LinuxServer-CI
f13db2b813 Bot Updating Package Versions 2021-11-28 08:58:14 +01:00
LinuxServer-CI
0ca5a50c27 Bot Updating Package Versions 2021-11-21 08:58:19 +01:00
LinuxServer-CI
0ce2fb9e8d Bot Updating Package Versions 2021-11-14 08:58:06 +01:00
LinuxServer-CI
5fb64c3d1a Bot Updating Package Versions 2021-11-07 08:58:30 +01:00
LinuxServer-CI
3949667e63 Bot Updating Package Versions 2021-10-31 08:57:43 +01:00
LinuxServer-CI
4003590441 Bot Updating Package Versions 2021-10-24 09:58:21 +02:00
LinuxServer-CI
71bcdc26f7 Bot Updating Package Versions 2021-10-17 09:58:07 +02:00
LinuxServer-CI
dc095a5aca Bot Updating Package Versions 2021-10-10 09:57:52 +02:00
LinuxServer-CI
3a8c0601cf Bot Updating Package Versions 2021-10-03 10:00:45 +02:00
LinuxServer-CI
c564dcbadd Bot Updating Templated Files 2021-10-03 09:58:43 +02:00
LinuxServer-CI
d518918f26 Bot Updating Templated Files 2021-10-03 09:57:42 +02:00
LinuxServer-CI
7b74d2e601 Bot Updating Package Versions 2021-09-26 09:57:53 +02:00
LinuxServer-CI
3cc0678473 Bot Updating Package Versions 2021-09-19 09:57:48 +02:00
LinuxServer-CI
71b1e4eac5 Bot Updating Package Versions 2021-09-05 09:57:55 +02:00
LinuxServer-CI
b01e21ed8d Bot Updating Package Versions 2021-08-29 09:59:27 +02:00
LinuxServer-CI
0406b3bf64 Bot Updating Templated Files 2021-08-29 09:57:35 +02:00
LinuxServer-CI
1fdc74ecdf Bot Updating Package Versions 2021-08-22 09:58:49 +02:00
LinuxServer-CI
d049f50697 Bot Updating Package Versions 2021-08-15 09:58:29 +02:00
LinuxServer-CI
331f81a43a Bot Updating Package Versions 2021-08-08 09:58:39 +02:00
LinuxServer-CI
a23caa394d Bot Updating Package Versions 2021-08-01 09:58:08 +02:00
LinuxServer-CI
e7ec5fa84d Bot Updating Package Versions 2021-07-25 09:58:06 +02:00
LinuxServer-CI
b9b5aafd73 Bot Updating Package Versions 2021-07-11 07:59:00 +00:00
LinuxServer-CI
bd2c7742bc Bot Updating Templated Files 2021-07-04 07:59:52 +00:00
LinuxServer-CI
04021a3cec Bot Updating Templated Files 2021-07-04 07:58:15 +00:00
LinuxServer-CI
af43fa2196 Bot Updating Package Versions 2021-06-20 03:59:16 -04:00
LinuxServer-CI
befde6b719 Bot Updating Package Versions 2021-06-13 08:00:42 +00:00
LinuxServer-CI
96b7597443 Bot Updating Package Versions 2021-06-06 08:34:32 +00:00
LinuxServer-CI
69e7949136 Bot Updating Package Versions 2021-05-30 08:35:59 +00:00
LinuxServer-CI
a882969011 Bot Updating Package Versions 2021-05-23 08:01:11 +00:00
LinuxServer-CI
0c058256a7 Bot Updating Package Versions 2021-04-29 17:01:46 +01:00
aptalca
00f4d1edd7 Merge pull request #76 from vladimir-babichev/feature/php7-pdo_mysql-extension
Added php7-pdo_mysql extension
2021-04-29 11:58:41 -04:00
LinuxServer-CI
5347642ec0 Bot Updating Package Versions 2021-04-18 09:02:03 +01:00
LinuxServer-CI
5928001343 Bot Updating Templated Files 2021-04-18 07:59:01 +00:00
LinuxServer-CI
a59631760c Bot Updating Templated Files 2021-04-18 07:57:34 +00:00
Vladimir
fa143f562a Added php7-pdo_mysql extension 2021-03-29 18:41:54 +01:00
40 changed files with 1608 additions and 1550 deletions

0
.editorconfig Executable file → Normal file
View File

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

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

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

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

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

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

@@ -53,7 +53,6 @@ body:
options: options:
- x86-64 - x86-64
- arm64 - arm64
- armhf
validations: validations:
required: true required: true
- type: textarea - type: textarea
@@ -68,10 +67,10 @@ body:
- type: textarea - type: textarea
attributes: attributes:
description: | description: |
Provide a full docker log, output of "docker logs linuxserver.io" Provide a full docker log, output of "docker logs heimdall"
label: Container logs label: Container logs
placeholder: | placeholder: |
Output of `docker logs linuxserver.io` Output of `docker logs heimdall`
render: bash render: bash
validations: validations:
required: true required: true

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

View File

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

View File

@@ -1,12 +0,0 @@
name: Comment on invalid interaction
on:
issues:
types:
- labeled
jobs:
add-comment-on-invalid:
if: github.event.label.name == 'invalid'
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1
secrets: inherit

View File

@@ -0,0 +1,19 @@
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]
permissions:
contents: read
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

16
.github/workflows/call_issues_cron.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '14 15 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit

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

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

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

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

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

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

View File

@@ -1,38 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-js:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/js'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of js branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/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 "**** 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"

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

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

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

@@ -1,9 +1,12 @@
name: Permission check name: Permission check
on: on:
pull_request: pull_request_target:
paths: paths:
- '**/run' - '**/run'
- '**/finish' - '**/finish'
- '**/check'
- 'root/migrations/*'
jobs: jobs:
permission_check: permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@@ -1,23 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v6.0.1
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.13 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -7,46 +9,51 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
nodejs \ php84-dom \
npm && \ php84-intl \
php84-opcache \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php84/conf.d/00_opcache.ini && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/app/heimdall && \ /heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \ HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
| awk '/sha/{print $4;exit}' FS='[""]'); \ | awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/heimdalljs.tar.gz -L \ /tmp/heimdall.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \ "https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
tar xf \ tar xf \
/tmp/heimdalljs.tar.gz -C \ /tmp/heimdall.tar.gz -C \
/app/heimdall/ --strip-components=1 && \ /app/www-tmp --strip-components=1 && \
cd /app/heimdall && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \
/tmp/* /tmp/*
# add local files # add local files
COPY root/ / COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.13 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -7,46 +9,51 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
nodejs \ php84-dom \
npm && \ php84-intl \
php84-opcache \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php84/conf.d/00_opcache.ini && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/app/heimdall && \ /heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \ HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
| awk '/sha/{print $4;exit}' FS='[""]'); \ | awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/heimdalljs.tar.gz -L \ /tmp/heimdall.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \ "https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
tar xf \ tar xf \
/tmp/heimdalljs.tar.gz -C \ /tmp/heimdall.tar.gz -C \
/app/heimdall/ --strip-components=1 && \ /app/www-tmp --strip-components=1 && \
cd /app/heimdall && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \
/tmp/* /tmp/*
# add local files # add local files
COPY root/ / COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@@ -1,52 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.13
# set version label
ARG BUILD_DATE
ARG VERSION
ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
nodejs \
npm && \
echo "**** install heimdall ****" && \
mkdir -p \
/app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
tar xf \
/tmp/heimdalljs.tar.gz -C \
/app/heimdall/ --strip-components=1 && \
cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /

1063
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

0
LICENSE Executable file → Normal file
View File

206
README.md
View File

@@ -1,12 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-heimdall/blob/js/.github/CONTRIBUTING.md --> <!-- Please read https://github.com/linuxserver/docker-heimdall/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@@ -21,15 +19,14 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall) # [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/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-heimdall/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages)
@@ -37,20 +34,22 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/heimdall) [![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/heimdall)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![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-heimdall%2Fjob%2Fjs%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/) [![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-heimdall%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/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%2Fheimdall%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/latest/index.html) [![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fheimdall%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/latest/index.html)
[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. [Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way.
Simplicity is the key to Heimdall. Simplicity is the key to Heimdall.
Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.
[![heimdall](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png)](https://heimdall.site) [![heimdall](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png)](https://heimdall.site)
## Supported Architectures ## Supported Architectures
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/heimdall:js` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/heimdall: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: The architectures supported by this image are:
@@ -58,7 +57,6 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> |
## Version Tags ## Version Tags
@@ -67,37 +65,41 @@ This image provides various versions that are available via tags. Please read th
| Tag | Available | Description | | Tag | Available | Description |
| :----: | :----: |--- | | :----: | :----: |--- |
| latest | ✅ | Stable Heimdall releases. | | latest | ✅ | Stable Heimdall releases. |
| development | ✅ | Latest commit from the github master branch. | | development | ✅ | Latest commit from the github 2.x branch. |
## Application Setup ## Application Setup
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection ### Adding password protection
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. New installs will automatically pick it up and implement password protected access. Existing users updating their image can delete their site config at `/config/nginx/site-confs/default` and restart the container after updating the image. A new site config with htpasswd support will be created in its place. This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container.
## Usage ## Usage
Here are some example snippets to help you get started creating a container. To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml ```yaml
--- ---
version: "2.1"
services: services:
heimdall: heimdall:
image: lscr.io/linuxserver/heimdall:js image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall container_name: heimdall
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Etc/UTC - TZ=Etc/UTC
- ALLOW_INTERNAL_REQUESTS=false #optional
volumes: volumes:
- /path/to/appdata/config:/config - /path/to/heimdall/config:/config
ports: ports:
- 3000:3000 - 80:80
- 443:443
restart: unless-stopped restart: unless-stopped
``` ```
@@ -109,24 +111,27 @@ docker run -d \
-e PUID=1000 \ -e PUID=1000 \
-e PGID=1000 \ -e PGID=1000 \
-e TZ=Etc/UTC \ -e TZ=Etc/UTC \
-p 3000:3000 \ -e ALLOW_INTERNAL_REQUESTS=false `#optional` \
-v /path/to/appdata/config:/config \ -p 80:80 \
-p 443:443 \
-v /path/to/heimdall/config:/config \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/heimdall:js lscr.io/linuxserver/heimdall:latest
``` ```
## Parameters ## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function | | Parameter | Function |
| :----: | --- | | :----: | --- |
| `-p 3000` | http gui | | `-p 80:80` | http gui |
| `-p 443:443` | https gui |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | Contains all relevant configuration files. | | `-e ALLOW_INTERNAL_REQUESTS=false` | By default, Heimdall blocks lookup requests to private or reserved IP addresses, if your instance is not exposed to the internet, or is behind some level of authentication, you can set this to `true` to allow requests to private IP addresses. |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@@ -135,10 +140,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example: As an example:
```bash ```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword -e FILE__MYVAR=/run/secrets/mysecretvariable
``` ```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications ## Umask for running applications
@@ -147,15 +152,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers ## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
```bash ```bash
$ id username id your_user
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) ```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
``` ```
## Docker Mods ## Docker Mods
@@ -166,53 +176,101 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info ## Support Info
* Shell access whilst the container is running: `docker exec -it heimdall /bin/bash` * Shell access whilst the container is running:
* To monitor the logs of the container in realtime: `docker logs -f heimdall`
* container version number ```bash
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall` docker exec -it heimdall /bin/bash
* image version number ```
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:js`
* To monitor the logs of the container in realtime:
```bash
docker logs -f heimdall
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:latest
```
## Updating Info ## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update all images: `docker-compose pull` * Update images:
* or update a single image: `docker-compose pull heimdall` * All images:
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d heimdall` ```bash
* You can also remove the old dangling images: `docker image prune` docker-compose pull
```
* Single image:
```bash
docker-compose pull heimdall
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d heimdall
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/heimdall:js` * Update the image:
* Stop the running container: `docker stop heimdall`
* Delete the container: `docker rm heimdall` ```bash
docker pull lscr.io/linuxserver/heimdall:latest
```
* Stop the running container:
```bash
docker stop heimdall
```
* Delete the container:
```bash
docker rm heimdall
```
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) * Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images:
### Via Watchtower auto-updater (only use if you don't remember the original parameters) ```bash
docker image prune
* Pull the latest image at its tag and replace it with the same env variables in one run: ```
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once heimdall
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. >[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
@@ -224,20 +282,30 @@ cd docker-heimdall
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t lscr.io/linuxserver/heimdall:js . -t lscr.io/linuxserver/heimdall:latest .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions ## Versions
* **12.04.21:** - Add experimental `js` tag for v3. * **20.07.25:** - Rebase to Alpine 3.22, enable PHP environment passthrough.
* **27.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **07.03.24:** - Enable the opcache and disable file revalidation.
* **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **13.04.23:** - Move ssl.conf include to default.conf.
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **14.11.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **04.11.22:** - Build commits to upstream branch 2.x for the `development` tag.
* **13.03.21:** - Make searchproviders.yaml user configurable.
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel. * **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
* **10.02.21:** - Rebasing to alpine 3.13. * **10.02.21:** - Rebasing to alpine 3.13.
* **17.08.20:** - Add php7-curl. * **17.08.20:** - Add php7-curl.
@@ -260,5 +328,5 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
* **07.10.18:** - Symlink `.env` rather than copy. It now resides under `/config/www` * **07.10.18:** - Symlink `.env` rather than copy. It now resides under `/config/www`
* **30.09.18:** - Multi-arch image. Move `.env` to `/config`. * **30.09.18:** - Multi-arch image. Move `.env` to `/config`.
* **05.09.18:** - Rebase to alpine linux 3.8. * **05.09.18:** - Rebase to alpine linux 3.8.
* **06.03.18:** - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default and restart the container, a new default site config with htpasswd support will be created in its place * **06.03.18:** - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place
* **12.02.18:** - Initial Release. * **12.02.18:** - Initial Release.

View File

@@ -2,14 +2,14 @@
# jenkins variables # jenkins variables
project_name: docker-heimdall project_name: docker-heimdall
external_type: github_commit external_type: github_stable
release_type: prerelease release_type: stable
release_tag: js release_tag: latest
ls_branch: js ls_branch: master
repo_vars: repo_vars:
- EXT_GIT_BRANCH = 'master' - EXT_GIT_BRANCH = '2.x'
- EXT_USER = 'linuxserver' - EXT_USER = 'linuxserver'
- EXT_REPO = 'heimdalljs' - EXT_REPO = 'Heimdall'
- CONTAINER_NAME = 'heimdall' - CONTAINER_NAME = 'heimdall'
- BUILD_VERSION_ARG = 'HEIMDALL_RELEASE' - BUILD_VERSION_ARG = 'HEIMDALL_RELEASE'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
@@ -21,9 +21,9 @@ repo_vars:
- MULTIARCH='true' - MULTIARCH='true'
- CI='true' - CI='true'
- CI_WEB='true' - CI_WEB='true'
- CI_PORT='3000' - CI_PORT='80'
- CI_SSL='false' - CI_SSL='false'
- CI_DELAY='120' - CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific' - CI_DOCKERENV=''
- CI_AUTH='user:password' - CI_AUTH=''
- CI_WEBPATH='' - CI_WEBPATH=''

View File

@@ -1,699 +1,245 @@
NAME VERSION TYPE NAME VERSION TYPE
@mapbox/node-pre-gyp 1.0.3 npm Hidden Input 1, 0, 0, 0 binary
@my-scope/package-a 0.0.0 npm acl-libs 2.3.2-r1 apk
@my-scope/package-b 0.0.0 npm alpine-baselayout 3.7.0-r0 apk
@quasar/extras 1.10.2 npm alpine-baselayout-data 3.7.0-r0 apk
@tokenizer/token 0.3.0 npm alpine-keys 2.5-r0 apk
@types/color-name 1.1.1 npm alpine-release 3.22.3-r0 apk
@types/node 13.13.4 npm apache2-utils 2.4.66-r0 apk
JSONStream 1.3.5 npm apk-tools 2.14.9-r3 apk
abbrev 1.1.1 npm apr 1.7.5-r0 apk
accepts 1.3.7 npm apr-util 1.6.3-r1 apk
agent-base 4.2.1 npm argon2-libs 20190702-r5 apk
agent-base 4.3.0 npm aws/aws-crt-php v1.2.7 php-composer
agent-base 6.0.2 npm aws/aws-sdk-php 3.349.3 php-composer
agentkeepalive 3.5.2 npm barryvdh/laravel-ide-helper v3.5.5 php-composer
ajv 6.12.6 npm barryvdh/reflection-docblock v2.3.1 php-composer
alpine-baselayout 3.2.0-r8 apk bash 5.2.37-r0 apk
alpine-keys 2.4-r0 apk brick/math 0.12.3 php-composer
ansi-align 2.0.0 npm brotli-libs 1.1.0-r2 apk
ansi-escapes 4.3.1 npm busybox 1.37.0-r20 apk
ansi-regex 2.1.1 npm busybox-binsh 1.37.0-r20 apk
ansi-regex 3.0.0 npm c-ares 1.34.6-r0 apk
ansi-regex 4.1.0 npm ca-certificates 20250911-r0 apk
ansi-regex 4.1.1 npm ca-certificates-bundle 20250911-r0 apk
ansi-regex 5.0.0 npm carbonphp/carbon-doctrine-types 3.2.0 php-composer
ansi-styles 3.2.1 npm catatonit 0.2.1-r0 apk
ansi-styles 4.2.1 npm clue/stream-filter v1.7.0 php-composer
ansicolors 0.3.2 npm composer 2.9.5 binary
ansistyles 0.1.3 npm composer/class-map-generator 1.6.1 php-composer
any-promise 1.3.0 npm composer/pcre 3.3.2 php-composer
apk-tools 2.12.7-r0 apk coreutils 9.7-r1 apk
append-field 1.0.0 npm coreutils-env 9.7-r1 apk
aproba 1.2.0 npm coreutils-fmt 9.7-r1 apk
aproba 2.0.0 npm coreutils-sha512sum 9.7-r1 apk
archy 1.0.0 npm curl 8.14.1-r2 apk
are-we-there-yet 1.1.4 npm dflydev/dot-access-data v3.0.3 php-composer
are-we-there-yet 1.1.5 npm doctrine/inflector 2.0.10 php-composer
array-flatten 1.1.1 npm doctrine/lexer 3.0.1 php-composer
asap 2.0.6 npm dragonmantank/cron-expression v3.4.0 php-composer
asn1 0.2.4 npm egulias/email-validator 4.0.4 php-composer
assert-plus 1.0.0 npm enshrined/svg-sanitize 0.21.0 php-composer
asynckit 0.4.0 npm fakerphp/faker v1.24.1 php-composer
aws-sign2 0.7.0 npm filp/whoops 2.18.3 php-composer
aws4 1.11.0 npm findutils 4.10.0-r0 apk
aws4 1.8.0 npm fruitcake/php-cors v1.3.0 php-composer
axios 0.21.1 npm git 2.49.1-r0 apk
balanced-match 1.0.0 npm git-init-template 2.49.1-r0 apk
base32.js 0.0.1 npm graham-campbell/bounded-cache v3.0.0 php-composer
base64-js 1.3.1 npm graham-campbell/github v12.8.0 php-composer
bash 5.1.16-r0 apk graham-campbell/manager v5.2.0 php-composer
basic-auth 2.0.1 npm graham-campbell/result-type v1.1.3 php-composer
bcrypt 5.0.1 npm guzzlehttp/guzzle 7.9.3 php-composer
bcrypt-pbkdf 1.0.2 npm guzzlehttp/promises 2.2.0 php-composer
bin-links 1.1.8 npm guzzlehttp/psr7 2.7.1 php-composer
bl 4.0.3 npm guzzlehttp/uri-template v1.0.4 php-composer
block-stream 0.0.9 npm hamcrest/hamcrest-php v2.1.1 php-composer
bluebird 3.5.5 npm icu-data-en 76.1-r1 apk
bluebird 3.7.2 npm icu-libs 76.1-r1 apk
body-parser 1.19.0 npm jq 1.8.1-r0 apk
boxen 1.3.0 npm knplabs/github-api v3.16.0 php-composer
brace-expansion 1.1.11 npm laravel/framework v11.45.1 php-composer
brotli-libs 1.0.9-r3 apk laravel/prompts v0.3.6 php-composer
buffer 5.4.3 npm laravel/serializable-closure v2.0.4 php-composer
buffer 5.6.0 npm laravel/tinker v2.10.1 php-composer
buffer-alloc 1.2.0 npm laravel/ui v4.6.1 php-composer
buffer-alloc-unsafe 1.1.0 npm lcobucci/jwt 5.5.0 php-composer
buffer-equal-constant-time 1.0.1 npm league/commonmark 2.7.0 php-composer
buffer-fill 1.0.0 npm league/config v1.2.0 php-composer
buffer-from 1.0.0 npm league/flysystem 3.30.0 php-composer
buffer-from 1.1.1 npm league/flysystem-aws-s3-v3 3.29.0 php-composer
builtins 1.0.3 npm league/flysystem-local 3.30.0 php-composer
busboy 0.2.14 npm league/mime-type-detection 1.16.0 php-composer
busybox 1.32.1 binary league/uri 7.5.1 php-composer
busybox 1.32.1-r9 apk league/uri-interfaces 7.5.0 php-composer
byline 5.0.0 npm libapk2 2.14.9-r3 apk
byte-size 5.0.1 npm libattr 2.5.2-r2 apk
bytes 3.1.0 npm libbsd 0.12.2-r0 apk
c-ares 1.17.2-r0 apk libbz2 1.0.8-r6 apk
ca-certificates 20220614-r0 apk libcrypto3 3.5.5-r0 apk
ca-certificates-bundle 20220614-r0 apk libcurl 8.14.1-r2 apk
cacache 12.0.3 npm libedit 20250104.3.1-r1 apk
call-limit 1.1.1 npm libexpat 2.7.5-r0 apk
camelcase 4.1.0 npm libgcc 14.2.0-r6 apk
camelcase 5.3.1 npm libidn2 2.3.7-r0 apk
capture-stack-trace 1.0.0 npm libintl 0.24.1-r0 apk
caseless 0.12.0 npm libmd 1.1.0-r0 apk
chalk 2.4.1 npm libncursesw 6.5_p20250503-r0 apk
chalk 4.1.0 npm libpq 17.9-r0 apk
chardet 0.7.0 npm libproc2 4.0.4-r3 apk
chownr 1.1.4 npm libpsl 0.21.5-r3 apk
chownr 2.0.0 npm libssl3 3.5.5-r0 apk
ci-info 1.6.0 npm libstdc++ 14.2.0-r6 apk
ci-info 2.0.0 npm libunistring 1.3-r0 apk
cidr-regex 2.0.10 npm libuuid 2.41-r9 apk
cli-boxes 1.0.0 npm libxml2 2.13.9-r0 apk
cli-color 1.4.0 npm libzip 1.11.4-r0 apk
cli-columns 3.1.2 npm linux-pam 1.7.0-r4 apk
cli-cursor 3.1.0 npm logrotate 3.21.0-r1 apk
cli-table3 0.5.1 npm mockery/mockery 1.6.12 php-composer
cli-width 3.0.0 npm monolog/monolog 3.9.0 php-composer
cliui 5.0.0 npm mtdowling/jmespath.php 2.8.0 php-composer
clone 1.0.4 npm musl 1.2.5-r10 apk
cmd-shim 3.0.3 npm musl-utils 1.2.5-r10 apk
code-point-at 1.1.0 npm myclabs/deep-copy 1.13.3 php-composer
color-convert 1.9.1 npm nano 8.4-r0 apk
color-convert 1.9.3 npm ncurses-terminfo-base 6.5_p20250503-r0 apk
color-convert 2.0.1 npm nesbot/carbon 3.10.1 php-composer
color-name 1.1.3 npm netcat-openbsd 1.229.1-r0 apk
color-name 1.1.4 npm nette/schema v1.3.2 php-composer
colors 1.3.3 npm nette/utils v4.0.7 php-composer
columnify 1.5.4 npm nghttp2-libs 1.65.0-r0 apk
combined-stream 1.0.6 npm nginx 1.28.3-r0 apk
combined-stream 1.0.8 npm nikic/php-parser v5.5.0 php-composer
commander 2.20.3 npm nunomaduro/collision v8.5.0 php-composer
concat-map 0.0.1 npm nunomaduro/termwind v2.3.1 php-composer
concat-stream 1.6.2 npm oniguruma 6.9.10-r0 apk
config-chain 1.1.12 npm openssl 3.5.5-r0 apk
configstore 3.1.5 npm pcre2 10.46-r0 apk
console-control-strings 1.1.0 npm phar-io/manifest 2.0.4 php-composer
content-disposition 0.5.3 npm phar-io/version 3.2.1 php-composer
content-type 1.0.4 npm php-http/cache-plugin 2.0.1 php-composer
cookie 0.4.0 npm php-http/client-common 2.7.2 php-composer
cookie-parser 1.4.5 npm php-http/discovery 1.20.0 php-composer
cookie-signature 1.0.6 npm php-http/httplug 2.4.1 php-composer
copy-concurrently 1.0.5 npm php-http/message 1.16.2 php-composer
core-js 3.10.1 npm php-http/multipart-stream-builder 1.4.2 php-composer
core-util-is 1.0.2 npm php-http/promise 1.3.1 php-composer
coreutils 8.32-r2 apk php84 8.4.16-r0 apk
cors 2.8.5 npm php84-common 8.4.16-r0 apk
create-error-class 3.0.2 npm php84-ctype 8.4.16-r0 apk
cross-spawn 5.1.0 npm php84-curl 8.4.16-r0 apk
crypto-random-string 1.0.0 npm php84-dom 8.4.16-r0 apk
curl 7.79.1-r3 apk php84-fileinfo 8.4.16-r0 apk
cyclist 0.2.2 npm php84-fpm 8.4.16-r0 apk
d 1.0.1 npm php84-iconv 8.4.16-r0 apk
dashdash 1.14.1 npm php84-intl 8.4.16-r0 apk
debug 2.6.9 npm php84-mbstring 8.4.16-r0 apk
debug 3.1.0 npm php84-mysqlnd 8.4.16-r0 apk
debug 3.2.7 npm php84-opcache 8.4.16-r0 apk
debug 4.3.1 npm php84-openssl 8.4.16-r0 apk
debuglog 1.0.1 npm php84-pdo 8.4.16-r0 apk
decamelize 1.2.0 npm php84-pdo_mysql 8.4.16-r0 apk
decode-uri-component 0.2.0 npm php84-pdo_pgsql 8.4.16-r0 apk
deep-extend 0.6.0 npm php84-pdo_sqlite 8.4.16-r0 apk
defaults 1.0.3 npm php84-phar 8.4.16-r0 apk
define-properties 1.1.3 npm php84-session 8.4.16-r0 apk
delayed-stream 1.0.0 npm php84-simplexml 8.4.16-r0 apk
delegates 1.0.0 npm php84-tokenizer 8.4.16-r0 apk
denque 1.5.1 npm php84-xml 8.4.16-r0 apk
depd 1.1.2 npm php84-xmlwriter 8.4.16-r0 apk
depd 2.0.0 npm php84-zip 8.4.16-r0 apk
destroy 1.0.4 npm phpoption/phpoption 1.9.3 php-composer
detect-indent 5.0.0 npm phpunit/php-code-coverage 10.1.16 php-composer
detect-libc 1.0.3 npm phpunit/php-file-iterator 4.1.0 php-composer
detect-newline 2.1.0 npm phpunit/php-invoker 4.0.0 php-composer
dezalgo 1.0.3 npm phpunit/php-text-template 3.0.1 php-composer
dicer 0.2.5 npm phpunit/php-timer 6.0.0 php-composer
dijkstrajs 1.0.1 npm phpunit/phpunit 10.5.47 php-composer
docker-modem 2.1.4 npm popt 1.19-r4 apk
dockerode 3.2.1 npm procps-ng 4.0.4-r3 apk
dot-prop 4.2.1 npm psr/cache 3.0.0 php-composer
dotenv 5.0.1 npm psr/clock 1.0.0 php-composer
dotenv 8.2.0 npm psr/container 2.0.2 php-composer
dottie 2.0.2 npm psr/event-dispatcher 1.0.0 php-composer
duplexer3 0.1.4 npm psr/http-client 1.0.3 php-composer
duplexify 3.6.0 npm psr/http-factory 1.1.0 php-composer
ecc-jsbn 0.1.2 npm psr/http-message 2.0 php-composer
ecdsa-sig-formatter 1.0.11 npm psr/log 3.0.2 php-composer
editor 1.0.0 npm psr/simple-cache 3.0.0 php-composer
editorconfig 0.15.3 npm psy/psysh v0.12.9 php-composer
ee-first 1.1.1 npm ralouphie/getallheaders 3.0.3 php-composer
emoji-regex 7.0.3 npm ramsey/collection 2.1.1 php-composer
emoji-regex 8.0.0 npm ramsey/uuid 4.9.0 php-composer
encodeurl 1.0.2 npm readline 8.2.13-r1 apk
encoding 0.1.12 npm scanelf 1.3.8-r1 apk
end-of-stream 1.4.1 npm sebastian/cli-parser 2.0.1 php-composer
end-of-stream 1.4.4 npm sebastian/code-unit 2.0.0 php-composer
env-paths 2.2.0 npm sebastian/code-unit-reverse-lookup 3.0.0 php-composer
err-code 1.1.2 npm sebastian/comparator 5.0.3 php-composer
errno 0.1.7 npm sebastian/complexity 3.2.0 php-composer
es-abstract 1.12.0 npm sebastian/diff 5.1.1 php-composer
es-to-primitive 1.2.0 npm sebastian/environment 6.1.0 php-composer
es5-ext 0.10.53 npm sebastian/exporter 5.1.2 php-composer
es6-iterator 2.0.3 npm sebastian/global-state 6.0.2 php-composer
es6-promise 4.2.8 npm sebastian/lines-of-code 2.0.2 php-composer
es6-promisify 5.0.0 npm sebastian/object-enumerator 5.0.0 php-composer
es6-symbol 3.1.3 npm sebastian/object-reflector 3.0.0 php-composer
es6-weak-map 2.0.3 npm sebastian/recursion-context 5.0.0 php-composer
escape-html 1.0.3 npm sebastian/type 4.0.0 php-composer
escape-string-regexp 1.0.5 npm sebastian/version 4.0.1 php-composer
etag 1.8.1 npm shadow 4.17.3-r0 apk
event-emitter 0.3.5 npm skalibs-libs 2.14.4.0-r0 apk
execa 0.7.0 npm spatie/backtrace 1.7.4 php-composer
express 4.17.1 npm spatie/error-solutions 1.1.3 php-composer
ext 1.4.0 npm spatie/flare-client-php 1.10.1 php-composer
extend 3.0.2 npm spatie/ignition 1.15.1 php-composer
external-editor 3.1.0 npm spatie/laravel-html 3.12.0 php-composer
extsprintf 1.3.0 npm spatie/laravel-ignition 2.9.1 php-composer
fast-deep-equal 3.1.1 npm sqlite-libs 3.49.2-r1 apk
fast-deep-equal 3.1.3 npm squizlabs/php_codesniffer 3.13.2 php-composer
fast-json-stable-stringify 2.0.0 npm ssl_client 1.37.0-r20 apk
fast-json-stable-stringify 2.1.0 npm symfony/cache v7.3.1 php-composer
figgy-pudding 3.5.1 npm symfony/cache-contracts v3.6.0 php-composer
figures 3.2.0 npm symfony/clock v7.3.0 php-composer
file-type 16.5.3 npm symfony/console v7.3.1 php-composer
finalhandler 1.1.2 npm symfony/css-selector v7.3.0 php-composer
find-npm-prefix 1.0.2 npm symfony/deprecation-contracts v3.6.0 php-composer
find-up 3.0.0 npm symfony/error-handler v7.3.1 php-composer
flush-write-stream 1.0.3 npm symfony/event-dispatcher v7.3.0 php-composer
follow-redirects 1.13.0 npm symfony/event-dispatcher-contracts v3.6.0 php-composer
forever-agent 0.6.1 npm symfony/finder v7.3.0 php-composer
form-data 2.3.2 npm symfony/http-foundation v7.3.1 php-composer
form-data 2.3.3 npm symfony/http-kernel v7.3.1 php-composer
forwarded 0.1.2 npm symfony/mailer v7.3.1 php-composer
fresh 0.5.2 npm symfony/mime v7.3.0 php-composer
from2 1.3.0 npm symfony/options-resolver v7.3.0 php-composer
from2 2.3.0 npm symfony/polyfill-ctype v1.32.0 php-composer
fs-constants 1.0.0 npm symfony/polyfill-intl-grapheme v1.32.0 php-composer
fs-extra 7.0.1 npm symfony/polyfill-intl-idn v1.32.0 php-composer
fs-minipass 1.2.7 npm symfony/polyfill-intl-normalizer v1.32.0 php-composer
fs-minipass 2.1.0 npm symfony/polyfill-mbstring v1.32.0 php-composer
fs-vacuum 1.2.10 npm symfony/polyfill-php80 v1.32.0 php-composer
fs-write-stream-atomic 1.0.10 npm symfony/polyfill-php83 v1.32.0 php-composer
fs.realpath 1.0.0 npm symfony/polyfill-uuid v1.32.0 php-composer
fstream 1.0.12 npm symfony/process v7.3.0 php-composer
function-bind 1.1.1 npm symfony/routing v7.3.0 php-composer
gauge 2.7.4 npm symfony/service-contracts v3.6.0 php-composer
generate-function 2.3.1 npm symfony/string v7.3.0 php-composer
genfun 5.0.0 npm symfony/thanks v1.4.0 php-composer
gentle-fs 2.3.1 npm symfony/translation v7.3.1 php-composer
get-caller-file 2.0.5 npm symfony/translation-contracts v3.6.0 php-composer
get-stream 3.0.0 npm symfony/uid v7.3.1 php-composer
get-stream 4.1.0 npm symfony/var-dumper v7.3.1 php-composer
getpass 0.1.7 npm symfony/var-exporter v7.3.0 php-composer
glob 7.1.6 npm symfony/yaml v7.3.1 php-composer
global-dirs 0.1.1 npm theseer/tokenizer 1.2.3 php-composer
got 6.7.1 npm tijsverkoyen/css-to-inline-styles v2.3.0 php-composer
graceful-fs 4.2.3 npm tzdata 2026a-r0 apk
graceful-fs 4.2.4 npm utmps-libs 0.1.3.1-r0 apk
har-schema 2.0.0 npm vlucas/phpdotenv v5.6.2 php-composer
har-validator 5.1.5 npm voku/portable-ascii 2.0.3 php-composer
has 1.0.3 npm webmozart/assert 1.11.0 php-composer
has-flag 3.0.0 npm xz-libs 5.8.1-r0 apk
has-flag 4.0.0 npm zlib 1.3.1-r2 apk
has-symbols 1.0.0 npm zstd-libs 1.5.7-r0 apk
has-unicode 2.0.1 npm
heimdall 3.0.0 npm
hosted-git-info 2.8.9 npm
http-cache-semantics 3.8.1 npm
http-errors 1.7.2 npm
http-proxy-agent 2.1.0 npm
http-signature 1.2.0 npm
https-proxy-agent 2.2.4 npm
https-proxy-agent 5.0.0 npm
humanize-ms 1.2.1 npm
iconv-lite 0.4.23 npm
iconv-lite 0.4.24 npm
iconv-lite 0.6.3 npm
ieee754 1.2.1 npm
iferr 0.1.5 npm
iferr 1.0.2 npm
ignore-walk 3.0.3 npm
import-lazy 2.1.0 npm
imurmurhash 0.1.4 npm
infer-owner 1.0.4 npm
inflection 1.12.0 npm
inflight 1.0.6 npm
inherits 2.0.3 npm
inherits 2.0.4 npm
ini 1.3.8 npm
init-package-json 1.10.3 npm
inquirer 7.3.3 npm
ip 1.1.5 npm
ip-regex 2.1.0 npm
ipaddr.js 1.9.0 npm
is-callable 1.1.4 npm
is-ci 1.2.1 npm
is-cidr 3.0.0 npm
is-date-object 1.0.1 npm
is-fullwidth-code-point 1.0.0 npm
is-fullwidth-code-point 2.0.0 npm
is-fullwidth-code-point 3.0.0 npm
is-installed-globally 0.1.0 npm
is-npm 1.0.0 npm
is-obj 1.0.1 npm
is-path-inside 1.0.1 npm
is-promise 2.2.2 npm
is-property 1.0.2 npm
is-redirect 1.0.0 npm
is-regex 1.0.4 npm
is-retry-allowed 1.2.0 npm
is-stream 1.1.0 npm
is-symbol 1.0.2 npm
is-typedarray 1.0.0 npm
isarray 0.0.1 npm
isarray 1.0.0 npm
isarray 2.0.5 npm
isexe 2.0.0 npm
isstream 0.1.2 npm
js-beautify 1.13.0 npm
jsbn 0.1.1 npm
json-parse-better-errors 1.0.2 npm
json-schema 0.2.3 npm
json-schema 0.4.0 npm
json-schema-traverse 0.4.1 npm
json-stringify-safe 5.0.1 npm
jsonfile 4.0.0 npm
jsonparse 1.3.1 npm
jsonwebtoken 8.5.1 npm
jsprim 1.4.1 npm
jsprim 1.4.2 npm
jwa 1.4.1 npm
jws 3.2.2 npm
latest-version 3.1.0 npm
lazy-property 1.0.0 npm
libacl 2.2.53-r0 apk
libattr 2.4.48-r0 apk
libc-utils 0.7.2-r3 apk
libcipm 4.0.8 npm
libcrypto1.1 1.1.1s-r0 apk
libcurl 7.79.1-r3 apk
libgcc 10.2.1_pre1-r3 apk
libintl 0.20.2-r2 apk
libnpm 3.0.1 npm
libnpmaccess 3.0.2 npm
libnpmconfig 1.2.1 npm
libnpmhook 5.0.3 npm
libnpmorg 1.0.1 npm
libnpmpublish 1.1.2 npm
libnpmsearch 2.0.2 npm
libnpmteam 1.0.2 npm
libnpx 10.2.4 npm
libproc 3.3.16-r0 apk
libssl1.1 1.1.1s-r0 apk
libstdc++ 10.2.1_pre1-r3 apk
libtls-standalone 2.9.1-r1 apk
linux-pam 1.5.1-r0 apk
locate-path 3.0.0 npm
lock-verify 2.1.0 npm
lockfile 1.0.4 npm
lodash 4.17.21 npm
lodash._baseindexof 3.1.0 npm
lodash._baseuniq 4.6.0 npm
lodash._bindcallback 3.0.1 npm
lodash._cacheindexof 3.0.2 npm
lodash._createcache 3.1.2 npm
lodash._createset 4.0.3 npm
lodash._getnative 3.9.1 npm
lodash._root 3.0.1 npm
lodash.clonedeep 4.5.0 npm
lodash.includes 4.3.0 npm
lodash.isboolean 3.0.3 npm
lodash.isinteger 4.0.4 npm
lodash.isnumber 3.0.3 npm
lodash.isplainobject 4.0.6 npm
lodash.isstring 4.0.1 npm
lodash.once 4.1.1 npm
lodash.restparam 3.6.1 npm
lodash.union 4.6.0 npm
lodash.uniq 4.5.0 npm
lodash.without 4.4.0 npm
long 4.0.0 npm
lowercase-keys 1.0.1 npm
lru-cache 4.1.5 npm
lru-cache 5.1.1 npm
lru-cache 6.0.0 npm
lru-queue 0.1.0 npm
make-dir 1.3.0 npm
make-dir 3.1.0 npm
make-fetch-happen 5.0.2 npm
meant 1.0.2 npm
media-typer 0.3.0 npm
memoizee 0.4.14 npm
merge-descriptors 1.0.1 npm
methods 1.1.2 npm
mime 1.6.0 npm
mime-db 1.35.0 npm
mime-db 1.47.0 npm
mime-types 2.1.19 npm
mime-types 2.1.30 npm
mimic-fn 2.1.0 npm
minimatch 3.0.4 npm
minimist 1.2.5 npm
minimist 1.2.6 npm
minipass 2.9.0 npm
minipass 3.1.3 npm
minizlib 1.3.3 npm
minizlib 2.1.2 npm
mississippi 3.0.0 npm
mkdirp 0.5.5 npm
mkdirp 1.0.4 npm
mkdirp-classic 0.5.3 npm
moment 2.29.1 npm
moment-timezone 0.5.33 npm
monorepo-symlink-test 0.0.0 npm
morgan 1.10.0 npm
move-concurrently 1.0.1 npm
ms 2.0.0 npm
ms 2.1.1 npm
ms 2.1.2 npm
ms 2.1.3 npm
multer 1.4.2 npm
musl 1.2.2-r1 apk
musl-utils 1.2.2-r1 apk
mute-stream 0.0.7 npm
mute-stream 0.0.8 npm
mylib 0.0.0 npm
mysql2 2.3.0 npm
named-placeholders 1.1.2 npm
ncurses-libs 6.2_p20210109-r1 apk
ncurses-terminfo-base 6.2_p20210109-r1 apk
needle 2.6.0 npm
negotiator 0.6.2 npm
next-tick 1.0.0 npm
nghttp2-libs 1.42.0-r1 apk
node 14.20.1 binary
node-addon-api 3.1.0 npm
node-fetch 2.6.1 npm
node-fetch-npm 2.0.2 npm
node-gyp 3.8.0 npm
node-gyp 5.1.0 npm
node-pre-gyp 0.11.0 npm
nodejs 14.20.1-r0 apk
nopt 3.0.6 npm
nopt 4.0.3 npm
nopt 5.0.0 npm
normalize-package-data 2.5.0 npm
npm 14.20.1-r0 apk
npm 6.14.17 npm
npm-audit-report 1.3.3 npm
npm-bundled 1.1.1 npm
npm-cache-filename 1.0.2 npm
npm-init 0.0.0 npm
npm-install-checks 3.0.2 npm
npm-lifecycle 3.1.5 npm
npm-logical-tree 1.2.1 npm
npm-normalize-package-bin 1.0.1 npm
npm-package-arg 6.1.1 npm
npm-packlist 1.4.8 npm
npm-pick-manifest 3.0.2 npm
npm-profile 4.0.4 npm
npm-registry-fetch 4.0.7 npm
npm-run-path 2.0.2 npm
npm-user-validate 1.0.1 npm
npmlog 4.1.2 npm
number-is-nan 1.0.1 npm
nw-pre-gyp-module-test 0.0.1 npm
oauth-sign 0.9.0 npm
object-assign 4.1.1 npm
object-keys 1.0.12 npm
object.getownpropertydescriptors 2.0.3 npm
on-finished 2.3.0 npm
on-headers 1.0.2 npm
once 1.4.0 npm
onetime 5.1.0 npm
opener 1.5.2 npm
os-homedir 1.0.2 npm
os-tmpdir 1.0.2 npm
osenv 0.1.5 npm
p-finally 1.0.0 npm
p-limit 2.2.0 npm
p-limit 2.2.2 npm
p-limit 2.3.0 npm
p-locate 3.0.0 npm
p-try 2.2.0 npm
package-json 4.0.1 npm
pacote 9.5.12 npm
parallel-transform 1.1.0 npm
parseurl 1.3.3 npm
passport 0.4.1 npm
passport-jwt 4.0.0 npm
passport-strategy 1.0.0 npm
path-exists 3.0.0 npm
path-is-absolute 1.0.1 npm
path-is-inside 1.0.2 npm
path-key 2.0.1 npm
path-parse 1.0.6 npm
path-parse 1.0.7 npm
path-to-regexp 0.1.7 npm
pause 0.0.1 npm
peek-readable 4.0.1 npm
performance-now 2.1.0 npm
pify 3.0.0 npm
pngjs 3.4.0 npm
prepend-http 1.0.4 npm
process-nextick-args 2.0.0 npm
process-nextick-args 2.0.1 npm
procps 3.3.16-r0 apk
promise-inflight 1.0.1 npm
promise-retry 1.1.1 npm
promzard 0.3.0 npm
proto-list 1.2.4 npm
protoduck 5.0.1 npm
proxy-addr 2.0.5 npm
prr 1.0.1 npm
pseudomap 1.0.2 npm
psl 1.1.29 npm
psl 1.8.0 npm
pump 2.0.1 npm
pump 3.0.0 npm
pumpify 1.5.1 npm
punycode 1.4.1 npm
punycode 2.1.1 npm
qrcode 1.4.4 npm
qrcode-terminal 0.12.0 npm
qs 6.5.2 npm
qs 6.7.0 npm
quasar 1.15.10 npm
query-string 6.8.2 npm
qw 1.0.1 npm
range-parser 1.2.1 npm
raw-body 2.4.0 npm
rc 1.2.8 npm
read 1.0.7 npm
read-cmd-shim 1.0.5 npm
read-installed 4.0.3 npm
read-package-json 2.1.1 npm
read-package-tree 5.3.1 npm
readable-stream 1.1.14 npm
readable-stream 2.3.6 npm
readable-stream 2.3.7 npm
readable-stream 3.6.0 npm
readable-web-to-node-stream 3.0.2 npm
readdir-scoped-modules 1.1.0 npm
readline 8.1.0-r0 apk
registry-auth-token 3.4.0 npm
registry-url 3.1.0 npm
request 2.88.0 npm
request 2.88.2 npm
require-directory 2.1.1 npm
require-main-filename 2.0.0 npm
resolve 1.10.0 npm
resolve 1.15.1 npm
resolve-from 4.0.0 npm
restore-cursor 3.1.0 npm
retry 0.10.1 npm
retry 0.12.0 npm
retry-as-promised 3.2.0 npm
rimraf 2.7.1 npm
rimraf 3.0.2 npm
run-async 2.4.1 npm
run-queue 1.0.3 npm
rxjs 6.6.2 npm
s6-ipcserver 2.10.0.0-r0 apk
safe-buffer 5.1.2 npm
safe-buffer 5.2.0 npm
safe-buffer 5.2.1 npm
safer-buffer 2.1.2 npm
sax 1.2.4 npm
scanelf 1.2.8-r0 apk
semver 5.3.0 npm
semver 5.7.1 npm
semver 6.3.0 npm
semver 7.3.5 npm
semver-diff 2.1.0 npm
send 0.17.1 npm
seq-queue 0.0.5 npm
sequelize 6.6.2 npm
sequelize-cli 6.2.0 npm
sequelize-pool 6.1.0 npm
serve-static 1.14.1 npm
set-blocking 2.0.0 npm
setprototypeof 1.1.1 npm
sha 3.0.0 npm
shadow 4.8.1-r0 apk
shebang-command 1.2.0 npm
shebang-regex 1.0.0 npm
sigmund 1.0.1 npm
signal-exit 3.0.2 npm
skalibs 2.10.0.0-r0 apk
slide 1.1.6 npm
smart-buffer 4.1.0 npm
socks 2.3.3 npm
socks-proxy-agent 4.0.2 npm
sortablejs 1.10.2 npm
sorted-object 2.0.1 npm
sorted-union-stream 2.1.3 npm
spdx-correct 3.0.0 npm
spdx-exceptions 2.1.0 npm
spdx-expression-parse 3.0.0 npm
spdx-license-ids 3.0.5 npm
speakeasy 2.0.0 npm
split-ca 1.0.1 npm
split-on-first 1.1.0 npm
sqlite3 5.0.2 npm
sqlstring 2.3.2 npm
ssh2 0.8.9 npm
ssh2-streams 0.4.10 npm
sshpk 1.14.2 npm
sshpk 1.16.1 npm
ssl_client 1.32.1-r9 apk
ssri 6.0.2 npm
statuses 1.5.0 npm
stream-each 1.2.2 npm
stream-iterate 1.2.0 npm
stream-shift 1.0.0 npm
streamsearch 0.1.2 npm
strict-uri-encode 2.0.0 npm
string-width 1.0.2 npm
string-width 2.1.1 npm
string-width 3.1.0 npm
string-width 4.2.0 npm
string_decoder 0.10.31 npm
string_decoder 1.1.1 npm
string_decoder 1.3.0 npm
stringify-package 1.0.1 npm
strip-ansi 3.0.1 npm
strip-ansi 4.0.0 npm
strip-ansi 5.2.0 npm
strip-ansi 6.0.0 npm
strip-eof 1.0.0 npm
strip-json-comments 2.0.1 npm
strtok3 6.2.4 npm
supports-color 5.4.0 npm
supports-color 7.2.0 npm
tar 2.2.2 npm
tar 4.4.13 npm
tar 4.4.19 npm
tar 6.1.0 npm
tar-fs 2.0.1 npm
tar-stream 2.1.2 npm
term-size 1.2.0 npm
text-table 0.2.0 npm
through 2.3.8 npm
through2 2.0.3 npm
timed-out 4.0.1 npm
timers-ext 0.1.7 npm
tiny-relative-date 1.3.0 npm
tmp 0.0.33 npm
toidentifier 1.0.0 npm
token-types 4.1.1 npm
toposort-class 1.0.1 npm
tough-cookie 2.4.3 npm
tough-cookie 2.5.0 npm
tslib 1.10.0 npm
tunnel-agent 0.6.0 npm
tweetnacl 0.14.5 npm
type 1.2.0 npm
type 2.1.0 npm
type-fest 0.11.0 npm
type-is 1.6.18 npm
typedarray 0.0.6 npm
tzdata 2022f-r1 apk
uid-number 0.0.6 npm
umask 1.1.0 npm
umzug 2.3.0 npm
unique-filename 1.1.1 npm
unique-slug 2.0.0 npm
unique-string 1.0.0 npm
universalify 0.1.2 npm
unpipe 1.0.0 npm
unzip-response 2.0.1 npm
update-notifier 2.5.0 npm
uri-js 4.2.2 npm
uri-js 4.4.0 npm
url-parse-lax 1.0.0 npm
util-deprecate 1.0.2 npm
util-extend 1.0.3 npm
util-promisify 2.1.0 npm
utils-merge 1.0.1 npm
utmps 0.1.0.0-r0 apk
uuid 3.3.3 npm
uuid 3.4.0 npm
uuid 8.3.2 npm
validate-npm-package-license 3.0.4 npm
validate-npm-package-name 3.0.0 npm
validator 10.11.0 npm
vary 1.1.2 npm
verror 1.10.0 npm
vue-async-computed 3.9.0 npm
vue-i18n 8.24.3 npm
vuedraggable 2.24.3 npm
wcwidth 1.0.1 npm
which 1.3.1 npm
which-module 2.0.0 npm
wide-align 1.1.2 npm
wide-align 1.1.3 npm
widest-line 2.0.1 npm
wkx 0.5.0 npm
worker-farm 1.7.0 npm
wrap-ansi 5.1.0 npm
wrappy 1.0.2 npm
write-file-atomic 2.4.3 npm
xdg-basedir 3.0.0 npm
xtend 4.0.1 npm
xtend 4.0.2 npm
xz 5.2.5-r1 apk
xz-libs 5.2.5-r1 apk
y18n 4.0.1 npm
y18n 4.0.3 npm
yallist 2.1.2 npm
yallist 3.0.3 npm
yallist 3.1.1 npm
yallist 4.0.0 npm
yargs 13.3.0 npm
yargs 14.2.3 npm
yargs-parser 13.1.2 npm
yargs-parser 15.0.1 npm
zlib 1.2.12-r3 apk

View File

@@ -4,72 +4,132 @@
project_name: heimdall project_name: heimdall
project_url: "https://heimdall.site" project_url: "https://heimdall.site"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png"
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a way to organise all those links to your most used web sites and web applications in a simple way. project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) is a way to organise all those links to your most used web sites and web applications in a simple way.
Simplicity is the key to Heimdall. Simplicity is the key to Heimdall.
Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo." Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Dashboard"
# supported architectures # supported architectures
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
development_versions: true development_versions: true
development_versions_items: development_versions_items:
- { tag: "latest", desc: "Stable Heimdall releases." } - {tag: "latest", desc: "Stable Heimdall releases."}
- { tag: "development", desc: "Latest commit from the github master branch." } - {tag: "development", desc: "Latest commit from the github 2.x branch."}
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." } - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "3000", internal_port: "3000", port_desc: "http gui" } - {external_port: "80", internal_port: "80", port_desc: "http gui"}
param_usage_include_env: true - {external_port: "443", internal_port: "443", port_desc: "https gui"}
param_env_vars: opt_param_usage_include_env: true
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"} opt_param_env_vars:
- {env_var: "ALLOW_INTERNAL_REQUESTS", env_value: "false", desc: "By default, Heimdall blocks lookup requests to private or reserved IP addresses, if your instance is not exposed to the internet, or is behind some level of authentication, you can set this to `true` to allow requests to private IP addresses."}
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection ### Adding password protection
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. New installs will automatically pick it up and implement password protected access. Existing users updating their image can delete their site config at `/config/nginx/site-confs/default` and restart the container after updating the image. A new site config with htpasswd support will be created in its place.
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container.
# init diagram
init_diagram: |
"heimdall:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-nginx-end -> init-config
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-heimdall-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-nginx-end -> init-heimdall-config
init-php -> init-keygen
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-permissions -> init-version-checks
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-php-fpm
svc-php-fpm -> legacy-services
init-services -> svc-queue
svc-queue -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
}
"heimdall:latest" <- Base Images
# changelog # changelog
changelogs: changelogs:
- { date: "12.04.21:", desc: "Add experimental `js` tag for v3." } - {date: "20.07.25:", desc: "Rebase to Alpine 3.22, enable PHP environment passthrough."}
- { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." } - {date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- { date: "10.02.21:", desc: "Rebasing to alpine 3.13." } - {date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."}
- { date: "17.08.20:", desc: "Add php7-curl." } - {date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- { date: "01.06.20:", desc: "Rebasing to alpine 3.12." } - {date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- { date: "17.01.20:", desc: "Use nginx from baseimage." } - {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." } - {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."}
- { date: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall." } - {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." } - {date: "14.11.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: "01.04.19:", desc: "Fix permission detect logic." } - {date: "04.11.22:", desc: "Build commits to upstream branch 2.x for the `development` tag."}
- { date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown." } - {date: "13.03.21:", desc: "Make searchproviders.yaml user configurable."}
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." } - {date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel."}
- { date: "15.03.19:", desc: "Clarify docker image tags in readme." } - {date: "10.02.21:", desc: "Rebasing to alpine 3.13."}
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." } - {date: "17.08.20:", desc: "Add php7-curl."}
- { date: "16.01.18:", desc: "Generate random app key in .env for new installs." } - {date: "01.06.20:", desc: "Rebasing to alpine 3.12."}
- { date: "20.11.18:", desc: "Upgrade baseimage packages during build." } - {date: "17.01.20:", desc: "Use nginx from baseimage."}
- { date: "04.11.18:", desc: "Add php7-zip." } - {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
- { date: "31.10.18:", desc: "Add queue service." } - {date: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall."}
- { date: "17.10.18:", desc: "Symlink avatars folder." } - {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
- { date: "16.10.18:", desc: "Updated fastcgi_params for user login support." } - {date: "01.04.19:", desc: "Fix permission detect logic."}
- { date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`" } - {date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown."}
- { date: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`." } - {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- { date: "05.09.18:", desc: "Rebase to alpine linux 3.8." } - {date: "15.03.19:", desc: "Clarify docker image tags in readme."}
- { date: "06.03.18:", desc: "Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default and restart the container, a new default site config with htpasswd support will be created in its place" } - {date: "22.02.19:", desc: "Rebasing to alpine 3.9."}
- { date: "12.02.18:", desc: "Initial Release." } - {date: "16.01.18:", desc: "Generate random app key in .env for new installs."}
- {date: "20.11.18:", desc: "Upgrade baseimage packages during build."}
- {date: "04.11.18:", desc: "Add php7-zip."}
- {date: "31.10.18:", desc: "Add queue service."}
- {date: "17.10.18:", desc: "Symlink avatars folder."}
- {date: "16.10.18:", desc: "Updated fastcgi_params for user login support."}
- {date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`"}
- {date: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`."}
- {date: "05.09.18:", desc: "Rebase to alpine linux 3.8."}
- {date: "06.03.18:", desc: "Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place"}
- {date: "12.02.18:", desc: "Initial Release."}

View File

@@ -1,32 +0,0 @@
#!/usr/bin/with-contenv bash
mkdir -p /config/uploads
if [ ! -f "/config/env" ]; then
cp /app/heimdall/.env.example /config/env
rm -rf /app/heimdall/.env
ln -sf /config/env /app/heimdall/.env
SECRET_KEY=$(date +%s | sha256sum | base64 | head -c 32)
sed -i 's|JWT_SECRET=CHANGE_ME|JWT_SECRET='${SECRET_KEY}'|g' /config/env
sed -i 's|DB_TYPE=mysql|DB_TYPE=sqlite|g' /config/env
sed -i 's|DB_STORAGE=$|DB_STORAGE=/config/app.db|g' /config/env
sed -i 's|UPLOAD_DIR=$|UPLOAD_DIR=/config/uploads|g' /config/env
echo "Running migrations. . ."
cd /app/heimdall
npm run db:migrate
npm run db:seed
else
cd /app/heimdall
npm run db:migrate
fi
# permissions
echo "Fixing /config permissions. . ."
chown -R abc:abc \
/config
# chown the app directory, but not node_modules
echo "Fixing app permissions. . ."
find /app/heimdall -maxdepth 1 ! -name node_modules ! -name heimdall -exec chown -R abc:abc '{}' \;

View File

@@ -0,0 +1,59 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make our folders
mkdir -p \
/config/www/{avatars,backgrounds,icons,logs,SupportedApps} \
/config/log/heimdall
# install heimdall if necessary
if [[ -d /app/www-tmp ]]; then
echo "New container detected, installing Heimdall"
mv /app/www-tmp /app/www
cp /app/www/storage/app/searchproviders.yaml /app/www/storage/app/searchproviders.yaml.orig
touch /app/set-perms
fi
# create symlinks
symlinks=(
/app/www/storage/app/public/avatars
/app/www/storage/app/public/backgrounds
/app/www/storage/app/public/icons
/app/www/storage/logs
/app/www/app/SupportedApps
/app/www/database/app.sqlite
/app/www/.env
)
for i in "${symlinks[@]}"; do
if [[ -e "${i}" && ! -L "${i}" ]]; then
rm -rf "${i}"
fi
if [[ ! -L "${i}" ]]; then
ln -s /config/www/"$(basename "${i}")" "${i}"
fi
done
# copy searchproviders if not exists and symlink
if [[ ! -f /config/www/searchproviders.yaml ]]; then
cp /app/www/storage/app/searchproviders.yaml.orig /config/www/searchproviders.yaml
fi
rm -rf /app/www/storage/app/searchproviders.yaml
ln -s /config/www/searchproviders.yaml /app/www/storage/app/searchproviders.yaml
# tidy up install files & set permissions
if [[ -f /app/set-perms ]]; then
rm -rf /app/set-perms
lsiown -R abc:abc \
/app/www \
/config
fi
# copy .env if not exists
if [[ ! -f /config/www/.env ]]; then
install -g abc -o abc /app/www/.env.example /config/www/.env
echo "Creating app key. This may take a while on slower systems"
s6-setuidgid abc php /app/www/artisan key:generate
fi
# set queue driver to database
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-heimdall-config/run

View File

@@ -0,0 +1,5 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \
s6-setuidgid abc php /app/www/artisan queue:work database --sleep=3 --tries=3

View File

@@ -0,0 +1 @@
longrun

View File

@@ -1,6 +0,0 @@
#!/usr/bin/with-contenv bash
cd /app/heimdall || exit
exec \
s6-setuidgid abc npm run server

View File

@@ -0,0 +1,11 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
DEFAULT_CONF="/config/nginx/site-confs/default.conf"
OLD_ROOT="root /var/www/localhost/heimdall/public;"
NEW_ROOT="root /app/www/public;"
if [[ -f "${DEFAULT_CONF}" ]] && grep -q "${OLD_ROOT}" "${DEFAULT_CONF}" 2>/dev/null; then
echo "updating root in ${DEFAULT_CONF}"
sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}"
fi

View File

@@ -0,0 +1,40 @@
<html>
<head>
<title>Upgrade Required!</title>
<style>
body{
font-family: Helvetica, Arial, sans-serif;
}
.message{
width:440px;
padding:20px 40px;
margin:0 auto;
background-color:#f9f9f9;
border:1px solid #ddd;
color: #1e3d62;
}
center{
margin:40px 0;
}
h1{
font-size: 18px;
line-height: 26px;
}
p{
font-size: 12px;
}
a{
color: rgb(207, 48, 139);
}
</style>
</head>
<body>
<div class="message">
<h1>Upgrade Required!</h1>
<p>The application inside this image has been moved to a new folder.</p>
<p>You will need to update your <strong>/config/nginx/nginx.conf</strong> and <strong>/config/nginx/site-confs/default.conf</strong> in order for the application to work.</p>
<p>New config samples are located at <strong>/config/nginx/nginx.conf.sample</strong> and <strong>/config/nginx/site-confs/default.conf.sample</strong></p>
<p>Please review our announcement: <a target="_blank" href="https://info.linuxserver.io/issues/2022-08-20-nginx-base/">Significant changes to nginx based images</a></p>
</div>
</body>
</html>