Compare commits

...

313 Commits

Author SHA1 Message Date
LinuxServer-CI
0af9fb3843
Bot Updating Package Versions 2026-02-01 10:35:31 +00:00
LinuxServer-CI
23d787e38a
Bot Updating Package Versions 2026-01-25 10:31:15 +00:00
LinuxServer-CI
1e653525c5
Bot Updating Package Versions 2026-01-11 22:48:31 +00:00
LinuxServer-CI
2f1440e5b2
Bot Updating Package Versions 2026-01-04 10:28:50 +00:00
LinuxServer-CI
a6cae78234
Bot Updating Package Versions 2025-12-30 02:33:07 +00:00
LinuxServer-CI
eda8ed702c
Bot Updating Package Versions 2025-12-28 10:29:23 +00:00
LinuxServer-CI
9c9aa4e8d4
Bot Updating Package Versions 2025-12-21 10:28:56 +00:00
LinuxServer-CI
62d6ff57e9
Bot Updating Package Versions 2025-12-14 10:28:39 +00:00
LinuxServer-CI
ce752942b7
Bot Updating Package Versions 2025-11-30 10:27:16 +00:00
LinuxServer-CI
829c166ebc
Bot Updating Package Versions 2025-11-23 10:28:35 +00:00
LinuxServer-CI
3482fb8fd0
Bot Updating Templated Files 2025-11-23 10:25:54 +00:00
LinuxServer-CI
8a99f2fa77
Bot Updating Package Versions 2025-11-16 10:26:47 +00:00
LinuxServer-CI
1e5945ddb6
Bot Updating Package Versions 2025-10-26 10:27:42 +00:00
LinuxServer-CI
5cca129fe0
Bot Updating Templated Files 2025-10-26 10:24:50 +00:00
LinuxServer-CI
423c2717e0
Bot Updating Package Versions 2025-10-19 10:25:27 +00:00
LinuxServer-CI
96e202d210
Bot Updating Package Versions 2025-10-12 10:24:54 +00:00
LinuxServer-CI
7a1166efeb
Bot Updating Package Versions 2025-10-05 10:24:24 +00:00
LinuxServer-CI
f3289fbcb7
Bot Updating Package Versions 2025-09-28 10:24:53 +00:00
LinuxServer-CI
61cd94a972
Bot Updating Package Versions 2025-09-21 10:24:22 +00:00
LinuxServer-CI
58b81bbee3
Bot Updating Package Versions 2025-08-24 10:26:26 +00:00
LinuxServer-CI
a08f4c9a21
Bot Updating Package Versions 2025-08-17 10:27:53 +00:00
LinuxServer-CI
029934e0fa
Bot Updating Package Versions 2025-08-10 10:29:03 +00:00
LinuxServer-CI
07a63030a6
Bot Updating Package Versions 2025-08-03 10:29:40 +00:00
LinuxServer-CI
f3a52b3431
Bot Updating Package Versions 2025-07-29 14:34:40 +00:00
LinuxServer-CI
e13d1ed2cd
Bot Updating Templated Files 2025-07-29 14:29:59 +00:00
Adam
3c98530c10
Merge pull request #36 from linuxserver/3.22 2025-07-29 15:27:37 +01:00
thespad
5cd263f3bd
Rebase to 3.22 2025-07-27 14:37:51 +01:00
LinuxServer-CI
8104707c69
Bot Updating Package Versions 2025-07-27 10:29:09 +00:00
LinuxServer-CI
c7a3d2b2cc
Bot Updating Package Versions 2025-07-20 10:30:21 +00:00
LinuxServer-CI
8f5e5b97db
Bot Updating Package Versions 2025-07-13 10:30:00 +00:00
LinuxServer-CI
d9dc6a91ea
Bot Updating Templated Files 2025-07-06 10:29:10 +00:00
LinuxServer-CI
78eb212cbc
Bot Updating Templated Files 2025-07-06 10:27:18 +00:00
LinuxServer-CI
1fc3dfab4c
Bot Updating Templated Files 2025-06-15 10:27:46 +00:00
LinuxServer-CI
d73ce997d7
Bot Updating Package Versions 2025-05-18 10:30:07 +00:00
LinuxServer-CI
ac5ead1c5d
Bot Updating Templated Files 2025-05-18 10:26:26 +00:00
LinuxServer-CI
a9e49b8877
Bot Updating Package Versions 2025-04-20 10:27:46 +00:00
LinuxServer-CI
b051882a22
Bot Updating Package Versions 2025-04-13 10:27:04 +00:00
LinuxServer-CI
97f2d16d59
Bot Updating Package Versions 2025-04-06 10:25:44 +00:00
LinuxServer-CI
a5e23d0523
Bot Updating Package Versions 2025-03-23 10:23:56 +00:00
LinuxServer-CI
7bb5c1a96f
Bot Updating Package Versions 2025-03-16 10:24:48 +00:00
LinuxServer-CI
c3af8fc175
Bot Updating Package Versions 2025-03-02 10:24:57 +00:00
LinuxServer-CI
775d6b4969
Bot Updating Package Versions 2025-02-23 10:24:02 +00:00
LinuxServer-CI
5d676ccb65
Bot Updating Package Versions 2025-02-16 10:23:59 +00:00
LinuxServer-CI
9f86411739
Bot Updating Templated Files 2025-02-16 10:21:31 +00:00
LinuxServer-CI
16dbc39b92
Bot Updating Templated Files 2025-02-02 10:22:13 +00:00
LinuxServer-CI
7939e9dabc
Bot Updating Templated Files 2025-02-02 10:21:02 +00:00
LinuxServer-CI
776c3332d3
Bot Updating Package Versions 2025-01-26 10:22:24 +00:00
quietsy
d301781918
Merge pull request #35 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-22 22:09:06 +02:00
quietsy
56e64e5c85 Add categories to readme-vars.yml 2025-01-22 15:58:11 +02:00
LinuxServer-CI
1f529388d3
Bot Updating Package Versions 2025-01-19 10:23:08 +00:00
LinuxServer-CI
e9beb00dff
Bot Updating Package Versions 2025-01-05 10:23:00 +00:00
LinuxServer-CI
95def58b00
Bot Updating Package Versions 2024-12-22 10:25:45 +00:00
LinuxServer-CI
fa3a79e40a
Bot Updating Templated Files 2024-12-22 10:23:06 +00:00
LinuxServer-CI
a2d50a6c13
Bot Updating Templated Files 2024-12-22 10:21:23 +00:00
LinuxServer-CI
ba5ce1b966
Bot Updating Package Versions 2024-12-15 10:25:27 +00:00
LinuxServer-CI
74e2580a8e
Bot Updating Templated Files 2024-12-08 10:27:37 +00:00
LinuxServer-CI
24e653cdc9
Bot Updating Templated Files 2024-12-08 10:25:54 +00:00
LinuxServer-CI
16d75460bc
Bot Updating Templated Files 2024-12-08 10:24:13 +00:00
LinuxServer-CI
d2f7affc6e
Bot Updating Package Versions 2024-11-24 10:24:08 +00:00
LinuxServer-CI
c562d93552
Bot Updating Package Versions 2024-11-17 10:24:27 +00:00
LinuxServer-CI
bc33c46f53
Bot Updating Templated Files 2024-11-10 10:23:17 +00:00
LinuxServer-CI
f4334057f6
Bot Updating Templated Files 2024-11-10 10:21:42 +00:00
LinuxServer-CI
b2903921d8
Bot Updating Package Versions 2024-11-03 10:27:22 +00:00
LinuxServer-CI
c1c19d386c
Bot Updating Package Versions 2024-10-27 10:23:12 +00:00
LinuxServer-CI
4bbbeefdf7
Bot Updating Package Versions 2024-09-29 10:28:10 +00:00
LinuxServer-CI
4ec383a903
Bot Updating Templated Files 2024-09-29 10:25:43 +00:00
LinuxServer-CI
b77098ceae
Bot Updating Templated Files 2024-09-29 10:24:15 +00:00
LinuxServer-CI
98c3370841
Bot Updating Templated Files 2024-09-29 10:22:13 +00:00
LinuxServer-CI
9a35111101
Bot Updating Package Versions 2024-09-22 10:22:29 +00:00
LinuxServer-CI
fbcfa99c54
Bot Updating Package Versions 2024-09-15 10:23:09 +00:00
LinuxServer-CI
d31608ea94
Bot Updating Package Versions 2024-09-08 10:22:30 +00:00
LinuxServer-CI
8a2b3d51f1
Bot Updating Package Versions 2024-08-25 10:21:40 +00:00
LinuxServer-CI
51c01db172
Bot Updating Package Versions 2024-08-18 10:25:56 +00:00
LinuxServer-CI
0e224932bb
Bot Updating Templated Files 2024-08-18 10:23:33 +00:00
LinuxServer-CI
5bebe6563d Bot Updating Templated Files 2024-08-18 10:22:03 +00:00
LinuxServer-CI
766ef285f8 Bot Updating Package Versions 2024-08-10 10:42:29 +00:00
LinuxServer-CI
02302e6ab9 Bot Updating Package Versions 2024-08-04 07:41:30 +00:00
LinuxServer-CI
1324b41bb2 Bot Updating Package Versions 2024-07-28 10:20:42 +00:00
LinuxServer-CI
4fa1652686 Bot Updating Package Versions 2024-07-21 10:21:33 +00:00
LinuxServer-CI
48b594f9d7 Bot Updating Package Versions 2024-07-14 10:27:20 +00:00
LinuxServer-CI
5a8a422a41 Bot Updating Templated Files 2024-07-14 10:24:30 +00:00
LinuxServer-CI
fe2751834a Bot Updating Templated Files 2024-07-14 10:23:13 +00:00
LinuxServer-CI
51c490cdcb Bot Updating Package Versions 2024-07-07 10:21:46 +00:00
LinuxServer-CI
3ec89e70a5 Bot Updating Package Versions 2024-06-28 17:53:12 +00:00
Roxedus
be7d07d98f
Merge pull request #33 from linuxserver/master-3.20 2024-06-28 19:50:55 +02:00
thespad
2eec1a9453
Rebase to 3.20 2024-06-27 15:45:26 +01:00
LinuxServer-CI
4af28ae322 Bot Updating Package Versions 2024-06-23 10:22:12 +00:00
LinuxServer-CI
1ab369f47c Bot Updating Package Versions 2024-06-16 10:21:26 +00:00
LinuxServer-CI
efd7168624 Bot Updating Package Versions 2024-06-09 10:22:02 +00:00
LinuxServer-CI
02f440be1b Bot Updating Package Versions 2024-05-24 15:45:36 +00:00
LinuxServer-CI
5515afc9e3 Bot Updating Templated Files 2024-05-24 15:42:23 +00:00
LinuxServer-CI
8f1149020d Bot Updating Templated Files 2024-05-24 15:41:04 +00:00
LinuxServer-CI
42acb4c827 Bot Updating Package Versions 2024-05-18 20:47:40 +00:00
LinuxServer-CI
f08be17734 Bot Updating Package Versions 2024-05-12 10:21:05 +00:00
LinuxServer-CI
79bf392b08 Bot Updating Templated Files 2024-05-12 10:18:53 +00:00
LinuxServer-CI
a4c938d2a5 Bot Updating Templated Files 2024-05-05 10:19:37 +00:00
LinuxServer-CI
554cfa6eb4 Bot Updating Package Versions 2024-04-27 14:42:32 +00:00
LinuxServer-CI
9743c34f48 Bot Updating Package Versions 2024-04-21 10:18:55 +00:00
LinuxServer-CI
f72ed2aa21 Bot Updating Package Versions 2024-04-14 14:16:26 +00:00
LinuxServer-CI
e0f2173971 Bot Updating Package Versions 2024-04-07 10:18:38 +00:00
LinuxServer-CI
35fa615a93 Bot Updating Package Versions 2024-03-28 19:37:49 +00:00
aptalca
d51b332033
Merge pull request #31 from Zebradil/master
Fix init of static files
2024-03-28 15:33:43 -04:00
LinuxServer-CI
feb99a2c6e Bot Updating Package Versions 2024-03-24 10:21:44 +00:00
LinuxServer-CI
c36a1f3d5a Bot Updating Package Versions 2024-03-17 10:21:15 +00:00
LinuxServer-CI
dfa20e93b8 Bot Updating Templated Files 2024-03-17 10:19:01 +00:00
LinuxServer-CI
02006ba857 Bot Updating Package Versions 2024-03-03 10:22:04 +00:00
LinuxServer-CI
5dd8ddacd8 Bot Updating Templated Files 2024-02-25 10:20:20 +00:00
LinuxServer-CI
44b6dbe6f2 Bot Updating Templated Files 2024-02-25 10:17:51 +00:00
LinuxServer-CI
facb7c7874 Bot Updating Package Versions 2024-02-18 10:20:11 +00:00
LinuxServer-CI
822ac17790 Bot Updating Package Versions 2024-02-11 10:19:34 +00:00
LinuxServer-CI
be7653c872 Bot Updating Package Versions 2024-02-04 10:20:33 +00:00
German Lashevich
0efc70cc4c
Fix init of static files
- force symlink creation to overwrite existing index.html
- fix path to example files

