Compare commits

...

262 Commits

Author SHA1 Message Date
LinuxServer-CI
1b03873f5f
Bot Updating Package Versions 2026-03-15 04:10:40 +00:00
LinuxServer-CI
b9fc958c68
Bot Updating Templated Files 2026-02-15 03:52:01 +00:00
LinuxServer-CI
1c18517673
Bot Updating Templated Files 2026-02-15 03:50:01 +00:00
LinuxServer-CI
249aa8b73d
Bot Updating Package Versions 2026-02-08 04:13:48 +00:00
LinuxServer-CI
7d958ff72a
Bot Updating Package Versions 2026-02-01 04:09:37 +00:00
LinuxServer-CI
91d4f4951a
Bot Updating Package Versions 2026-01-25 03:26:53 +00:00
LinuxServer-CI
93ca2b2ce4
Bot Updating Package Versions 2026-01-04 03:23:39 +00:00
LinuxServer-CI
a5b83fec31
Bot Updating Package Versions 2025-12-21 03:10:03 +00:00
LinuxServer-CI
368dea2d30
Bot Updating Package Versions 2025-12-14 03:09:52 +00:00
LinuxServer-CI
93460d6067
Bot Updating Package Versions 2025-12-07 03:08:23 +00:00
LinuxServer-CI
64ada7f4be
Bot Updating Package Versions 2025-11-23 03:13:07 +00:00
LinuxServer-CI
da0549228b
Bot Updating Templated Files 2025-11-23 03:04:36 +00:00
LinuxServer-CI
1a7c3778ef
Bot Updating Package Versions 2025-11-16 02:59:53 +00:00
LinuxServer-CI
55ac512133
Bot Updating Templated Files 2025-10-26 02:49:13 +00:00
LinuxServer-CI
73fa97fe4d
Bot Updating Package Versions 2025-10-19 02:58:09 +00:00
LinuxServer-CI
8b730f5cd3
Bot Updating Package Versions 2025-10-12 02:46:08 +00:00
LinuxServer-CI
4582c00b1f
Bot Updating Package Versions 2025-10-05 02:51:04 +00:00
LinuxServer-CI
7fd0519763
Bot Updating Package Versions 2025-09-28 02:51:46 +00:00
LinuxServer-CI
d8765144a3
Bot Updating Package Versions 2025-08-24 03:01:48 +00:00
LinuxServer-CI
d3e5d1239d
Bot Updating Package Versions 2025-08-17 03:08:14 +00:00
LinuxServer-CI
78da3140ee
Bot Updating Package Versions 2025-08-03 03:26:44 +00:00
LinuxServer-CI
c244d6b520
Bot Updating Package Versions 2025-07-27 03:23:13 +00:00
LinuxServer-CI
73cc60fcac
Bot Updating Package Versions 2025-07-20 03:22:05 +00:00
LinuxServer-CI
6e43b4e4a8
Bot Updating Package Versions 2025-07-13 03:17:57 +00:00
LinuxServer-CI
1f0e21dfb8
Bot Updating Package Versions 2025-07-06 03:16:09 +00:00
LinuxServer-CI
f5c0f6c719
Bot Updating Templated Files 2025-07-06 03:07:45 +00:00
LinuxServer-CI
99d59aac75
Bot Updating Templated Files 2025-07-06 03:06:02 +00:00
LinuxServer-CI
419d680893
Bot Updating Templated Files 2025-06-15 03:03:50 +00:00
LinuxServer-CI
e4000f8d73
Bot Updating Package Versions 2025-05-18 03:06:55 +00:00
LinuxServer-CI
2ad9e7e7a6
Bot Updating Templated Files 2025-05-18 02:58:18 +00:00
LinuxServer-CI
3fcb42adc3
Bot Updating Package Versions 2025-04-20 02:51:36 +00:00
LinuxServer-CI
48790c3bdd
Bot Updating Package Versions 2025-04-13 03:56:37 +00:00
LinuxServer-CI
b3b94d61f4
Bot Updating Package Versions 2025-04-06 02:48:10 +00:00
LinuxServer-CI
0e68ac2865
Bot Updating Package Versions 2025-03-23 02:47:25 +00:00
LinuxServer-CI
34a74aa204
Bot Updating Package Versions 2025-03-16 02:43:33 +00:00
LinuxServer-CI
51b77bdaca
Bot Updating Package Versions 2025-03-02 02:40:43 +00:00
LinuxServer-CI
59d336c80d
Bot Updating Package Versions 2025-02-23 02:37:23 +00:00
LinuxServer-CI
c84a611e6e
Bot Updating Package Versions 2025-02-16 02:44:05 +00:00
LinuxServer-CI
0df560589e
Bot Updating Templated Files 2025-02-16 02:35:11 +00:00
LinuxServer-CI
22cff16c47
Bot Updating Templated Files 2025-02-02 02:31:40 +00:00
LinuxServer-CI
d84e576796
Bot Updating Templated Files 2025-02-02 02:30:31 +00:00
LinuxServer-CI
c25c501a9a
Bot Updating Package Versions 2025-01-26 02:31:39 +00:00
quietsy
ab6e51da96
Merge pull request #28 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-21 04:42:23 +02:00
quietsy
df967eed69 Add categories to readme-vars.yml 2025-01-20 17:21:06 +02:00
LinuxServer-CI
71eee82a76
Bot Updating Package Versions 2025-01-19 02:41:28 +00:00
LinuxServer-CI
353f1bb7a1
Bot Updating Package Versions 2025-01-05 02:39:44 +00:00
LinuxServer-CI
3c9af48a5a
Bot Updating Package Versions 2024-12-22 02:46:42 +00:00
LinuxServer-CI
5f1476a7b6
Bot Updating Templated Files 2024-12-22 02:37:57 +00:00
LinuxServer-CI
797eea48ad
Bot Updating Templated Files 2024-12-22 02:36:18 +00:00
LinuxServer-CI
a1c4218ae7
Bot Updating Package Versions 2024-12-15 02:57:49 +00:00
LinuxServer-CI
7533a806ad
Bot Updating Templated Files 2024-12-08 02:52:43 +00:00
LinuxServer-CI
67019037b4
Bot Updating Templated Files 2024-12-08 02:51:16 +00:00
LinuxServer-CI
5e5312fb43
Bot Updating Templated Files 2024-12-08 02:49:43 +00:00
LinuxServer-CI
7a390894af
Bot Updating Package Versions 2024-12-01 02:59:56 +00:00
LinuxServer-CI
c2e4fc4f53
Bot Updating Package Versions 2024-11-24 02:47:07 +00:00
LinuxServer-CI
7a45460625
Bot Updating Package Versions 2024-11-17 02:44:42 +00:00
LinuxServer-CI
3986dc33da
Bot Updating Templated Files 2024-11-10 02:34:28 +00:00
LinuxServer-CI
c2fa277e18
Bot Updating Templated Files 2024-11-10 02:33:14 +00:00
LinuxServer-CI
2c48fa50d8
Bot Updating Package Versions 2024-10-27 02:39:21 +00:00
LinuxServer-CI
7661ee3f70
Bot Updating Package Versions 2024-10-13 02:39:49 +00:00
LinuxServer-CI
9bf7d9bb57
Bot Updating Package Versions 2024-09-29 02:47:50 +00:00
LinuxServer-CI
3a5421771e
Bot Updating Templated Files 2024-09-29 02:40:03 +00:00
LinuxServer-CI
865cd50e4a
Bot Updating Templated Files 2024-09-29 02:38:40 +00:00
LinuxServer-CI
562d75e4eb
Bot Updating Templated Files 2024-09-29 02:37:05 +00:00
LinuxServer-CI
b5d50790aa
Bot Updating Package Versions 2024-09-14 16:18:22 +00:00
Eric Nemchik
bd876fcad9
Merge pull request #26 from linuxserver/ipv6-listen
separate ipv6 listen in default site-conf
2024-09-14 09:09:21 -07:00
LinuxServer-CI
5848b6156c
Bot Updating Package Versions 2024-09-08 02:35:07 +00:00
LinuxServer-CI
781a3cf3a3
Bot Updating Package Versions 2024-08-25 02:25:03 +00:00
LinuxServer-CI
e7fe51748f
Bot Updating Package Versions 2024-08-18 02:26:43 +00:00
LinuxServer-CI
48b2ca991b
Bot Updating Templated Files 2024-08-18 02:19:04 +00:00
LinuxServer-CI
8a6f4070ba Bot Updating Templated Files 2024-08-18 02:16:58 +00:00
Adam
47b0ac6d4d
Merge pull request #27 from linuxserver/migrations-x 2024-08-13 18:27:28 +01:00
thespad
990a49e4a7
Increase CI timeout 2024-08-13 16:18:55 +01:00
thespad
982edbdb42
Make migrations executable 2024-08-13 15:15:51 +01:00
LinuxServer-CI
e46f84bbe7 Bot Updating Package Versions 2024-08-11 02:21:49 +00:00
LinuxServer-CI
6debec0671 Bot Updating Package Versions 2024-08-04 02:18:38 +00:00
LinuxServer-CI
740beb3c5e Bot Updating Package Versions 2024-07-21 02:17:23 +00:00
Eric Nemchik
f8adc59927
separate ipv6 listen in default site-conf 2024-07-16 20:32:00 -05:00
LinuxServer-CI
981425b407 Bot Updating Package Versions 2024-07-14 02:28:19 +00:00
LinuxServer-CI
e73073b17c Bot Updating Templated Files 2024-07-14 02:20:33 +00:00
LinuxServer-CI
26d390857d Bot Updating Templated Files 2024-07-14 02:18:36 +00:00
LinuxServer-CI
c6498c9fa1 Bot Updating Package Versions 2024-07-07 02:20:33 +00:00
LinuxServer-CI
95a9190446 Bot Updating Package Versions 2024-06-30 02:22:58 +00:00
LinuxServer-CI
cd6c38bda1 Bot Updating Package Versions 2024-06-16 02:15:57 +00:00
LinuxServer-CI
ca5b23ed76 Bot Updating Package Versions 2024-06-08 20:53:48 +00:00
Adam
2fa3f089de
Merge pull request #25 from linuxserver/3.20
Rebase to 3.20
2024-06-08 21:46:13 +01:00
thespad
7bce52ebf4
Rebase to 3.20 2024-06-06 17:49:16 +01:00
LinuxServer-CI
5afa5bbe8e Bot Updating Package Versions 2024-05-26 02:24:20 +00:00
LinuxServer-CI
c5c5c586da Bot Updating Templated Files 2024-05-26 02:16:19 +00:00
LinuxServer-CI
0eb12b70e3 Bot Updating Templated Files 2024-05-26 02:13:56 +00:00
LinuxServer-CI
9b982ee314 Bot Updating Package Versions 2024-05-19 02:11:07 +00:00
LinuxServer-CI
af0099d0e4 Bot Updating Package Versions 2024-05-12 02:15:53 +00:00
LinuxServer-CI
e0c7944fb7 Bot Updating Templated Files 2024-05-12 02:07:47 +00:00
LinuxServer-CI
bef7f55a06 Bot Updating Package Versions 2024-05-05 02:14:19 +00:00
LinuxServer-CI
a768812ed6 Bot Updating Templated Files 2024-05-05 02:05:53 +00:00
LinuxServer-CI
23272d2ced Bot Updating Package Versions 2024-04-28 02:13:27 +00:00
LinuxServer-CI
da5bf5ca5d Bot Updating Package Versions 2024-04-21 02:06:06 +00:00
LinuxServer-CI
ea6b583d90 Bot Updating Package Versions 2024-04-14 03:04:10 +00:00
LinuxServer-CI
fc5dd1e23f Bot Updating Package Versions 2024-04-07 02:05:42 +00:00
LinuxServer-CI
2dc60c6e09 Bot Updating Package Versions 2024-03-31 02:04:56 +00:00
LinuxServer-CI
b21f028bab Bot Updating Package Versions 2024-03-24 02:14:40 +00:00
LinuxServer-CI
49b21adb1f Bot Updating Package Versions 2024-03-17 02:13:50 +00:00
LinuxServer-CI
90015111c3 Bot Updating Templated Files 2024-03-17 02:01:27 +00:00
LinuxServer-CI
60f2c05d34 Bot Updating Package Versions 2024-03-10 02:05:17 +00:00
LinuxServer-CI
d123cf2494 Bot Updating Templated Files 2024-03-06 18:27:08 +00:00
Eric Nemchik
e543209c16
Cleanup default site conf (#24)
* Cleanup default site conf

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

* update date

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 13:23:42 -05:00
LinuxServer-CI
cff717a145 Bot Updating Package Versions 2024-03-06 16:35:09 +00:00
LinuxServer-CI
e73e108435 Bot Updating Templated Files 2024-03-06 16:24:10 +00:00
LinuxServer-CI
220e1c7f4c Bot Updating Templated Files 2024-03-06 16:22:01 +00:00
aptalca
c8f87d8076
Merge pull request #23 from linuxserver/3.19
Rebase to Alpine 3.19
2024-03-06 11:19:28 -05:00
aptalca
93b0501b14
reduce ci delay 2024-03-06 10:21:43 -05:00
aptalca
13008c579b
update changelog 2024-03-06 10:07:35 -05:00
LinuxServer-CI
c3946b5c4a Bot Updating Package Versions 2024-03-03 02:02:54 +00:00
LinuxServer-CI
7db49c755f Bot Updating Package Versions 2024-02-25 02:12:13 +00:00
LinuxServer-CI
a1ba97e0dc Bot Updating Templated Files 2024-02-25 02:03:05 +00:00
LinuxServer-CI
32c20088e6 Bot Updating Templated Files 2024-02-25 02:01:28 +00:00
LinuxServer-CI
c6aa689612 Bot Updating Package Versions 2024-02-18 02:07:12 +00:00
LinuxServer-CI
626880a834 Bot Updating Package Versions 2024-02-11 02:03:34 +00:00
LinuxServer-CI
99a65ae836 Bot Updating Package Versions 2024-02-04 02:05:39 +00:00
LinuxServer-CI
2120a9f15f Bot Updating Package Versions 2024-01-21 02:13:31 +00:00
LinuxServer-CI
4592db1e8c Bot Updating Package Versions 2024-01-14 02:20:18 +00:00
LinuxServer-CI
2d956b179f Bot Updating Templated Files 2024-01-14 02:12:51 +00:00
LinuxServer-CI
08031b096e Bot Updating Templated Files 2024-01-14 02:11:14 +00:00
LinuxServer-CI
af0fdd7ee1 Bot Updating Package Versions 2024-01-07 02:12:10 +00:00
LinuxServer-CI
36eab4de83 Bot Updating Package Versions 2023-12-24 02:12:12 +00:00
Eric Nemchik
9814d9b061
Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:08:48 -06:00
LinuxServer-CI
6ebaad96de Bot Updating Package Versions 2023-12-17 02:10:20 +00:00
LinuxServer-CI
33d7b3bc5f Bot Updating Package Versions 2023-12-10 02:14:29 +00:00
LinuxServer-CI
d0856eb36e Bot Updating Package Versions 2023-12-03 02:08:45 +00:00
Eric Nemchik
fd4ecb2ac3
Merge pull request #22 from linuxserver/quiet-migration
only run migration if conf exists
2023-11-29 08:31:17 -06:00
LinuxServer-CI
760de7ed1d Bot Updating Package Versions 2023-11-26 02:12:35 +00:00
Eric Nemchik
5fa7732029
only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:42:41 -06:00
LinuxServer-CI
922cc087ee Bot Updating Package Versions 2023-11-19 02:18:49 +00:00
LinuxServer-CI
ef4b8a2e2e Bot Updating Templated Files 2023-11-19 02:08:19 +00:00
LinuxServer-CI
e23d1682cc Bot Updating Package Versions 2023-11-12 02:07:28 +00:00
LinuxServer-CI
739acc53b8 Bot Updating Package Versions 2023-10-29 02:04:47 +00:00
LinuxServer-CI
7df4167cc6 Bot Updating Package Versions 2023-10-22 02:05:40 +00:00
LinuxServer-CI
cce4fe7405 Bot Updating Package Versions 2023-10-15 02:05:20 +00:00
LinuxServer-CI
83fdff4ec0 Bot Updating Package Versions 2023-10-08 02:15:34 +00:00
LinuxServer-CI
d2aa257abb Bot Updating Templated Files 2023-10-08 02:07:04 +00:00
LinuxServer-CI
ee39c6316d Bot Updating Templated Files 2023-10-08 02:04:37 +00:00
LinuxServer-CI
8c75f58330 Bot Updating Package Versions 2023-10-01 02:08:59 +00:00
LinuxServer-CI
e593afb18c Bot Updating Package Versions 2023-09-24 02:04:00 +00:00
LinuxServer-CI
a2e80538a6 Bot Updating Package Versions 2023-09-17 02:08:10 +00:00
LinuxServer-CI
17ffad8eb5 Bot Updating Package Versions 2023-09-10 02:09:01 +00:00
LinuxServer-CI
c03dcfb65d Bot Updating Package Versions 2023-09-03 02:06:49 +00:00
LinuxServer-CI
bec61a854a Bot Updating Package Versions 2023-08-27 02:02:12 +00:00
LinuxServer-CI
d72451914e Bot Updating Package Versions 2023-08-20 02:03:56 +00:00
LinuxServer-CI
db4e3d92a6 Bot Updating Package Versions 2023-08-13 02:03:51 +00:00
LinuxServer-CI
eccf25f966 Bot Updating Package Versions 2023-08-06 02:04:16 +00:00
LinuxServer-CI
36d50052cf Bot Updating Package Versions 2023-07-30 02:11:27 +00:00
LinuxServer-CI
24432f8ad6 Bot Updating Package Versions 2023-07-23 02:26:30 +00:00
LinuxServer-CI
fefa8facfe Bot Updating Package Versions 2023-07-16 03:01:52 +00:00
LinuxServer-CI
c8d7788c51 Bot Updating Package Versions 2023-07-09 02:52:41 +00:00
LinuxServer-CI
477f57150e Bot Updating Package Versions 2023-07-02 03:00:10 +00:00
LinuxServer-CI
2ffad3306e Bot Updating Templated Files 2023-07-02 02:49:26 +00:00
LinuxServer-CI
95d4c4b82c Bot Updating Package Versions 2023-06-25 02:59:46 +00:00
LinuxServer-CI
003b7ebf2e Bot Updating Package Versions 2023-06-18 02:45:48 +00:00
LinuxServer-CI
696b808b8d Bot Updating Package Versions 2023-06-11 02:54:22 +00:00
LinuxServer-CI
742efdc034 Bot Updating Package Versions 2023-06-04 03:00:05 +00:00
LinuxServer-CI
9e6eaef9b9 Bot Updating Package Versions 2023-05-30 14:21:54 +00:00
Eric Nemchik
e711047747
Merge pull request #20 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-30 09:11:39 -05:00
Eric Nemchik
c1ec5d3a8f
Merge remote-tracking branch 'origin/main' into 3.18
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-05-29 18:13:47 -05:00
LinuxServer-CI
603828ea16 Bot Updating Package Versions 2023-05-28 02:39:55 +00:00
LinuxServer-CI
0548da3e86 Bot Updating Templated Files 2023-05-28 02:29:32 +00:00
Eric Nemchik
9391fd4aab
Rebase to Alpine 3.18, deprecate armhf 2023-05-27 16:46:24 -05:00
LinuxServer-CI
7955285d90 Bot Updating Package Versions 2023-05-21 02:20:52 +00:00
LinuxServer-CI
777cb323df Bot Updating Package Versions 2023-05-14 02:17:29 +00:00
LinuxServer-CI
ecfcc371c2 Bot Updating Package Versions 2023-04-30 02:23:05 +00:00
LinuxServer-CI
289b990ee3 Bot Updating Templated Files 2023-04-30 02:13:53 +00:00
LinuxServer-CI
9d7ff937a1 Bot Updating Templated Files 2023-04-30 02:12:56 +00:00
LinuxServer-CI
43c99d2320 Bot Updating Package Versions 2023-04-23 04:27:29 +02:00
Eric Nemchik
3fcf16cfd2
Merge pull request #19 from linuxserver/move-ssl-include
Move ssl.conf include to default.conf
2023-04-17 12:29:31 -05:00
LinuxServer-CI
5dd3f9ac68 Bot Updating Package Versions 2023-04-15 21:23:55 -05:00
Eric Nemchik
549aff84e5 Move ssl.conf include to default.conf 2023-04-13 11:05:11 -05:00
LinuxServer-CI
eb6a8eb340 Bot Updating Package Versions 2023-04-08 21:16:54 -05:00
LinuxServer-CI
b27f583822 Bot Updating Package Versions 2023-04-04 13:34:45 +02:00
LinuxServer-CI
cfbfff3d50 Bot Updating Templated Files 2023-04-04 06:24:55 -05:00
LinuxServer-CI
f46b9c09cb Bot Updating Templated Files 2023-04-04 13:23:19 +02:00
LinuxServer-CI
d561cfa4c2 Bot Updating Templated Files 2023-04-04 06:21:40 -05:00
LinuxServer-CI
ef9ccf2e54 Bot Updating Package Versions 2023-03-28 06:28:44 -05:00
LinuxServer-CI
ccbd09cbb6 Bot Updating Package Versions 2023-03-14 06:31:22 -05:00
LinuxServer-CI
7df73a1f46 Bot Updating Package Versions 2023-03-07 12:35:27 +01:00
LinuxServer-CI
583a46e8f5 Bot Updating Templated Files 2023-03-07 12:25:18 +01:00
LinuxServer-CI
9796e1f734 Bot Updating Package Versions 2023-02-28 05:30:14 -06:00
LinuxServer-CI
f8a4446558 Bot Updating Package Versions 2023-02-21 12:29:58 +01:00
LinuxServer-CI
3c6f2685d5 Bot Updating Package Versions 2023-02-14 05:35:49 -06:00
LinuxServer-CI
c012727aa4 Bot Updating Templated Files 2023-02-14 12:26:35 +01:00
LinuxServer-CI
1b83c881cd Bot Updating Templated Files 2023-02-14 05:25:16 -06:00
LinuxServer-CI
b260836892 Bot Updating Package Versions 2023-02-07 05:27:49 -06:00
LinuxServer-CI
3c09883adb Bot Updating Package Versions 2023-01-20 08:23:50 -06:00
Eric Nemchik
6c7adfa6dc
Merge pull request #18 from linuxserver/dependency
Use init-nginx-end dependency
2023-01-20 08:14:01 -06:00
Eric Nemchik
7c90b90cd5 Use init-nginx-end dependency 2023-01-19 20:25:40 -06:00
Eric Nemchik
d7210d7aa6
Merge pull request #17 from linuxserver/format
Format shell scripts
2023-01-18 06:04:32 -06:00
LinuxServer-CI
bbbd102ead Bot Updating Package Versions 2023-01-17 12:28:45 +01:00
Eric Nemchik
9c76656efc Dockerfile updates 2023-01-16 21:08:47 -06:00
Eric Nemchik
8b9d74d786 Format shell scripts 2023-01-16 21:00:11 -06:00
LinuxServer-CI
0575ce07e5 Bot Updating Package Versions 2023-01-10 12:28:52 +01:00
LinuxServer-CI
7695fd1a7d Bot Updating Package Versions 2023-01-03 12:27:34 +01:00
LinuxServer-CI
22e2730859 Bot Updating Package Versions 2022-12-27 12:27:21 +01:00
LinuxServer-CI
56389bf33c Bot Updating Package Versions 2022-12-20 12:27:57 +01:00
LinuxServer-CI
ed1e0ad745 Bot Updating Package Versions 2022-12-13 19:53:08 +01:00
Adam
0ecfe61fad
Merge pull request #15 from linuxserver/3.17 2022-12-13 18:44:42 +00:00
TheSpad
9905b44068
Enable webci 2022-12-08 10:37:07 +00:00
Eric Nemchik
8457d269e7
Merge pull request #16 from linuxserver/nemchik-patch-1
Update default.conf.sample
2022-12-07 18:45:27 -06:00
Eric Nemchik
61cb160d02
Update default.conf.sample 2022-12-07 14:12:16 -06:00
TheSpad
c02b5f74e3
Use correct base tags 2022-11-29 17:41:16 +00:00
TheSpad
35be70a50b
Clean npm cache at end of build 2022-11-29 17:20:40 +00:00
TheSpad
658e62286c
Tidy up npm commands, fix base image 2022-11-29 16:28:23 +00:00
TheSpad
3a77c919c9
Rebase to 3.17, migrate to s6v3 2022-11-29 15:58:14 +00:00
LinuxServer-CI
246bdb2979 Bot Updating Templated Files 2022-11-29 12:28:42 +01:00
LinuxServer-CI
0a2bec373c Bot Updating Templated Files 2022-11-29 05:27:26 -06:00
LinuxServer-CI
c665a6a9fb Bot Updating Templated Files 2022-11-29 05:26:03 -06:00
LinuxServer-CI
6626fc6116 Bot Updating Package Versions 2022-11-15 12:37:12 +01:00
LinuxServer-CI
8d8554d479 Bot Updating Templated Files 2022-11-15 12:27:04 +01:00
LinuxServer-CI
55060a18ee Bot Updating Package Versions 2022-11-08 12:33:57 +01:00
LinuxServer-CI
3b3849903e Bot Updating Package Versions 2022-11-01 06:35:19 -05:00
LinuxServer-CI
d93344542a Bot Updating Package Versions 2022-10-25 06:38:54 -05:00
LinuxServer-CI
63e79a70dc Bot Updating Package Versions 2022-10-11 06:39:07 -05:00
LinuxServer-CI
d89da4fbfe Bot Updating Package Versions 2022-09-27 06:38:47 -05:00
LinuxServer-CI
59a8253660 Bot Updating Package Versions 2022-09-20 06:53:11 -05:00
LinuxServer-CI
b93be8e8da Bot Updating Templated Files 2022-09-20 13:32:12 +02:00
LinuxServer-CI
422578b905 Bot Updating Package Versions 2022-09-13 13:36:28 +02:00
LinuxServer-CI
6cb72acd09 Bot Updating Package Versions 2022-08-30 06:34:38 -05:00
LinuxServer-CI
8cbc082b84 Bot Updating Package Versions 2022-08-23 06:33:23 -05:00
LinuxServer-CI
0d8175d303 Bot Updating Package Versions 2022-08-16 06:29:54 -05:00
LinuxServer-CI
565726de8d Bot Updating Package Versions 2022-08-09 06:32:51 -05:00
LinuxServer-CI
b4b3b9fe7c Bot Updating Package Versions 2022-08-02 06:33:14 -05:00
LinuxServer-CI
26705bf355 Bot Updating Package Versions 2022-07-26 06:32:14 -05:00
LinuxServer-CI
7796c3f3fd Bot Updating Package Versions 2022-07-19 13:34:21 +02:00
LinuxServer-CI
2efb93a04e Bot Updating Package Versions 2022-07-12 06:31:59 -05:00
LinuxServer-CI
92facdc912 Bot Updating Package Versions 2022-07-05 06:33:34 -05:00
LinuxServer-CI
c5d68ba124 Bot Updating Package Versions 2022-06-28 13:32:54 +02:00
LinuxServer-CI
823767385c Bot Updating Package Versions 2022-06-21 07:13:23 -05:00
LinuxServer-CI
1f14fe0026 Bot Updating Package Versions 2022-06-14 13:32:21 +02:00
LinuxServer-CI
b01e2eff06 Bot Updating Package Versions 2022-06-07 06:31:31 -05:00
LinuxServer-CI
68a7b638ef Bot Updating Package Versions 2022-05-27 17:29:00 +02:00
LinuxServer-CI
a40c1ad478 Bot Updating Package Versions 2022-05-21 16:18:27 +02:00
LinuxServer-CI
5347883fbb Bot Updating Package Versions 2022-05-17 13:34:40 +02:00
LinuxServer-CI
457ff4a892 Bot Updating Package Versions 2022-05-10 13:35:12 +02:00
LinuxServer-CI
149fd130a3 Bot Updating Templated Files 2022-05-03 06:31:12 -05:00
LinuxServer-CI
56c8bd9a50 Bot Updating Templated Files 2022-05-03 13:29:48 +02:00
Alex Phillips
b2ca1197da
Merge pull request #12 from linuxserver/fix-migration
fixed migration command and dir
2022-04-28 13:11:09 -04:00
LinuxServer-CI
75cec0ab98 Bot Updating Package Versions 2022-04-28 15:09:25 +02:00
Alex Phillips
488a375725 fixed migration command and dir 2022-04-27 23:01:42 -04:00
Alex Phillips
fe9a1218e3
Merge pull request #10 from linuxserver/db-migrations
added npm migrate command
2022-04-15 11:28:08 -04:00
Alex Phillips
330203b3f3 fixed dates 2022-04-15 10:20:50 -04:00
LinuxServer-CI
cd70d1c778 Bot Updating Package Versions 2022-04-15 07:34:23 -05:00
Alex Phillips
584b9bcbd6 added npm migrate command 2022-04-15 08:14:52 -04:00
LinuxServer-CI
04694cd570 Bot Updating Package Versions 2022-04-12 06:31:18 -05:00
LinuxServer-CI
d5f30513c3 Bot Updating Package Versions 2022-04-05 06:30:34 -05:00
LinuxServer-CI
81fb8e9df0 Bot Updating Package Versions 2022-03-29 13:45:17 +02:00
LinuxServer-CI
daa0797dd6 Bot Updating Package Versions 2022-03-22 12:32:04 +01:00
LinuxServer-CI
c9f7c9e01b Bot Updating Package Versions 2022-03-15 12:32:09 +01:00
LinuxServer-CI
2ce7156e55 Bot Updating Package Versions 2022-03-08 12:32:11 +01:00
LinuxServer-CI
b8082d6d1d Bot Updating Package Versions 2022-02-24 17:52:06 +01:00
LinuxServer-CI
426bac6de4 Bot Updating Package Versions 2022-02-20 21:20:33 +01:00
aptalca
6f35135635
Merge pull request #5 from linuxserver/fix-release-value
build from release, not commit
2022-02-16 14:45:08 -05:00
Alex Phillips
4e3d5e12c7 use latest release 2022-02-16 13:41:28 -05:00
Alex Phillips
0022f3998c build from release, not commit 2022-02-16 13:02:27 -05:00
Alex Phillips
bf08ff5faf
Merge pull request #4 from linuxserver/release-var-fix
fixed copy/paste var name error:
2022-02-16 08:19:40 -05:00
Alex Phillips
7c18c44f3c fixed copy/paste var name error: 2022-02-14 08:51:34 -05:00
42 changed files with 3339 additions and 923 deletions

View File

@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4

View File

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* 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
@ -105,10 +105,10 @@ docker build \
-t linuxserver/budge:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

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 budge" -->

76
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable 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 budge"
label: Container logs
placeholder: |
Output of `docker logs budge`
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 -->

31
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file
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

19
.github/workflows/call_issue_pr_tracker.yml vendored Executable file
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 Executable file
View File

@ -0,0 +1,16 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '12 23 * * *'
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

View File

@ -3,24 +3,42 @@ name: External Trigger Main
on:
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-main:
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/main'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_BUDGE_MAIN }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_BUDGE_MAIN is set; skipping trigger. ****"
printf "# External trigger for docker-budge\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^budge_main_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`budge_main_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^budge_main" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`budge_main\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** External trigger running off of main branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_BUDGE_MAIN\". ****"
echo "**** Retrieving external version ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of main branch. To disable this trigger, add \`budge_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/budge/releases/latest" | jq -r '. | .tag_name')
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^budge_main_${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 budge branch main"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-budge/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,
@ -28,65 +46,102 @@ jobs:
"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/budge"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fbudge%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 budge 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-budge/job/main/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-budge/job/main/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 budge 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 budge 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-budge/job/main/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 budge 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

View File

@ -2,42 +2,47 @@ name: External Trigger Scheduler
on:
schedule:
- cron: '55 * * * *'
- cron: '58 * * * *'
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-budge\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-budge/${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-budge/${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-budge/${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-budge/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

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 [bug](https://github.com/linuxserver/docker-budge/blob/main/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-budge/blob/main/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
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-budge/blob/main/.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-main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/main'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BUDGE_MAIN }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BUDGE_MAIN is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-budge/job/main/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 main branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BUDGE_MAIN\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-budge/job/main/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"

View File

@ -2,49 +2,102 @@ name: Package Trigger Scheduler
on:
schedule:
- cron: '12 11 * * 2'
- cron: '14 1 * * 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-budge\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-budge/${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-budge/${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-budge/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-budge/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-budge/${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-budge/${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 "^budge_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`budge_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-budge/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 \`budge_%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-budge/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 budge** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-budge/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-budge/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 budge** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

12
.github/workflows/permissions.yml vendored Executable 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@v3
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
# set version label
ARG BUILD_DATE
@ -7,16 +9,13 @@ ARG BUDGE_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="alex-phillips"
ENV BUDGE_DATABASE=/config/budge.db
ENV BUDGE_DATABASE=/config/budge.db \
S6_STAGE2_HOOK="/init-hook"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
gcc \
make \
musl-dev \
build-base \
python3 && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
@ -24,39 +23,45 @@ RUN \
npm \
sqlite && \
echo "**** install budge ****" && \
mkdir -p /app/budge && \
if [ -z ${NOTEMARKS_RELEASE+x} ]; then \
BUDGE_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/BudgE/commits/main" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
mkdir -p /app/www/public && \
if [ -z ${BUDGE_RELEASE+x} ]; then \
BUDGE_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/budge/releases/latest" \
| jq -r '.tag_name'); \
fi && \
curl -o \
/tmp/budge.tar.gz -L \
"https://github.com/linuxserver/BudgE/archive/${BUDGE_RELEASE}.tar.gz" && \
"https://github.com/linuxserver/budge/archive/${BUDGE_RELEASE}.tar.gz" && \
tar xf \
/tmp/budge.tar.gz -C \
/app/budge/ --strip-components=1 && \
/tmp/budge.tar.gz -C \
/app/www/public/ --strip-components=1 && \
echo "**** install backend ****" && \
cd /app/budge/backend && \
npm i && \
cd /app/www/public/backend && \
npm install && \
npm run build && \
npm prune --production && \
npm prune --omit=dev && \
echo "**** install ynab importer ****" && \
cd /app/budge/ynab && \
npm i && \
cd /app/www/public/ynab && \
npm install && \
echo "**** install frontend ****" && \
cd /app/budge/frontend && \
npm i && \
cd /app/www/public/frontend && \
npm install && \
npm run build && \
npm prune --production && \
npm prune --omit=dev && \
echo "**** overlay-fs bug workaround ****" && \
mv /app/budge/frontend/node_modules /app/budge/frontend/node_modules-tmp && \
mv /app/budge/backend/node_modules /app/budge/backend/node_modules-tmp && \
mv /app/www/public/frontend/node_modules /app/www/public/frontend/node_modules-tmp && \
mv /app/www/public/backend/node_modules /app/www/public/backend/node_modules-tmp && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
npm cache clean --force && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
/tmp/* \
$HOME/.cache
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
# set version label
ARG BUILD_DATE
@ -7,16 +9,13 @@ ARG BUDGE_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="alex-phillips"
ENV BUDGE_DATABASE=/config/budge.db
ENV BUDGE_DATABASE=/config/budge.db \
S6_STAGE2_HOOK="/init-hook"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
gcc \
make \
musl-dev \
build-base \
python3 && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
@ -24,39 +23,45 @@ RUN \
npm \
sqlite && \
echo "**** install budge ****" && \
mkdir -p /app/budge && \
if [ -z ${NOTEMARKS_RELEASE+x} ]; then \
BUDGE_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/BudgE/commits/main" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
mkdir -p /app/www/public && \
if [ -z ${BUDGE_RELEASE+x} ]; then \
BUDGE_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/budge/releases/latest" \
| jq -r '.tag_name'); \
fi && \
curl -o \
/tmp/budge.tar.gz -L \
"https://github.com/linuxserver/BudgE/archive/${BUDGE_RELEASE}.tar.gz" && \
"https://github.com/linuxserver/budge/archive/${BUDGE_RELEASE}.tar.gz" && \
tar xf \
/tmp/budge.tar.gz -C \
/app/budge/ --strip-components=1 && \
/tmp/budge.tar.gz -C \
/app/www/public/ --strip-components=1 && \
echo "**** install backend ****" && \
cd /app/budge/backend && \
npm i && \
cd /app/www/public/backend && \
npm install && \
npm run build && \
npm prune --production && \
npm prune --omit=dev && \
echo "**** install ynab importer ****" && \
cd /app/budge/ynab && \
npm i && \
cd /app/www/public/ynab && \
npm install && \
echo "**** install frontend ****" && \
cd /app/budge/frontend && \
npm i && \
cd /app/www/public/frontend && \
npm install && \
npm run build && \
npm prune --production && \
npm prune --omit=dev && \
echo "**** overlay-fs bug workaround ****" && \
mv /app/budge/frontend/node_modules /app/budge/frontend/node_modules-tmp && \
mv /app/budge/backend/node_modules /app/budge/backend/node_modules-tmp && \
mv /app/www/public/frontend/node_modules /app/www/public/frontend/node_modules-tmp && \
mv /app/www/public/backend/node_modules /app/www/public/backend/node_modules-tmp && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
npm cache clean --force && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
/tmp/* \
$HOME/.cache
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@ -1,62 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
# set version label
ARG BUILD_DATE
ARG VERSION
ARG BUDGE_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="alex-phillips"
ENV BUDGE_DATABASE=/config/budge.db
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
gcc \
make \
musl-dev \
python3 && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
nodejs \
npm \
sqlite && \
echo "**** install budge ****" && \
mkdir -p /app/budge && \
if [ -z ${NOTEMARKS_RELEASE+x} ]; then \
BUDGE_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/BudgE/commits/main" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/budge.tar.gz -L \
"https://github.com/linuxserver/BudgE/archive/${BUDGE_RELEASE}.tar.gz" && \
tar xf \
/tmp/budge.tar.gz -C \
/app/budge/ --strip-components=1 && \
echo "**** install backend ****" && \
cd /app/budge/backend && \
npm i && \
npm run build && \
npm prune --production && \
echo "**** install ynab importer ****" && \
cd /app/budge/ynab && \
npm i && \
echo "**** install frontend ****" && \
cd /app/budge/frontend && \
npm i && \
npm run build && \
npm prune --production && \
echo "**** overlay-fs bug workaround ****" && \
mv /app/budge/frontend/node_modules /app/budge/frontend/node_modules-tmp && \
mv /app/budge/backend/node_modules /app/budge/backend/node_modules-tmp && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /

1027
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

186
README.md
View File

@ -1,12 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-budge/blob/main/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-budge/blob/main/.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")
@ -21,15 +19,14 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
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/budge](https://github.com/linuxserver/docker-budge)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fbudge?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fbudge)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fbudge?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-budge.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-budge)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-budge.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-budge/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-budge/packages)
@ -46,17 +43,16 @@ Find us at:
## 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 `lscr.io/linuxserver/budge` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/budge: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
@ -64,21 +60,23 @@ Access the web gui at http://SERVERIP:PORT
## Usage
Here are some example snippets to help you get started creating a container.
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
budge:
image: lscr.io/linuxserver/budge
image: lscr.io/linuxserver/budge:latest
container_name: budge
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- TZ=Etc/UTC
volumes:
- /path/to/budge/config:/config
ports:
@ -94,25 +92,25 @@ docker run -d \
--name=budge \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-e TZ=Etc/UTC \
-p 80:80 \
-p 443:443 \
-v /path/to/budge/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/budge
lscr.io/linuxserver/budge: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` | http gui |
| `-p 443` | https gui |
| `-p 80:80` | http gui |
| `-p 443:443` | https gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=America/New_York` | Specify a timezone to use EG America/New_York |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets)
@ -122,10 +120,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
-e FILE__MYVAR=/run/secrets/mysecretvariable
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications
@ -134,15 +132,20 @@ 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:
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
id your_user
```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
```
## Docker Mods
@ -153,53 +156,101 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info
* Shell access whilst the container is running: `docker exec -it budge /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f budge`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' budge`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/budge`
* Shell access whilst the container is running:
```bash
docker exec -it budge /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f budge
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' budge
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/budge: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 budge`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d budge`
* 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 budge
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d budge
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/budge`
* Stop the running container: `docker stop budge`
* Delete the container: `docker rm budge`
* Update the image:
```bash
docker pull lscr.io/linuxserver/budge:latest
```
* Stop the running container:
```bash
docker stop budge
```
* Delete the container:
```bash
docker rm budge
```
* 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:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once budge
```
* 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
@ -214,14 +265,21 @@ docker build \
-t lscr.io/linuxserver/budge:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **06.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **06.03.24:** - Rebase to Alpine 3.19 with php 8.3.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **13.04.23:** - Move ssl.conf include to default.conf.
* **29.11.22:** - Rebase to Alpine 3.17, migrate to s6v3.
* **04.15.22:** - Added NPM command to run db migrations.
* **02.05.22:** - Initial Release.

View File

@ -20,10 +20,10 @@ repo_vars:
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='false'
- CI_WEB='true'
- CI_PORT='80'
- CI_SSL=''
- CI_DELAY='500'
- CI_DOCKERENV='TZ=America/New_York'
- CI_DELAY='180'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH=''

File diff suppressed because it is too large Load Diff

View File

@ -6,31 +6,91 @@ project_url: "https://github.com/linuxserver/budge"
project_logo: ""
project_blurb: "[{{ project_name }}]({{ project_url }}) is an open source 'budgeting with envelopes' personal finance app."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Finance"
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# container parameters
common_param_env_vars_enabled: true #PGID, PUID, etc
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config 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: "http gui" }
- { external_port: "443", internal_port: "443", port_desc: "https gui" }
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "America/New_York", desc: "Specify a timezone to use EG America/New_York"}
- {external_port: "80", internal_port: "80", port_desc: "http gui"}
- {external_port: "443", internal_port: "443", port_desc: "https gui"}
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the web gui at http://SERVERIP:PORT
# init diagram
init_diagram: |
"budge: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-budge-config
init-nginx-end -> init-config
init-os-end -> init-config
init-budge-config -> init-config-end
init-config -> init-config-end
init-os-end -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
base -> init-migrations
base -> init-mods
init-config-end -> init-mods
init-version-checks -> init-mods
init-mods -> init-mods-end
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-samples -> init-nginx
init-permissions -> init-nginx-end
base -> init-os-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-migrations -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-mods-end -> init-services
init-config-end -> init-version-checks
init-services -> svc-budge
svc-budge -> legacy-services
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.20" <- "baseimage-alpine:3.20"
}
"budge:latest" <- Base Images
# changelog
changelogs:
- { date: "02.05.22:", desc: "Initial Release." }
- {date: "06.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- {date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- {date: "06.03.24:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."}
- {date: "29.11.22:", desc: "Rebase to Alpine 3.17, migrate to s6v3."}
- {date: "04.15.22:", desc: "Added NPM command to run db migrations."}
- {date: "02.05.22:", desc: "Initial Release."}

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>

View File

@ -1,25 +0,0 @@
server {
listen 80 default_server;
listen 443 ssl;
root /app/budge/frontend/build;
index index.php index.html index.htm;
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 /api/ {
rewrite /foo/(.*) /$1 break;
proxy_set_header Upgrade $http_upgrade;
proxy_pass http://localhost:5000/;
}
}

View File

@ -0,0 +1,34 @@
## Version 2024/07/16 - Changelog: https://github.com/linuxserver/docker-budge/commits/main/root/defaults/nginx/site-confs/default.conf.sample
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
include /config/nginx/ssl.conf;
root /app/www/public/frontend/build;
index index.html;
location / {
# enable for basic auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
try_files $uri $uri/ /index.html;
}
location /api/ {
rewrite /foo/(.*) /$1 break;
proxy_set_header Upgrade $http_upgrade;
proxy_pass http://localhost:5000/;
}
# deny access to .htaccess/.htpasswd files
location ~ /\.ht {
deny all;
}
}