fixes #26
2024-01-28 20:46:29 +01:00
LinuxServer-CI
d363577478 Bot Updating Package Versions 2024-01-25 02:31:55 +00:00
LinuxServer-CI
5e35738d88 Bot Updating Templated Files 2024-01-25 02:28:59 +00:00
Eric Nemchik
4247ac009f
Merge pull request #30 from linuxserver/3.19
Rebase to Alpine 3.19
2024-01-24 20:25:19 -06:00
LinuxServer-CI
f8d4f47673 Bot Updating Package Versions 2024-01-21 10:20:38 +00:00
LinuxServer-CI
c85d0987bd Bot Updating Package Versions 2024-01-14 10:25:32 +00:00
LinuxServer-CI
4b58c81607 Bot Updating Templated Files 2024-01-14 10:23:10 +00:00
LinuxServer-CI
7ca823fe13 Bot Updating Templated Files 2024-01-14 10:19:46 +00:00
LinuxServer-CI
b7e2340096 Bot Updating Package Versions 2024-01-07 10:21:23 +00:00
LinuxServer-CI
0194fd6d4c Bot Updating Package Versions 2023-12-24 10:19:11 +00:00
Eric Nemchik
f9c0abb1a5
Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:12:22 -06:00
LinuxServer-CI
65ca524c62 Bot Updating Package Versions 2023-12-17 10:20:56 +00:00
LinuxServer-CI
59449bcac5 Bot Updating Package Versions 2023-12-10 10:19:04 +00:00
LinuxServer-CI
f0929d66ad Bot Updating Package Versions 2023-12-07 16:20:12 +00:00
LinuxServer-CI
d1223dc650 Bot Updating Templated Files 2023-12-07 16:17:49 +00:00
Eric Nemchik
286ab1ea08
Merge pull request #28 from linuxserver/pdo_mysql
Replace php mysqli with php pdo_pgsql
2023-12-07 10:15:29 -06:00
Eric Nemchik
7326f17e77
Replace php mysqli with php pdo_pgsql
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-06 19:35:27 -06:00
LinuxServer-CI
37e6db2325 Bot Updating Package Versions 2023-12-03 10:20:06 +00:00
Eric Nemchik
d64f416625
Merge pull request #25 from linuxserver/quiet-migration
only run migration if conf exists
2023-11-29 08:30:40 -06:00
LinuxServer-CI
44a6a5e065 Bot Updating Package Versions 2023-11-26 10:20:17 +00:00
Eric Nemchik
1500497cc6
only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:43:06 -06:00
LinuxServer-CI
92d4a42113 Bot Updating Package Versions 2023-11-19 10:22:21 +00:00
LinuxServer-CI
0582e90e54 Bot Updating Templated Files 2023-11-19 10:20:03 +00:00
LinuxServer-CI
d48b43bc8b Bot Updating Package Versions 2023-11-12 10:19:01 +00:00
LinuxServer-CI
f2ae1331e8 Bot Updating Package Versions 2023-11-05 10:18:53 +00:00
LinuxServer-CI
3e69e87f36 Bot Updating Package Versions 2023-10-29 10:18:25 +00:00
LinuxServer-CI
49e9224710 Bot Updating Package Versions 2023-10-22 13:45:53 +00:00
LinuxServer-CI
3e9e4f55e3 Bot Updating Package Versions 2023-10-15 10:20:08 +00:00
LinuxServer-CI
600902f899 Bot Updating Package Versions 2023-10-08 10:24:58 +00:00
LinuxServer-CI
8bcf066d17 Bot Updating Templated Files 2023-10-08 10:21:44 +00:00
LinuxServer-CI
02ec833ced Bot Updating Templated Files 2023-10-08 10:19:19 +00:00
LinuxServer-CI
f6d25e54ec Bot Updating Package Versions 2023-10-01 10:19:48 +00:00
LinuxServer-CI
1087c351a6 Bot Updating Package Versions 2023-09-24 10:18:18 +00:00
LinuxServer-CI
748cd2f067 Bot Updating Package Versions 2023-09-17 10:19:09 +00:00
LinuxServer-CI
75cc2e9e6e Bot Updating Package Versions 2023-09-10 10:18:57 +00:00
LinuxServer-CI
8848365b20 Bot Updating Package Versions 2023-09-03 10:19:34 +00:00
LinuxServer-CI
bc163cf85c Bot Updating Package Versions 2023-08-27 10:19:17 +00:00
LinuxServer-CI
48b5d1c6dd Bot Updating Package Versions 2023-08-20 10:18:24 +00:00
LinuxServer-CI
55cebed8d4 Bot Updating Package Versions 2023-08-13 10:17:50 +00:00
LinuxServer-CI
5f4c1a6cf0 Bot Updating Package Versions 2023-08-06 10:19:07 +00:00
LinuxServer-CI
d0e3cfae2d Bot Updating Package Versions 2023-07-30 10:18:20 +00:00
LinuxServer-CI
50ad92d139 Bot Updating Package Versions 2023-07-23 10:18:30 +00:00
LinuxServer-CI
9641fc4900 Bot Updating Package Versions 2023-07-16 10:21:09 +00:00
LinuxServer-CI
b4b0dd15de Bot Updating Package Versions 2023-07-09 10:22:18 +00:00
LinuxServer-CI
456088d2fd Bot Updating Package Versions 2023-07-02 10:22:37 +00:00
LinuxServer-CI
38a7f43699 Bot Updating Templated Files 2023-07-02 10:20:36 +00:00
LinuxServer-CI
7b7ecdc966 Bot Updating Package Versions 2023-06-25 10:22:51 +00:00
LinuxServer-CI
4e5d560d84 Bot Updating Package Versions 2023-06-18 10:19:18 +00:00
LinuxServer-CI
89feb75154 Bot Updating Package Versions 2023-06-11 10:19:01 +00:00
LinuxServer-CI
6b7544a21b Bot Updating Package Versions 2023-06-04 10:20:32 +00:00
Eric Nemchik
0377880f63
Merge pull request #23 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-31 07:23:29 -05:00
Eric Nemchik
6d86e7e4dd
Merge remote-tracking branch 'origin/master' into 3.18
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-05-29 17:27:34 -05:00
LinuxServer-CI
479def07aa Bot Updating Package Versions 2023-05-28 10:21:51 +00:00
LinuxServer-CI
59c68f68cd Bot Updating Templated Files 2023-05-28 10:18:34 +00:00
Eric Nemchik
369f8f329f
Rebase to Alpine 3.18, deprecate armhf 2023-05-27 16:53:38 -05:00
LinuxServer-CI
0f505d36b0 Bot Updating Package Versions 2023-05-19 23:25:42 +00:00
LinuxServer-CI
51bdd8de0a Bot Updating Templated Files 2023-05-19 23:22:37 +00:00
Eric Nemchik
f331a66abf
Merge pull request #22 from pawanrai9999/ipinfo_apikey
Added Support for ipinfo.io access token
2023-05-19 18:20:30 -05:00
LinuxServer-CI
d3431389ac Bot Updating Package Versions 2023-05-14 10:20:04 +00:00
Pawan Rai
5b85e61fb5
Updated README for ipinfo access token:-
- new environment variable IPINFO_APIKEY is added, which is access token from ipinfo.io
2023-05-14 12:07:48 +05:30
Pawan Rai
c51859971d
Added support for ipinfo with apikey, also removes missingauth message from ipinfo 2023-05-14 10:55:50 +05:30
LinuxServer-CI
10607691f6 Bot Updating Package Versions 2023-04-30 10:20:55 +00:00
LinuxServer-CI
a4d56400e1 Bot Updating Templated Files 2023-04-30 10:19:24 +00:00
LinuxServer-CI
111ec746d3 Bot Updating Templated Files 2023-04-30 10:18:28 +00:00
LinuxServer-CI
29ae1394f2 Bot Updating Package Versions 2023-04-23 10:18:44 +00:00
LinuxServer-CI
9c44eab697 Bot Updating Package Versions 2023-04-16 05:19:44 -05:00
LinuxServer-CI
70f66ea39b Bot Updating Package Versions 2023-04-09 12:19:15 +02:00
LinuxServer-CI
edd4e38be7 Bot Updating Package Versions 2023-04-04 06:58:43 +02:00
LinuxServer-CI
3e4a2f77a2 Bot Updating Templated Files 2023-04-04 04:56:33 +00:00
LinuxServer-CI
4c467d7d08 Bot Updating Templated Files 2023-04-04 04:55:14 +00:00
LinuxServer-CI
35ba5b9049 Bot Updating Templated Files 2023-04-04 04:53:54 +00:00
LinuxServer-CI
5b8d8c4a4d Bot Updating Package Versions 2023-03-27 23:54:07 -05:00
LinuxServer-CI
e82c9b8e8e Bot Updating Package Versions 2023-03-20 23:54:42 -05:00
LinuxServer-CI
264ace608f Bot Updating Package Versions 2023-03-13 23:54:05 -05:00
LinuxServer-CI
c6ba9a6416 Bot Updating Package Versions 2023-03-07 05:55:52 +01:00
LinuxServer-CI
a5df5885e6 Bot Updating Templated Files 2023-03-06 22:53:49 -06:00
LinuxServer-CI
38cbd5748d Bot Updating Package Versions 2023-02-27 22:54:14 -06:00
LinuxServer-CI
0f399e2a12 Bot Updating Package Versions 2023-02-20 22:53:59 -06:00
LinuxServer-CI
25ea517aec Bot Updating Package Versions 2023-02-14 05:56:54 +01:00
LinuxServer-CI
41a8011efe Bot Updating Templated Files 2023-02-13 22:55:03 -06:00
LinuxServer-CI
62c9c92e60 Bot Updating Templated Files 2023-02-13 22:53:41 -06:00
LinuxServer-CI
73f421cf13 Bot Updating Package Versions 2023-02-07 05:53:52 +01:00
LinuxServer-CI
bf40e99d5c Bot Updating Package Versions 2023-01-27 11:19:26 +01:00
Eric Nemchik
c41bee28e0
Merge pull request #21 from linuxserver/3.17
Rebase to alpine 3.17 with php8.1
2023-01-27 04:17:15 -06:00
Eric Nemchik
7dd77d7bce Fix empty up 2023-01-26 18:08:25 -06:00
LinuxServer-CI
b91b9faef3 Bot Updating Package Versions 2023-01-23 22:53:54 -06:00
Eric Nemchik
d3cbec32cb Rebase to alpine 3.17 with php8.1 2023-01-22 16:13:35 -06:00
LinuxServer-CI
2bc1fba3e2 Bot Updating Package Versions 2023-01-18 06:05:38 -06:00
Eric Nemchik
1bc0d2b6f7
Merge pull request #20 from linuxserver/format
Format shell scripts
2023-01-18 06:03:16 -06:00
Eric Nemchik
98f8df3a90 Format shell scripts 2023-01-15 09:48:58 -06:00
LinuxServer-CI
5c80c8e974 Bot Updating Package Versions 2023-01-03 05:53:52 +01:00
LinuxServer-CI
f8d054781d Bot Updating Templated Files 2022-11-28 22:56:16 -06:00
LinuxServer-CI
7b7fbd2731 Bot Updating Templated Files 2022-11-28 22:54:57 -06:00
LinuxServer-CI
724bd72022 Bot Updating Templated Files 2022-11-28 22:53:34 -06:00
LinuxServer-CI
267c6bc572 Bot Updating Package Versions 2022-11-15 05:59:33 +01:00
LinuxServer-CI
ed00ec0a4a Bot Updating Templated Files 2022-11-15 05:57:18 +01:00
LinuxServer-CI
62180e4bc2 Bot Updating Package Versions 2022-11-07 23:16:24 -06:00
LinuxServer-CI
a790790cf5 Bot Updating Package Versions 2022-11-01 06:39:47 +01:00
LinuxServer-CI
0fdefbe88f Bot Updating Package Versions 2022-10-25 01:05:56 -05:00
LinuxServer-CI
5ba43993bd Bot Updating Package Versions 2022-10-11 00:55:14 -05:00
LinuxServer-CI
67749ac6e9 Bot Updating Package Versions 2022-09-27 07:52:35 +02:00
LinuxServer-CI
dd205aaf43 Bot Updating Package Versions 2022-09-20 07:59:28 +02:00
LinuxServer-CI
be8a76e5dd Bot Updating Templated Files 2022-09-20 07:57:12 +02:00
LinuxServer-CI
a42d8b782a Bot Updating Package Versions 2022-09-13 01:05:26 -05:00
LinuxServer-CI
b39f96ba25 Bot Updating Package Versions 2022-08-30 08:04:29 +02:00
LinuxServer-CI
6b042bbc4b Bot Updating Package Versions 2022-08-23 16:55:05 -05:00
Eric Nemchik
2a85eb3983
Merge pull request #15 from linuxserver/standard-base
Standard base
2022-08-23 16:52:49 -05:00
LinuxServer-CI
05398fe9cd Bot Updating Package Versions 2022-08-23 07:46:08 +02:00
Eric Nemchik
bb570b004c Keep /config volume consistently 2022-08-21 16:54:10 -05:00
Eric Nemchik
4692da6925 Add default location migration 2022-08-20 18:54:37 -05:00
Eric Nemchik
09f2485594 Use standard nginx.conf from lsio alpine nginx base image 2022-08-20 12:40:40 -05:00
LinuxServer-CI
f8dbe4517c Bot Updating Package Versions 2022-08-16 07:05:34 +02:00
LinuxServer-CI
ee44968e62 Bot Updating Package Versions 2022-08-09 07:14:43 +02:00
LinuxServer-CI
7e13a1106b Bot Updating Package Versions 2022-08-02 00:37:04 -05:00
LinuxServer-CI
c73f9f1f84 Bot Updating Package Versions 2022-07-26 00:33:47 -05:00
LinuxServer-CI
95294c15d9 Bot Updating Package Versions 2022-07-19 00:38:19 -05:00
LinuxServer-CI
f6fe54901e Bot Updating Package Versions 2022-07-12 07:28:54 +02:00
LinuxServer-CI
a654559292 Bot Updating Package Versions 2022-07-05 07:05:34 +02:00
LinuxServer-CI
36942677ae Bot Updating Package Versions 2022-06-28 00:15:00 -05:00
LinuxServer-CI
1568d8600f Bot Updating Package Versions 2022-06-21 07:08:51 +02:00
LinuxServer-CI
7f07d95964 Bot Updating Package Versions 2022-06-14 07:20:33 +02:00
LinuxServer-CI
5a6e56b01a Bot Updating Package Versions 2022-06-06 23:58:48 -05:00
LinuxServer-CI
10f800f1cf Bot Updating Package Versions 2022-05-24 00:09:54 -05:00
LinuxServer-CI
0197832e9b Bot Updating Package Versions 2022-05-17 00:06:14 -05:00
LinuxServer-CI
71ee254fb4 Bot Updating Package Versions 2022-05-10 00:00:10 -05:00
LinuxServer-CI
4ccc943429 Bot Updating Package Versions 2022-05-03 00:08:06 -05:00
LinuxServer-CI
43f19a84d9 Bot Updating Templated Files 2022-05-03 00:05:42 -05:00
LinuxServer-CI
6487c842f2 Bot Updating Templated Files 2022-05-03 00:04:14 -05:00
LinuxServer-CI
47356ee98a Bot Updating Package Versions 2022-04-19 00:13:03 -05:00
LinuxServer-CI
c348f0ee6f Bot Updating Package Versions 2022-04-12 06:57:51 +02:00
LinuxServer-CI
b10225b1a0 Bot Updating Package Versions 2022-04-05 06:56:45 +02:00
LinuxServer-CI
9fa036384b Bot Updating Package Versions 2022-03-28 23:57:14 -05:00
LinuxServer-CI
2750a810c2 Bot Updating Package Versions 2022-03-21 23:56:55 -05:00
LinuxServer-CI
a9e1b1dff3 Bot Updating Package Versions 2022-03-15 05:57:28 +01:00
LinuxServer-CI
97eb7aab7d Bot Updating Package Versions 2022-03-08 05:57:06 +01:00
LinuxServer-CI
3e11516a82 Bot Updating Package Versions 2022-03-01 05:56:42 +01:00
LinuxServer-CI
650256ee8b Bot Updating Package Versions 2022-02-22 05:55:57 +01:00
LinuxServer-CI
8b1ba7749a Bot Updating Package Versions 2022-02-15 05:55:38 +01:00
LinuxServer-CI
e5a857004c Bot Updating Package Versions 2022-02-08 05:55:26 +01:00
LinuxServer-CI
84e7cd7a3e Bot Updating Package Versions 2022-02-01 05:55:56 +01:00
LinuxServer-CI
95b53e11bd Bot Updating Package Versions 2022-01-25 05:56:32 +01:00
LinuxServer-CI
2f70f45ca3 Bot Updating Package Versions 2021-12-28 06:01:09 +01:00
LinuxServer-CI
e26ac50de6 Bot Updating Templated Files 2021-12-21 06:02:09 +01:00
LinuxServer-CI
3459429386 Bot Updating Templated Files 2021-12-21 06:00:55 +01:00
LinuxServer-CI
e9a99be352 Bot Updating Package Versions 2021-11-30 05:53:52 +01:00
LinuxServer-CI
2fef70ddd6 Bot Updating Package Versions 2021-11-23 05:59:15 +01:00
LinuxServer-CI
8d278082e8 Bot Updating Package Versions 2021-11-16 05:59:02 +01:00
LinuxServer-CI
ccf2235d9a Bot Updating Package Versions 2021-11-02 05:58:43 +01:00
LinuxServer-CI
c8355bd2ae Bot Updating Package Versions 2021-10-26 06:58:37 +02:00
LinuxServer-CI
ee00e2cbae Bot Updating Package Versions 2021-10-19 06:58:07 +02:00
LinuxServer-CI
932e45425a Bot Updating Package Versions 2021-10-12 06:57:52 +02:00
LinuxServer-CI
bc07f85266 Bot Updating Package Versions 2021-10-05 07:01:19 +02:00
LinuxServer-CI
d95492463c Bot Updating Templated Files 2021-10-05 06:59:22 +02:00
LinuxServer-CI
b4b0ab5b89 Bot Updating Templated Files 2021-10-05 06:58:15 +02:00
LinuxServer-CI
1052087bb9 Bot Updating Package Versions 2021-09-28 06:54:35 +02:00
LinuxServer-CI
67d4fa1bf0 Bot Updating Package Versions 2021-09-21 06:58:41 +02:00
LinuxServer-CI
13eaf5b5e9 Bot Updating Package Versions 2021-09-07 06:59:07 +02:00
LinuxServer-CI
99339e0776 Bot Updating Package Versions 2021-08-31 07:00:27 +02:00
LinuxServer-CI
b22529959c Bot Updating Templated Files 2021-08-31 06:58:33 +02:00
LinuxServer-CI
45660378ef Bot Updating Package Versions 2021-08-17 06:59:15 +02:00
LinuxServer-CI
12c91e12e4 Bot Updating Package Versions 2021-08-10 06:58:47 +02:00
LinuxServer-CI
2a503d037b Bot Updating Package Versions 2021-08-03 06:59:18 +02:00
LinuxServer-CI
ccfffe5b7e Bot Updating Package Versions 2021-07-27 06:57:43 +02:00
LinuxServer-CI
7131e616d1 Bot Updating Package Versions 2021-07-13 04:59:11 +00:00
LinuxServer-CI
1d3163c6fc Bot Updating Package Versions 2021-07-06 05:04:02 +00:00
LinuxServer-CI
277cca0039 Bot Updating Templated Files 2021-07-06 00:59:31 -04:00
LinuxServer-CI
6b89f55fd6 Bot Updating Templated Files 2021-07-06 04:58:27 +00:00
LinuxServer-CI
df644cba7d Bot Updating Package Versions 2021-06-22 05:05:04 +00:00
LinuxServer-CI
e5409e993f Bot Updating Package Versions 2021-06-15 01:05:30 -04:00
LinuxServer-CI
e7696b4b68 Bot Updating Package Versions 2021-06-08 05:44:46 +00:00
LinuxServer-CI
eee8e3db5b Bot Updating Package Versions 2021-06-01 07:00:58 +00:00
LinuxServer-CI
7b22f0dad8 Bot Updating Package Versions 2021-05-25 05:29:46 +00:00
LinuxServer-CI
18a7899abe Bot Updating Package Versions 2021-05-18 05:12:26 +00:00
LinuxServer-CI
4fd0a4c0b3 Bot Updating Package Versions 2021-04-27 05:07:15 +00:00
LinuxServer-CI
49c59b5e7a Bot Updating Package Versions 2021-04-20 05:09:18 +00:00
LinuxServer-CI
62a088a7ce Bot Updating Templated Files 2021-04-20 05:06:03 +00:00
LinuxServer-CI
98313e5497 Bot Updating Templated Files 2021-04-20 05:04:37 +00:00
LinuxServer-CI
bf2e0d5d08 Bot Updating Package Versions 2021-04-13 06:07:36 +01:00
LinuxServer-CI
0eedf439b2 Bot Updating Package Versions 2021-04-06 01:12:59 -04:00
LinuxServer-CI
aa92f318a8 Bot Updating Package Versions 2021-03-30 06:08:59 +01:00
LinuxServer-CI
4de0a4bc35 Bot Updating Package Versions 2021-03-16 01:01:13 -04:00
LinuxServer-CI
43f8fa50f3 Bot Updating Package Versions 2021-03-09 05:02:23 +00:00
Roxedus
57f0af41e3
Merge pull request #13 from linuxserver/db
fix db settings, make sure index.html is recreated
2021-03-01 16:45:59 +01:00
aptalca
ccccc425ef fix db settings 2021-03-01 10:22:17 -05:00
LinuxServer-CI
fe1df05881 Bot Updating Package Versions 2021-02-28 21:05:07 +00:00
LinuxServer-CI
930816761d Bot Updating Package Versions 2021-02-28 16:01:39 -05:00
LinuxServer-CI
8347dd995e Bot Updating Templated Files 2021-02-28 20:58:47 +00:00
aptalca
9cda8fb552
Merge pull request #11 from jonathanmtran/fix/php7-ctype
fix: added php7-ctype
2021-02-28 15:57:09 -05:00
jonathanmtran
f44dd349d7 fix: added php7-ctype 2021-02-28 11:14:04 -08:00
LinuxServer-CI
5590fceeb4 Bot Updating Package Versions 2021-02-24 07:35:41 +00:00
LinuxServer-CI
0ac708bd94 Bot Updating Package Versions 2021-02-22 23:59:35 -05:00
LinuxServer-CI
d61943d6bb Bot Updating Package Versions 2021-02-16 05:01:22 +00:00
LinuxServer-CI
23fd1d89e6 Bot Updating Templated Files 2021-02-16 04:58:18 +00:00
LinuxServer-CI
8dbac00ad7 Bot Updating Templated Files 2021-02-16 04:56:57 +00:00
LinuxServer-CI
c75418788d Bot Updating Package Versions 2021-02-10 11:10:52 -05:00
LinuxServer-CI
7a34c42b6c Bot Updating Templated Files 2021-02-10 11:08:46 -05:00
aptalca
e5a0b6f817
Merge pull request #10 from linuxserver/master-3.13
Rebasing to Alpine 3.13
2021-02-10 11:07:32 -05:00
LinuxServer-CI
46aaeeaee4 Bot Updating Package Versions 2021-02-08 23:58:19 -05:00
thelamer
8998aba989 Rebasing to Alpine 3.13 2021-01-23 12:29:58 -08:00
LinuxServer-CI
666a425320 Bot Updating Package Versions 2021-01-15 10:17:34 -05:00
LinuxServer-CI
416c303b21 Bot Updating Templated Files 2021-01-15 10:14:48 -05:00
LinuxServer-CI
534eb361f2 Bot Updating Package Versions 2021-01-08 10:06:49 -05:00
39 changed files with 1716 additions and 909 deletions

20
.editorconfig Normal file
View File

@ -0,0 +1,20 @@
# This file is globally distributed to all container image projects from
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
trim_trailing_whitespace = false
[{Dockerfile*,**.yml}]
indent_style = space
indent_size = 2
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4

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

@ -4,9 +4,9 @@
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* Read, and fill the Pull Request template
* If this is a fix for a typo in code or documentation in the README please file an issue
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* 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
@ -96,7 +96,7 @@ If you are proposing additional packages to be added, ensure that you added the
### Testing your changes
```
```bash
git clone https://github.com/linuxserver/docker-librespeed.git
cd docker-librespeed
docker build \
@ -105,14 +105,15 @@ docker build \
-t linuxserver/librespeed:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
docker run --rm --privileged multiarch/qemu-user-static:register --reset
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the chagelog
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-librespeed/tree/master/root), add an entry to the changelog

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
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum

View File

@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs librespeed" -->

76
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Normal file
View File

@ -0,0 +1,76 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs librespeed"
label: Container logs
placeholder: |
Output of `docker logs librespeed`
render: bash
validations:
required: true

View File

@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->

View File

@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

View File

@ -6,7 +6,7 @@
<!--- Before submitting a pull request please check the following -->
<!--- If this is a fix for a typo in code or documentation in 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 -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->

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: '11 2 * * *'
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

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