View File

@ -1,16 +0,0 @@
#!/usr/bin/with-contenv bash
if [ -d /app/budge/backend/node_modules-tmp ]; then
echo "New container detected. Setting up app folder and fixing permissions."
mv /app/budge/backend/node_modules-tmp /app/budge/backend/node_modules
mv /app/budge/frontend/node_modules-tmp /app/budge/frontend/node_modules
fi
cd /app/budge/backend
touch /app/budge/backend/budge.sqlite
# permissions
chown -R abc:abc \
/app/budge \
/config

View File

@ -0,0 +1,21 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ -d /app/www/public/backend/node_modules-tmp ]]; then
echo "New container detected. Setting up app folder and fixing permissions."
mv /app/www/public/backend/node_modules-tmp /app/www/public/backend/node_modules
mv /app/www/public/frontend/node_modules-tmp /app/www/public/frontend/node_modules
fi
mkdir -p /config/log/npm
cd /app/www/public/backend/build || exit 1
npx typeorm migration:run
touch /app/www/public/backend/budge.sqlite
# permissions
lsiown -R abc:abc \
/app/www/public \
/config

View File

@ -0,0 +1 @@
oneshot

View File

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

View File

@ -0,0 +1 @@
3

View File

@ -0,0 +1,8 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
shopt -s globstar
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 5000" \
cd /app/www/public/backend/build s6-setuidgid abc /usr/bin/npm run start --logs-dir /config/log/npm

View File

@ -0,0 +1 @@
longrun

View File

@ -1,8 +0,0 @@
#!/usr/bin/with-contenv bash
cd /app/budge/backend/build
shopt -s globstar
exec \
s6-setuidgid abc /usr/bin/npm run start

7
root/init-hook Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
rm -rf /etc/s6-overlay/s6-rc.d/svc-php-fpm
rm -rf /etc/s6-overlay/s6-rc.d/user/contents.d/svc-php-fpm
exec /docker-mods

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 /app/budge/frontend/build;"
NEW_ROOT="root /app/www/public/frontend/build;"
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