@ -3,89 +3,145 @@ name: External Trigger Main
on:
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_LIBRESPEED_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_LIBRESPEED_MASTER is set; skipping trigger. ****"
printf "# External trigger for docker-librespeed\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^librespeed_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`librespeed_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^librespeed_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`librespeed_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_LIBRESPEED_MASTER\". ****"
echo "**** Retrieving external version ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`librespeed_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/librespeed/speedtest/releases/latest" | jq -r '. | .tag_name')
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^librespeed_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
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for librespeed branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-librespeed/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****"
echo "**** Retrieving last pushed version ****"
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/librespeed"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Flibrespeed%3Apull" \
| 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.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for librespeed tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-librespeed/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-librespeed/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for librespeed tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for librespeed tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-librespeed/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $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
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 librespeed 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

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

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

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

@ -2,12 +2,18 @@ name: Greetings
on: [pull_request_target, issues]
permissions:
contents: read
jobs:
greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [issue template](https://github.com/linuxserver/docker-librespeed/blob/master/.github/ISSUE_TEMPLATE.md)!'
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-librespeed/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

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

12
.github/workflows/permissions.yml vendored Normal file
View File

@ -0,0 +1,12 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
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@v1
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 }}

1
.gitignore vendored
View File

@ -41,3 +41,4 @@ $RECYCLE.BIN/
Network Trash Folder
Temporary Items
.apdisk
.jenkins-external

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.12
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
# set version label
ARG BUILD_DATE
@ -8,33 +10,33 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
php7-gd \
php7-mysqli \
php7-pdo_pgsql \
php7-pdo_sqlite && \
echo "**** install librespeed ****" && \
if [ -z ${LIBRESPEED_RELEASE+x} ]; then \
LIBRESPEED_RELEASE=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p \
/usr/share/webapps/librespeed && \
curl -o \
/tmp/librespeed.tar.gz -L \
"https://github.com/librespeed/speedtest/archive/${LIBRESPEED_RELEASE}.tar.gz" && \
tar xf \
/tmp/librespeed.tar.gz -C \
/usr/share/webapps/librespeed --strip-components=1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
echo "**** install packages ****" && \
apk add --no-cache \
php84-gd \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite && \
echo "**** install librespeed ****" && \
if [ -z ${LIBRESPEED_RELEASE+x} ]; then \
LIBRESPEED_RELEASE=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p \
/app/www/public && \
curl -o \
/tmp/librespeed.tar.gz -L \
"https://github.com/librespeed/speedtest/archive/${LIBRESPEED_RELEASE}.tar.gz" && \
tar xf \
/tmp/librespeed.tar.gz -C \
/app/www/public --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80
EXPOSE 80 443
VOLUME /config

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.12
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
# set version label
ARG BUILD_DATE
@ -8,33 +10,33 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
php7-gd \
php7-mysqli \
php7-pdo_pgsql \
php7-pdo_sqlite && \
echo "**** install librespeed ****" && \
if [ -z ${LIBRESPEED_RELEASE+x} ]; then \
LIBRESPEED_RELEASE=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p \
/usr/share/webapps/librespeed && \
curl -o \
/tmp/librespeed.tar.gz -L \
"https://github.com/librespeed/speedtest/archive/${LIBRESPEED_RELEASE}.tar.gz" && \
tar xf \
/tmp/librespeed.tar.gz -C \
/usr/share/webapps/librespeed --strip-components=1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
echo "**** install packages ****" && \
apk add --no-cache \
php84-gd \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite && \
echo "**** install librespeed ****" && \
if [ -z ${LIBRESPEED_RELEASE+x} ]; then \
LIBRESPEED_RELEASE=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p \
/app/www/public && \
curl -o \
/tmp/librespeed.tar.gz -L \
"https://github.com/librespeed/speedtest/archive/${LIBRESPEED_RELEASE}.tar.gz" && \
tar xf \
/tmp/librespeed.tar.gz -C \
/app/www/public --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80
EXPOSE 80 443
VOLUME /config

View File

@ -1,40 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.12
# set version label
ARG BUILD_DATE
ARG VERSION
ARG LIBRESPEED_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
php7-gd \
php7-mysqli \
php7-pdo_pgsql \
php7-pdo_sqlite && \
echo "**** install librespeed ****" && \
if [ -z ${LIBRESPEED_RELEASE+x} ]; then \
LIBRESPEED_RELEASE=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p \
/usr/share/webapps/librespeed && \
curl -o \
/tmp/librespeed.tar.gz -L \
"https://github.com/librespeed/speedtest/archive/${LIBRESPEED_RELEASE}.tar.gz" && \
tar xf \
/tmp/librespeed.tar.gz -C \
/usr/share/webapps/librespeed --strip-components=1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80
VOLUME /config

1040
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

0
LICENSE Executable file → Normal file
View File

262
README.md
View File

@ -1,136 +1,151 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-librespeed/blob/master/.github/CONTRIBUTING.md -->
[![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!")
[![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.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
Find us at:
* [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.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# [linuxserver/librespeed](https://github.com/linuxserver/docker-librespeed)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Flibrespeed?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-librespeed.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-librespeed)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-librespeed.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-librespeed/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-librespeed/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-librespeed/container_registry)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/librespeed.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/librespeed "Get your own version badge on microbadger.com")
[![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/librespeed)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/librespeed.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/librespeed)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/librespeed.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/librespeed)
[![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-librespeed%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-librespeed/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%2Flibrespeed%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/librespeed/latest/index.html)
[Librespeed](https://github.com/librespeed/speedtest) is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers.
No Flash, No Java, No Websocket, No Bullshit.
[![librespeed](https://raw.githubusercontent.com/librespeed/speedtest/master/.logo/logo3.png)](https://github.com/librespeed/speedtest)
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://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 `ghcr.io/linuxserver/librespeed` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/librespeed:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
## Application Setup
Access the speedtest webui at `http://SERVERIP`. The results database can be accessed at `http://SERVERIP/results/stats.php` with the password set.
The default template used is based on `example-singleServer-full.html`. However, all templates are provided for reference at `/config/www/`. Feel free to customize `/config/www/index.html` as you like. Delete the file and restart to go back to the image default.
You can optionally place customized `speedtest.js` and `speedtest_worker.js` files under `/config/www` and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults.
If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link
https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database
To enable a custom results page set the environment variable `CUSTOM_RESULTS=true` and start (or restart) the container at least once for `/config/www/results/index.php` to be created and modify this file to your liking.
## 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.
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
Compatible with docker-compose v2 schemas.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
librespeed:
image: ghcr.io/linuxserver/librespeed
image: lscr.io/linuxserver/librespeed:latest
container_name: librespeed
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TZ=Etc/UTC
- PASSWORD=PASSWORD
- CUSTOM_RESULTS=true #optional
- CUSTOM_RESULTS=false #optional
- DB_TYPE=sqlite #optional
- DB_NAME=DB_NAME #optional
- DB_HOSTNAME=DB_HOSTNAME #optional
- DB_USERNAME=DB_USERNAME #optional
- DB_PASSWORD=DB_PASSWORD #optional
- DB_PORT=DB_PORT #optional
- IPINFO_APIKEY=ACCESS_TOKEN #optional
volumes:
- /path/to/appdata/config:/config
- /path/to/librespeed/config:/config
ports:
- 80:80
restart: unless-stopped
```
### docker cli
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
```
```bash
docker run -d \
--name=librespeed \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e TZ=Etc/UTC \
-e PASSWORD=PASSWORD \
-e CUSTOM_RESULTS=true `#optional` \
-e CUSTOM_RESULTS=false `#optional` \
-e DB_TYPE=sqlite `#optional` \
-e DB_NAME=DB_NAME `#optional` \
-e DB_HOSTNAME=DB_HOSTNAME `#optional` \
-e DB_USERNAME=DB_USERNAME `#optional` \
-e DB_PASSWORD=DB_PASSWORD `#optional` \
-e DB_PORT=DB_PORT `#optional` \
-e IPINFO_APIKEY=ACCESS_TOKEN `#optional` \
-p 80:80 \
-v /path/to/appdata/config:/config \
-v /path/to/librespeed/config:/config \
--restart unless-stopped \
ghcr.io/linuxserver/librespeed
lscr.io/linuxserver/librespeed:latest
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
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 |
| :----: | --- |
| `-p 80` | web gui |
| `-p 80:80` | web gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e PASSWORD=PASSWORD` | Set the password for the results database. |
| `-e CUSTOM_RESULTS=true` | (optional) enables custom results page in `/config/www/results/index.php`. |
| `-e CUSTOM_RESULTS=false` | (optional) set to `true` to enable custom results page in `/config/www/results/index.php`. |
| `-e DB_TYPE=sqlite` | Defaults to `sqlite`, can also be set to `mysql` or `postgresql`. |
| `-e DB_NAME=DB_NAME` | Database name. Required for mysql and pgsql. |
| `-e DB_HOSTNAME=DB_HOSTNAME` | Database address. Required for mysql and pgsql. |
| `-e DB_USERNAME=DB_USERNAME` | Database username. Required for mysql and pgsql. |
| `-e DB_PASSWORD=DB_PASSWORD` | Database password. Required for mysql and pgsql. |
| `-v /config` | Contains all relevant configuration files. |
| `-e DB_PORT=DB_PORT` | Database port. Required for mysql. |
| `-e IPINFO_APIKEY=ACCESS_TOKEN` | Access token from ipinfo.io. Required for detailed IP information. |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets)
@ -138,11 +153,11 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```bash
-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
@ -151,103 +166,160 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## 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.
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:
```
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```bash
id your_user
```
Example output:
&nbsp;
## Application Setup
Access the speedtest webui at `http://SERVERIP`. The results database can be accessed at `http://SERVERIP/results/stats.php` with the password set.
The default template used is based on `example-singleServer-full.html`. However, all templates are provided for reference at `/config/www/`. Feel free to customize `/config/www/index.html` as you like. Delete the file and restart to go back to the image default.
You can optionally place customized `speedtest.js` and `speedtest_worker.js` files under `/config/www` and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults.
If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link
https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database
To enable a custom results page set the environment variable `CUSTOM_RESULTS=true` and start (or restart) the container at least once for `/config/www/results/index.php` to be created and modify this file to your liking.
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
```
## Docker Mods
[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=librespeed&query=%24.mods%5B%27librespeed%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=librespeed "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
## Support Info
* Shell access whilst the container is running: `docker exec -it librespeed /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f librespeed`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' librespeed`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/librespeed`
* Shell access whilst the container is running:
```bash
docker exec -it librespeed /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f librespeed
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' librespeed
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/librespeed:latest
```
## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
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:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull librespeed`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d librespeed`
* You can also remove the old dangling images: `docker image prune`
* Update images:
* All images:
```bash
docker-compose pull
```
* Single image:
```bash
docker-compose pull librespeed
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d librespeed
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/librespeed`
* Stop the running container: `docker stop librespeed`
* Delete the container: `docker rm librespeed`
* Update the image:
```bash
docker pull lscr.io/linuxserver/librespeed:latest
```
* Stop the running container:
```bash
docker stop librespeed
```
* Delete the container:
```bash
docker rm librespeed
```
* 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)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once librespeed
```
* 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).
```bash
docker image prune
```
### 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
If you want to make local modifications to these images for development purposes or just to customize the logic:
```
```bash
git clone https://github.com/linuxserver/docker-librespeed.git
cd docker-librespeed
docker build \
--no-cache \
--pull \
-t ghcr.io/linuxserver/librespeed:latest .
-t lscr.io/linuxserver/librespeed:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
docker run --rm --privileged multiarch/qemu-user-static:register --reset
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **27.07.25:** - Rebase to Alpine 3.22.
* **27.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
* **06.12.23:** - Replace php mysqli with php pdo_pgsql.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **14.05.23:** - Added support for ipinfo.io
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **20.08.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **01.03.21:** - Fix up database settings. Make sure `index.html` is recreated.
* **28.02.21:** - Added php7-ctype.
* **23.01.21:** - Rebasing to alpine 3.13.
* **01.06.20:** - Rebasing to alpine 3.12.
* **29.04.20:** - Add donation links for LibreSpeed to Github sponsor button and container log.
* **09.01.20:** - Initial Release.

View File

@ -24,8 +24,8 @@ repo_vars:
- CI_PORT='80'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH=''
sponsor_links:
- { name: "LibreSpeed (Liberapay)", url: "https://liberapay.com/fdossena/donate" }

View File

@ -1,90 +1,116 @@
alpine-baselayout-3.2.0-r7
alpine-keys-2.2-r0
apache2-utils-2.4.46-r1
apk-tools-2.10.5-r1
apr-1.7.0-r0
apr-util-1.6.1-r6
argon2-libs-20190702-r1
bash-5.0.17-r0
brotli-libs-1.0.9-r1
busybox-1.31.1-r19
ca-certificates-20191127-r4
ca-certificates-bundle-20191127-r4
coreutils-8.32-r0
curl-7.69.1-r3
db-5.3.28-r1
expat-2.2.9-r1
freetype-2.10.4-r0
git-2.26.2-r0
libacl-2.2.53-r0
libattr-2.4.48-r0
libbsd-0.10.0-r0
libbz2-1.0.8-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1i-r0
libcurl-7.69.1-r3
libedit-20191231.3.1-r0
libice-1.0.10-r0
libintl-0.20.2-r0
libjpeg-turbo-2.0.5-r0
libldap-2.4.50-r1
libmagic-5.38-r0
libpng-1.6.37-r1
libpq-12.5-r0
libproc-3.3.16-r0
libressl3.1-libcrypto-3.1.2-r0
libressl3.1-libssl-3.1.2-r0
libsasl-2.1.27-r6
libsm-1.2.3-r0
libssl1.1-1.1.1i-r0
libtls-standalone-2.9.1-r1
libuuid-2.35.2-r0
libwebp-1.1.0-r0
libx11-1.6.12-r0
libxau-1.0.9-r0
libxcb-1.14-r1
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxml2-2.9.10-r5
libxpm-3.5.13-r0
libxt-1.2.0-r0
linux-pam-1.3.1-r4
logrotate-3.16.0-r0
musl-1.1.24-r10
musl-utils-1.1.24-r10
nano-4.9.3-r0
ncurses-libs-6.2_p20200523-r0
ncurses-terminfo-base-6.2_p20200523-r0
nghttp2-libs-1.41.0-r0
nginx-1.18.0-r1
openssl-1.1.1i-r0
pcre-8.44-r0
pcre2-10.35-r0
php7-7.3.25-r0
php7-common-7.3.25-r0
php7-fileinfo-7.3.25-r0
php7-fpm-7.3.25-r0
php7-gd-7.3.25-r0
php7-json-7.3.25-r0
php7-mbstring-7.3.25-r0
php7-mysqli-7.3.25-r0
php7-mysqlnd-7.3.25-r0
php7-openssl-7.3.25-r0
php7-pdo-7.3.25-r0
php7-pdo_pgsql-7.3.25-r0
php7-pdo_sqlite-7.3.25-r0
php7-session-7.3.25-r0
php7-simplexml-7.3.25-r0
php7-xml-7.3.25-r0
php7-xmlwriter-7.3.25-r0
popt-1.16-r7
procps-3.3.16-r0
readline-8.0.4-r0
scanelf-1.2.6-r0
shadow-4.8.1-r0
sqlite-libs-3.32.1-r0
ssl_client-1.31.1-r19
tzdata-2020c-r1
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
NAME VERSION TYPE
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.7.0-r0 apk
alpine-baselayout-data 3.7.0-r0 apk
alpine-keys 2.5-r0 apk
alpine-release 3.22.2-r0 apk
aom-libs 3.12.1-r0 apk
apache2-utils 2.4.66-r0 apk
apk-tools 2.14.9-r3 apk
apr 1.7.5-r0 apk
apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r20 apk
busybox-binsh 1.37.0-r20 apk
c-ares 1.34.6-r0 apk
ca-certificates 20250911-r0 apk
ca-certificates-bundle 20250911-r0 apk
catatonit 0.2.1-r0 apk
composer 2.9.5 binary
coreutils 9.7-r1 apk
coreutils-env 9.7-r1 apk
coreutils-fmt 9.7-r1 apk
coreutils-sha512sum 9.7-r1 apk
curl 8.14.1-r2 apk
findutils 4.10.0-r0 apk
freetype 2.13.3-r0 apk
git 2.49.1-r0 apk
git-init-template 2.49.1-r0 apk
jq 1.8.1-r0 apk
libapk2 2.14.9-r3 apk
libattr 2.5.2-r2 apk
libavif 1.3.0-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.5.5-r0 apk
libcurl 8.14.1-r2 apk
libdav1d 1.5.1-r0 apk
libedit 20250104.3.1-r1 apk
libexpat 2.7.3-r0 apk
libgcc 14.2.0-r6 apk
libice 1.1.2-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.24.1-r0 apk
libjpeg-turbo 3.1.0-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.5_p20250503-r0 apk
libpng 1.6.54-r0 apk
libpq 17.7-r0 apk
libproc2 4.0.4-r3 apk
libpsl 0.21.5-r3 apk
librespeed-speedtest 5.5.1 npm
libsharpyuv 1.5.0-r0 apk
libsm 1.2.5-r0 apk
libssl3 3.5.5-r0 apk
libstdc++ 14.2.0-r6 apk
libunistring 1.3-r0 apk
libuuid 2.41-r9 apk
libwebp 1.5.0-r0 apk
libx11 1.8.11-r0 apk
libxau 1.0.12-r0 apk
libxcb 1.17.0-r0 apk
libxdmcp 1.1.5-r1 apk
libxext 1.3.6-r2 apk
libxml2 2.13.9-r0 apk
libxpm 3.5.17-r0 apk
libxt 1.3.1-r0 apk
libyuv 0.0.1887.20251502-r1 apk
libzip 1.11.4-r0 apk
linux-pam 1.7.0-r4 apk
logrotate 3.21.0-r1 apk
musl 1.2.5-r10 apk
musl-utils 1.2.5-r10 apk
nano 8.4-r0 apk
ncurses-terminfo-base 6.5_p20250503-r0 apk
netcat-openbsd 1.229.1-r0 apk
nghttp2-libs 1.65.0-r0 apk
nginx 1.28.0-r3 apk
oniguruma 6.9.10-r0 apk
openssl 3.5.5-r0 apk
pcre2 10.46-r0 apk
php84 8.4.16-r0 apk
php84-common 8.4.16-r0 apk
php84-ctype 8.4.16-r0 apk
php84-curl 8.4.16-r0 apk
php84-fileinfo 8.4.16-r0 apk
php84-fpm 8.4.16-r0 apk
php84-gd 8.4.16-r0 apk
php84-iconv 8.4.16-r0 apk
php84-mbstring 8.4.16-r0 apk
php84-mysqlnd 8.4.16-r0 apk
php84-openssl 8.4.16-r0 apk
php84-pdo 8.4.16-r0 apk
php84-pdo_mysql 8.4.16-r0 apk
php84-pdo_pgsql 8.4.16-r0 apk
php84-pdo_sqlite 8.4.16-r0 apk
php84-phar 8.4.16-r0 apk
php84-session 8.4.16-r0 apk
php84-simplexml 8.4.16-r0 apk
php84-xml 8.4.16-r0 apk
php84-xmlwriter 8.4.16-r0 apk
php84-zip 8.4.16-r0 apk
popt 1.19-r4 apk
procps-ng 4.0.4-r3 apk
readline 8.2.13-r1 apk
scanelf 1.3.8-r1 apk
shadow 4.17.3-r0 apk
skalibs-libs 2.14.4.0-r0 apk
sqlite-libs 3.49.2-r1 apk
ssl_client 1.37.0-r20 apk
tzdata 2025c-r0 apk
utmps-libs 0.1.3.1-r0 apk
xz-libs 5.8.1-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk

View File

@ -4,64 +4,116 @@
project_name: librespeed
project_url: "https://github.com/librespeed/speedtest"
project_logo: "https://raw.githubusercontent.com/librespeed/speedtest/master/.logo/logo3.png"
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers.
No Flash, No Java, No Websocket, No Bullshit."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers.
No Flash, No Java, No Websocket, No Bullshit.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Monitoring"
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: false
development_versions_items:
- { tag: "latest", desc: "Stable releases" }
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
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_ports:
- { external_port: "80", internal_port: "80", port_desc: "web gui" }
- {external_port: "80", internal_port: "80", port_desc: "web gui"}
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
- { env_var: "PASSWORD", env_value: "PASSWORD", desc: "Set the password for the results database."}
- {env_var: "PASSWORD", env_value: "PASSWORD", desc: "Set the password for the results database."}
# optional container parameters
opt_param_usage_include_env: true
opt_param_env_vars:
- { env_var: "CUSTOM_RESULTS", env_value: "true", desc: "(optional) enables custom results page in `/config/www/results/index.php`."}
- { env_var: "DB_TYPE", env_value: "sqlite", desc: "Defaults to `sqlite`, can also be set to `mysql` or `postgresql`."}
- { env_var: "DB_NAME", env_value: "DB_NAME", desc: "Database name. Required for mysql and pgsql."}
- { env_var: "DB_HOSTNAME", env_value: "DB_HOSTNAME", desc: "Database address. Required for mysql and pgsql."}
- { env_var: "DB_USERNAME", env_value: "DB_USERNAME", desc: "Database username. Required for mysql and pgsql."}
- { env_var: "DB_PASSWORD", env_value: "DB_PASSWORD", desc: "Database password. Required for mysql and pgsql."}
optional_block_1: false
optional_block_1_items: ""
- {env_var: "CUSTOM_RESULTS", env_value: "false", desc: "(optional) set to `true` to enable custom results page in `/config/www/results/index.php`."}
- {env_var: "DB_TYPE", env_value: "sqlite", desc: "Defaults to `sqlite`, can also be set to `mysql` or `postgresql`."}
- {env_var: "DB_NAME", env_value: "DB_NAME", desc: "Database name. Required for mysql and pgsql."}
- {env_var: "DB_HOSTNAME", env_value: "DB_HOSTNAME", desc: "Database address. Required for mysql and pgsql."}
- {env_var: "DB_USERNAME", env_value: "DB_USERNAME", desc: "Database username. Required for mysql and pgsql."}
- {env_var: "DB_PASSWORD", env_value: "DB_PASSWORD", desc: "Database password. Required for mysql and pgsql."}
- {env_var: "DB_PORT", env_value: "DB_PORT", desc: "Database port. Required for mysql."}
- {env_var: "IPINFO_APIKEY", env_value: "ACCESS_TOKEN", desc: "Access token from ipinfo.io. Required for detailed IP information."}
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the speedtest webui at `http://SERVERIP`. The results database can be accessed at `http://SERVERIP/results/stats.php` with the password set.
The default template used is based on `example-singleServer-full.html`. However, all templates are provided for reference at `/config/www/`. Feel free to customize `/config/www/index.html` as you like. Delete the file and restart to go back to the image default.
You can optionally place customized `speedtest.js` and `speedtest_worker.js` files under `/config/www` and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults.
If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link
Access the speedtest webui at `http://SERVERIP`. The results database can be accessed at `http://SERVERIP/results/stats.php` with the password set.
The default template used is based on `example-singleServer-full.html`. However, all templates are provided for reference at `/config/www/`. Feel free to customize `/config/www/index.html` as you like. Delete the file and restart to go back to the image default.
You can optionally place customized `speedtest.js` and `speedtest_worker.js` files under `/config/www` and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults.
If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link
https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database
To enable a custom results page set the environment variable `CUSTOM_RESULTS=true` and start (or restart) the container at least once for `/config/www/results/index.php` to be created and modify this file to your liking.
# init diagram
init_diagram: |
"librespeed: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-librespeed-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
init-nginx-end -> init-librespeed-config
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
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
}
"librespeed:latest" <- Base Images
# changelog
changelogs:
- { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }
- { date: "29.04.20:", desc: "Add donation links for LibreSpeed to Github sponsor button and container log." }
- { date: "09.01.20:", desc: "Initial Release." }
- {date: "27.07.25:", desc: "Rebase to Alpine 3.22."}
- {date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- {date: "06.12.23:", desc: "Replace php mysqli with php pdo_pgsql."}
- {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- {date: "14.05.23:", desc: "Added support for ipinfo.io"}
- {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- {date: "20.08.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.03.21:", desc: "Fix up database settings. Make sure `index.html` is recreated."}
- {date: "28.02.21:", desc: "Added php7-ctype."}
- {date: "23.01.21:", desc: "Rebasing to alpine 3.13."}
- {date: "01.06.20:", desc: "Rebasing to alpine 3.12."}
- {date: "29.04.20:", desc: "Add donation links for LibreSpeed to Github sponsor button and container log."}
- {date: "09.01.20:", desc: "Initial Release."}

View File

@ -1,31 +0,0 @@
## Version 2020/01/06 - Changelog: https://github.com/linuxserver/docker-librespeed/commits/master/root/defaults/default
server {
listen 80 default_server;
listen 443 ssl;
root /usr/share/webapps/librespeed;
index index.php index.html index.htm;
real_ip_header X-Forwarded-For;
set_real_ip_from 172.17.0.0/16;
server_name _;
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
client_max_body_size 0;
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}

View File

@ -349,4 +349,4 @@ function initUI(){
</div>
<script type="text/javascript">setTimeout(function(){initUI()},100);</script>
</body>
</html>
</html>

View File

@ -1,61 +0,0 @@
#!/usr/bin/with-contenv bash
# make our folders
mkdir -p \
/config/www \
/config/www/img
# create symlink to index.html
[[ ! -L /usr/share/webapps/librespeed/index.html ]] && \
ln -s /config/www/index.html /usr/share/webapps/librespeed/index.html
# update templates
cp /usr/share/webapps/librespeed/example*.html /config/www/
# use custom js files if exist
[[ -f /config/www/speedtest.js ]] && \
cp /config/www/speedtest.js /usr/share/webapps/librespeed/speedtest.js
[[ -f /config/www/speedtest_worker.js ]] && \
cp /config/www/speedtest_worker.js /usr/share/webapps/librespeed/speedtest_worker.js
# enables custom results page
if "$CUSTOM_RESULTS"; then
echo "custom results"
[[ ! -e "/config/www/results/index.php" ]] && \
mkdir -p /config/www/results/ && \
mv /usr/share/webapps/librespeed/results/index.php /config/www/results/index.php
ln -sf /config/www/results/index.php /usr/share/webapps/librespeed/results/index.php
fi
# configure app settings
sed -i "\
s|\$Sqlite_db_file = \"../../speedtest_telemetry.sql\";|\$Sqlite_db_file = \"/config/speedtest_telemetry.sql\";|g; \
s|\$enable_id_obfuscation=false;|\$enable_id_obfuscation=true;|g;
s|\$stats_password=\"PASSWORD\";|\$stats_password=\"${PASSWORD}\";|g" \
/usr/share/webapps/librespeed/results/telemetry_settings.php
if [ "$DB_TYPE" = "postgresql" ]; then
sed -i "\
s|\$db_type=\"mysql\";|\$db_type=\"${DB_TYPE}\";|g \
s|\$PostgreSql_username=\"USERNAME\";|\$PostgreSql_username=\"${DB_USERNAME}\";|g; \
s|\$PostgreSql_password=\"PASSWORD\";|\$PostgreSql_password=\"${DB_PASSWORD}\";|g; \
s|\$PostgreSql_hostname=\"DB_HOSTNAME\";|\$PostgreSql_hostname=\"${DB_HOSTNAME}\";|g; \
s|\$PostgreSql_databasename=\"DB_NAME\";|\$PostgreSql_databasename=\"${DB_NAME}\";|g" \
/usr/share/webapps/librespeed/results/telemetry_settings.php
elif [ "$DB_TYPE" = "mysql" ]; then
sed -i "\
s|\$MySql_username=\"USERNAME\";|\$MySql_username=\"${DB_USERNAME}\";|g; \
s|\$MySql_password=\"PASSWORD\";|\$MySql_password=\"${DB_PASSWORD}\";|g; \
s|\$MySql_hostname=\"DB_HOSTNAME\";|\$MySql_hostname=\"${DB_HOSTNAME}\";|g; \
s|\$MySql_databasename=\"DB_NAME\";|\$MySql_databasename=\"${DB_NAME}\";|g" \
/usr/share/webapps/librespeed/results/telemetry_settings.php
else
sed -i \
"s|\$db_type=\"mysql\";|\$db_type=\"sqlite\";|g" \
/usr/share/webapps/librespeed/results/telemetry_settings.php
fi
# permissions
echo "Setting permissions"
chown -R abc:abc \
/usr/share/webapps/librespeed \
/config

View File

@ -0,0 +1,70 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make our folders
mkdir -p \
/config/www/img
# create symlink to index.html
if [[ ! -L /app/www/public/index.html ]]; then
ln -sf /config/www/index.html /app/www/public/index.html
fi
# update templates
cp /app/www/public/examples/example*.html /config/www/
# use custom js files if exist
if [[ -f /config/www/speedtest.js ]]; then
cp /config/www/speedtest.js /app/www/public/speedtest.js
fi
if [[ -f /config/www/speedtest_worker.js ]]; then
cp /config/www/speedtest_worker.js /app/www/public/speedtest_worker.js
fi
# sets apikey for ipinfo.io, if it exists
if [ -n "$IPINFO_APIKEY" ]; then
sed -i "s/\$IPINFO_APIKEY = .*/\$IPINFO_APIKEY = '${IPINFO_APIKEY:-}';/g" \
/app/www/public/backend/getIP_ipInfo_apikey.php
fi
# enables custom results page
if [ "$CUSTOM_RESULTS" == "true" ]; then
echo "custom results"
if [[ ! -e "/config/www/results/index.php" ]]; then
mkdir -p /config/www/results/
mv /app/www/public/results/index.php /config/www/results/index.php
fi
ln -sf /config/www/results/index.php /app/www/public/results/index.php
fi
# configure app settings
sed -i "\
s|\$Sqlite_db_file.*|\$Sqlite_db_file = \'/config/speedtest_telemetry.sql\';|g; \
s|\$enable_id_obfuscation.*|\$enable_id_obfuscation = true;|g;
s|\$stats_password.*|\$stats_password = \'${PASSWORD}\';|g" \
/app/www/public/results/telemetry_settings.php
if [ "$DB_TYPE" = "postgresql" ]; then
sed -i "\
s|\$db_type.*|\$db_type = \'${DB_TYPE}\';|g; \
s|\$PostgreSql_username.*|\$PostgreSql_username = \'${DB_USERNAME}\';|g; \
s|\$PostgreSql_password.*|\$PostgreSql_password = \'${DB_PASSWORD}\';|g; \
s|\$PostgreSql_hostname.*|\$PostgreSql_hostname = \'${DB_HOSTNAME}\';|g; \
s|\$PostgreSql_databasename.*|\$PostgreSql_databasename = \'${DB_NAME}\';|g" \
/app/www/public/results/telemetry_settings.php
elif [ "$DB_TYPE" = "mysql" ]; then
sed -i "\
s|\$MySql_username.*|\$MySql_username = \'${DB_USERNAME}\';|g; \
s|\$MySql_password.*|\$MySql_password = \'${DB_PASSWORD}\';|g; \
s|\$MySql_hostname.*|\$MySql_hostname = \'${DB_HOSTNAME}\';|g; \
s|\$MySql_databasename.*|\$MySql_databasename = \'${DB_NAME}\';|g; \
s|\$MySql_port.*|\$MySql_port = \'${DB_PORT:-3306}\';|g" \
/app/www/public/results/telemetry_settings.php
else
sed -i \
"s|\$db_type.*|\$db_type = \'sqlite\';|g" \
/app/www/public/results/telemetry_settings.php
fi
# permissions
lsiown -R abc:abc \
/config

View File

@ -0,0 +1 @@
oneshot

View File

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

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 /usr/share/webapps/librespeed;"
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>