Compare commits

...

449 Commits

Author SHA1 Message Date
LinuxServer-CI
d37b904fb3
Bot Updating Package Versions 2026-02-18 20:03:53 +00:00
Adam
4ea84e9203
Merge pull request #284 from linuxserver/purifier
Add purifier directory to framework symlinks
2026-02-17 17:57:29 +00:00
thespad
4024093611
Add purifier directory to framework symlinks 2026-02-17 17:08:23 +00:00
LinuxServer-CI
08e43edecf
Bot Updating Package Versions 2026-02-17 11:58:52 +00:00
LinuxServer-CI
14da2a0df5
Bot Updating Package Versions 2026-02-16 18:56:11 +00:00
LinuxServer-CI
9d396ec6a2
Bot Updating Templated Files 2026-02-16 18:52:39 +00:00
LinuxServer-CI
f903ab685d
Bot Updating Templated Files 2026-02-16 18:51:03 +00:00
LinuxServer-CI
6bf9340d89
Bot Updating Package Versions 2026-02-09 19:22:11 +00:00
LinuxServer-CI
37c2e6072d
Bot Updating Package Versions 2026-01-29 15:58:10 +00:00
LinuxServer-CI
6d24518f15
Bot Updating Package Versions 2026-01-24 14:42:11 +00:00
LinuxServer-CI
c36bdfb04a
Bot Updating Package Versions 2026-01-12 18:40:02 +00:00
Adam
4f99d38bcb
Merge pull request #278 from pfeyz/patch-1 2026-01-04 23:45:47 +00:00
LinuxServer-CI
c25a48d2b8
Bot Updating Package Versions 2026-01-04 21:23:57 +00:00
LinuxServer-CI
44463da08f
Bot Updating Templated Files 2026-01-04 21:18:25 +00:00
Adam
31a47a879e
Merge pull request #281 from linuxserver/3.23 2026-01-04 21:16:28 +00:00
LinuxServer-CI
c5d0fd7694
Bot Updating Package Versions 2025-12-30 17:42:20 +00:00
thespad
ca7fcb276f
opcache is now builtin 2025-12-28 17:09:44 +00:00
thespad
2904fa92fb
Rebase to 3.23 2025-12-28 17:06:20 +00:00
LinuxServer-CI
f68b027a14
Bot Updating Package Versions 2025-12-24 13:07:22 +00:00
LinuxServer-CI
6bc3180f53
Bot Updating Package Versions 2025-12-22 18:48:21 +00:00
LinuxServer-CI
e9a445379a
Bot Updating Package Versions 2025-12-22 18:43:45 +00:00
LinuxServer-CI
5642cc2080
Bot Updating Package Versions 2025-12-22 18:38:45 +00:00
LinuxServer-CI
3dfc0bda5a
Bot Updating Package Versions 2025-12-15 18:39:11 +00:00
LinuxServer-CI
08370f159d
Bot Updating Package Versions 2025-12-09 21:39:07 +00:00
LinuxServer-CI
dd118d1b46
Bot Updating Package Versions 2025-12-08 18:38:29 +00:00
pfeyz
11152fe266
don't embed ansi escape codes in appkey
given that it's the recommended way to generate the code in the docs, redirecting stdout will produce an appkey that will make bookstack crash when it runs. this will affect anyone who is trying to automate the initial steps of deployment.

i think this is likely the cause of this issue: https://github.com/BookStackApp/BookStack/issues/5289#issuecomment-2453680653
2025-12-06 19:40:32 -05:00
LinuxServer-CI
18bdc16361
Bot Updating Package Versions 2025-12-03 15:44:33 +00:00
LinuxServer-CI
0812ae08e5
Bot Updating Package Versions 2025-12-01 18:40:23 +00:00
LinuxServer-CI
bf431f8f0c
Bot Updating Package Versions 2025-11-25 22:40:41 +00:00
LinuxServer-CI
08a396d042
Bot Updating Package Versions 2025-11-21 14:46:20 +00:00
LinuxServer-CI
eb557cf2a1
Bot Updating Package Versions 2025-11-19 15:39:34 +00:00
LinuxServer-CI
07caa96fee
Bot Updating Templated Files 2025-11-19 15:35:57 +00:00
LinuxServer-CI
be89b0b7aa
Bot Updating Package Versions 2025-11-17 18:34:51 +00:00
LinuxServer-CI
91858f20e9
Bot Updating Package Versions 2025-11-09 13:37:46 +00:00
LinuxServer-CI
f560b74187
Bot Updating Package Versions 2025-10-27 18:36:33 +00:00
LinuxServer-CI
6c4839dfbb
Bot Updating Templated Files 2025-10-27 18:33:13 +00:00
LinuxServer-CI
a4e1054769
Bot Updating Package Versions 2025-10-20 18:37:39 +00:00
LinuxServer-CI
af1bd1bc0e
Bot Updating Templated Files 2025-10-20 18:33:46 +00:00
LinuxServer-CI
091265234d
Bot Updating Package Versions 2025-10-13 18:32:28 +00:00
LinuxServer-CI
57d1d906e3
Bot Updating Package Versions 2025-10-05 15:32:58 +00:00
LinuxServer-CI
f165d5927e
Bot Updating Package Versions 2025-09-29 18:34:25 +00:00
LinuxServer-CI
7834e6be98
Bot Updating Package Versions 2025-09-22 18:32:41 +00:00
LinuxServer-CI
6a6031e70e
Bot Updating Package Versions 2025-08-28 17:37:27 +00:00
LinuxServer-CI
9509dbaa1f
Bot Updating Package Versions 2025-08-25 18:34:56 +00:00
LinuxServer-CI
9fdf1f8e9b
Bot Updating Package Versions 2025-08-18 18:36:53 +00:00
LinuxServer-CI
79e220fe9c
Bot Updating Package Versions 2025-08-11 14:46:42 +00:00
LinuxServer-CI
21c371b198
Bot Updating Package Versions 2025-08-04 18:38:45 +00:00
LinuxServer-CI
f0cdf284eb
Bot Updating Package Versions 2025-07-30 09:54:50 +00:00
LinuxServer-CI
963a439956
Bot Updating Package Versions 2025-07-28 18:39:14 +00:00
LinuxServer-CI
16e0d78dbb
Bot Updating Package Versions 2025-07-15 08:41:12 +00:00
LinuxServer-CI
2d4c63e977
Bot Updating Templated Files 2025-07-15 08:37:56 +00:00
Adam
7a44242a13
Merge pull request #274 from linuxserver/3.22 2025-07-15 09:36:25 +01:00
LinuxServer-CI
fe9a7feb9e
Bot Updating Package Versions 2025-07-14 18:37:50 +00:00
thespad
36f1de6449
Fix || breaking build failures 2025-07-10 19:40:39 +01:00
LinuxServer-CI
0dd8ae9069
Bot Updating Package Versions 2025-07-07 14:47:18 +00:00
LinuxServer-CI
225e05f493
Bot Updating Templated Files 2025-07-07 14:43:47 +00:00
LinuxServer-CI
c422f29971
Bot Updating Templated Files 2025-07-07 14:42:09 +00:00
thespad
001da31552
Rebase to 3.22 2025-07-05 15:26:54 +01:00
LinuxServer-CI
3173d606ef
Bot Updating Package Versions 2025-06-17 14:44:54 +00:00
LinuxServer-CI
e3d106d070
Bot Updating Templated Files 2025-06-16 18:33:01 +00:00
LinuxServer-CI
92ab5632ed
Bot Updating Package Versions 2025-05-31 13:44:53 +00:00
LinuxServer-CI
4cb2d86fd3
Bot Updating Package Versions 2025-05-26 18:33:36 +00:00
LinuxServer-CI
336d5ba3f7
Bot Updating Package Versions 2025-05-17 11:31:42 +00:00
LinuxServer-CI
9c2b40c914
Bot Updating Templated Files 2025-05-17 11:28:57 +00:00
LinuxServer-CI
481bdb6a8b
Bot Updating Package Versions 2025-05-08 15:41:50 +00:00
LinuxServer-CI
5eb50e7294
Bot Updating Package Versions 2025-05-05 18:30:18 +00:00
LinuxServer-CI
f92adde813
Bot Updating Package Versions 2025-04-21 18:31:56 +00:00
LinuxServer-CI
aab1799cae
Bot Updating Package Versions 2025-04-14 18:32:19 +00:00
LinuxServer-CI
bee364899e
Bot Updating Package Versions 2025-04-07 18:31:37 +00:00
LinuxServer-CI
4c90655485
Bot Updating Package Versions 2025-04-02 16:48:13 +00:00
LinuxServer-CI
0c1bdf7b07
Bot Updating Package Versions 2025-03-31 18:31:29 +00:00
LinuxServer-CI
6006704576
Bot Updating Package Versions 2025-03-17 18:30:33 +00:00
LinuxServer-CI
cb76bd3838
Bot Updating Package Versions 2025-03-16 12:55:56 +00:00
LinuxServer-CI
c833bc46c2
Bot Updating Package Versions 2025-03-09 13:52:08 +00:00
Adam
6bda8c360a
Merge pull request #266 from linuxserver/backup-symlink
Fix backup symlink
2025-03-09 13:49:05 +00:00
thespad
06da7f0e0b
Fix backup symlink 2025-03-08 20:23:21 +00:00
LinuxServer-CI
80ee30e747
Bot Updating Package Versions 2025-02-26 15:37:51 +00:00
LinuxServer-CI
feb8032b97
Bot Updating Package Versions 2025-02-24 18:31:54 +00:00
LinuxServer-CI
9e330f4396
Bot Updating Package Versions 2025-02-17 18:28:26 +00:00
LinuxServer-CI
167e0a0cf2
Bot Updating Templated Files 2025-02-10 18:27:36 +00:00
LinuxServer-CI
4c041344f8
Bot Updating Templated Files 2025-02-03 18:29:33 +00:00
LinuxServer-CI
30ec902a3a
Bot Updating Templated Files 2025-02-03 18:28:39 +00:00
LinuxServer-CI
a31d51a1cd
Bot Updating Package Versions 2025-01-22 00:20:52 +00:00
quietsy
63ab103e8b
Merge pull request #259 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-21 04:42:07 +02:00
LinuxServer-CI
dcb27aab58
Bot Updating Package Versions 2025-01-20 18:27:33 +00:00
quietsy
ef5d337e4d Add categories to readme-vars.yml 2025-01-20 17:21:03 +02:00
LinuxServer-CI
9be39e5c49
Bot Updating Package Versions 2025-01-15 14:00:27 +00:00
Adam
44544d05ee
Merge pull request #258 from linuxserver/sessions 2025-01-15 13:57:02 +00:00
thespad
17961c4c24
Only clear cache, sessions, views on container update 2025-01-15 10:04:46 +00:00
LinuxServer-CI
4efb651e21
Bot Updating Package Versions 2025-01-05 10:10:52 +00:00
LinuxServer-CI
29778a5321
Bot Updating Templated Files 2025-01-05 10:06:14 +00:00
Adam
3236a68411
Merge pull request #254 from linuxserver/opcache 2025-01-05 10:04:57 +00:00
LinuxServer-CI
32a45a9d61
Bot Updating Package Versions 2025-01-04 23:31:05 +00:00
thespad
72f406373b
Add php83-opcache 2025-01-04 22:28:25 +00:00
LinuxServer-CI
c705a81c1c
Bot Updating Package Versions 2024-12-23 12:56:46 +00:00
Adam
244c619c77
Merge pull request #248 from linuxserver/master-fix-keygen 2024-12-22 22:22:11 +00:00
thespad
d283e53018
Fix appkey gen with new symlinks 2024-12-22 21:59:37 +00:00
LinuxServer-CI
ee61205ece
Bot Updating Package Versions 2024-12-21 13:34:54 +00:00
LinuxServer-CI
15af885805
Bot Updating Templated Files 2024-12-21 13:31:47 +00:00
Adam
fb50f788b2
Merge pull request #247 from linuxserver/3.21 2024-12-21 13:30:14 +00:00
thespad
5fd60b393b
Improve symlink creation 2024-12-18 15:45:06 +00:00
thespad
fdf34906e5
Use /tmp as we need it anyway 2024-12-17 17:58:35 +00:00
thespad
476e0463b1
Rebase to 3.21, support read-only operation 2024-12-17 17:55:20 +00:00
LinuxServer-CI
9a88ade8e1
Bot Updating Package Versions 2024-12-16 18:38:51 +00:00
LinuxServer-CI
10aca3f421
Bot Updating Templated Files 2024-12-16 18:32:26 +00:00
LinuxServer-CI
15092cd768
Bot Updating Templated Files 2024-12-16 18:29:47 +00:00
LinuxServer-CI
b704ebdd25
Bot Updating Templated Files 2024-12-09 18:30:53 +00:00
LinuxServer-CI
b52e28a1a2
Bot Updating Templated Files 2024-12-02 18:34:35 +00:00
LinuxServer-CI
3955a5ceab
Bot Updating Templated Files 2024-12-02 18:31:56 +00:00
LinuxServer-CI
85e3b1a0a5
Bot Updating Templated Files 2024-12-02 18:30:44 +00:00
LinuxServer-CI
a96801f392
Bot Updating Templated Files 2024-12-02 18:29:18 +00:00
LinuxServer-CI
f719a0c2f5
Bot Updating Package Versions 2024-11-29 14:38:43 +00:00
LinuxServer-CI
241c57b7f9
Bot Updating Package Versions 2024-11-25 18:28:59 +00:00
Adam
5f0dbc08f7
Merge pull request #242 from linuxserver/be-unambiguous 2024-11-20 20:43:50 +00:00
thespad
04589bb8ae
Attempt to remove any and all ambiguity from the readme instructions. 2024-11-20 20:31:19 +00:00
LinuxServer-CI
47165fc43d
Bot Updating Package Versions 2024-11-13 12:57:23 +00:00
LinuxServer-CI
a9d2ee5a88
Bot Updating Templated Files 2024-11-11 18:27:36 +00:00
LinuxServer-CI
0bdb37bf4f
Bot Updating Templated Files 2024-11-11 18:26:36 +00:00
LinuxServer-CI
b8fba7f08b
Bot Updating Package Versions 2024-11-08 15:04:57 +00:00
LinuxServer-CI
00a782d8ae
Bot Updating Package Versions 2024-11-04 18:29:11 +00:00
LinuxServer-CI
c7819efba7
Bot Updating Package Versions 2024-10-28 18:30:00 +00:00
LinuxServer-CI
1eb8aa7e86
Bot Updating Package Versions 2024-10-21 18:28:43 +00:00
Adam
5a58d58419
Merge pull request #234 from linuxserver/fix-appkey 2024-10-14 16:21:36 +01:00
thespad
c84517086c
Fix appkey check + add helper 2024-10-14 16:12:46 +01:00
Adam
2c3eb82848
Merge pull request #231 from linuxserver/env-consolidation 2024-10-14 09:13:03 +01:00
thespad
be960b455b
Add update-url note to readme 2024-10-14 09:07:27 +01:00
thespad
448b16865f
Fix unhelpful default values 2024-10-12 20:19:24 +01:00
thespad
4cb4610150
Simplify init, prefer envs, make fewer assumptions 2024-10-12 19:28:51 +01:00
LinuxServer-CI
e32e3ce745
Bot Updating Package Versions 2024-10-09 10:42:32 +00:00
LinuxServer-CI
23e32dc35e
Bot Updating Package Versions 2024-09-30 18:33:03 +00:00
LinuxServer-CI
1ecb3fb7a2
Bot Updating Templated Files 2024-09-30 18:30:03 +00:00
LinuxServer-CI
bd625285f7
Bot Updating Templated Files 2024-09-30 18:28:48 +00:00
LinuxServer-CI
ef194d4e9c
Bot Updating Templated Files 2024-09-30 18:27:18 +00:00
LinuxServer-CI
c42dd81847
Bot Updating Package Versions 2024-09-23 18:27:58 +00:00
LinuxServer-CI
9e5e0c3fbb
Bot Updating Package Versions 2024-09-16 18:28:54 +00:00
LinuxServer-CI
d4a11792b7
Bot Updating Package Versions 2024-09-06 15:21:51 +00:00
LinuxServer-CI
2fa72de4df
Bot Updating Templated Files 2024-09-06 15:18:59 +00:00
LinuxServer-CI
fc8f5ee61f
Bot Updating Templated Files 2024-09-06 15:16:49 +00:00
Adam
6a43dbf24f
Merge pull request #224 from linuxserver/php-exif 2024-09-06 16:15:22 +01:00
thespad
248b8769b4
Add php83-exif for reading image EXIF data 2024-09-06 16:03:32 +01:00
LinuxServer-CI
9c224f5eb5
Bot Updating Package Versions 2024-08-29 15:36:53 +00:00
LinuxServer-CI
dfc1d3192f
Bot Updating Package Versions 2024-08-26 18:25:50 +00:00
LinuxServer-CI
951399bd49
Bot Updating Package Versions 2024-08-19 18:30:42 +00:00
LinuxServer-CI
e682e1aaa1
Bot Updating Templated Files 2024-08-19 18:26:56 +00:00
LinuxServer-CI
80de27102c Bot Updating Templated Files 2024-08-19 18:24:50 +00:00
Adam
6790cfae23
Merge pull request #221 from linuxserver/migrations-x 2024-08-13 16:17:52 +01:00
thespad
8b6b85d1a3
Make migrations executable 2024-08-13 15:15:45 +01:00
LinuxServer-CI
c8ffa209f1 Bot Updating Package Versions 2024-08-12 18:27:12 +00:00
LinuxServer-CI
c6b23e665f Bot Updating Package Versions 2024-08-05 18:26:40 +00:00
LinuxServer-CI
25f8bddc4e Bot Updating Package Versions 2024-07-29 18:27:13 +00:00
LinuxServer-CI
c17a8d6dbd Bot Updating Package Versions 2024-07-19 21:37:25 +00:00
Eric Nemchik
7745e1c0d7
Merge pull request #218 from linuxserver/delete-default-conf
Delete root/defaults/nginx/site-confs/default.conf.sample
2024-07-19 16:33:49 -05:00
Eric Nemchik
1c26d28291
Delete root/defaults/nginx/site-confs/default.conf.sample
redundant to base
2024-07-16 20:44:27 -05:00
LinuxServer-CI
f7b4f2442e Bot Updating Package Versions 2024-07-14 16:54:28 +00:00
LinuxServer-CI
ac8cb7a796 Bot Updating Templated Files 2024-07-14 16:51:04 +00:00
LinuxServer-CI
76bc27286e Bot Updating Templated Files 2024-07-14 16:49:26 +00:00
LinuxServer-CI
c4732bf86a Bot Updating Package Versions 2024-07-08 18:26:18 +00:00
LinuxServer-CI
83ce5bd30b Bot Updating Package Versions 2024-07-01 18:27:15 +00:00
LinuxServer-CI
82e27df972 Bot Updating Package Versions 2024-06-17 18:25:01 +00:00
LinuxServer-CI
9458f760ca Bot Updating Package Versions 2024-06-10 11:28:59 +00:00
LinuxServer-CI
721ace2bca Bot Updating Package Versions 2024-06-01 20:34:56 +00:00
Adam
66bb63ab5c
Merge pull request #215 from linuxserver/readme-tidy
Tidy readme
2024-06-01 21:30:44 +01:00
thespad
8f7e4da277
Tidy readme 2024-06-01 17:48:04 +01:00
LinuxServer-CI
69d9fd1452 Bot Updating Package Versions 2024-05-29 13:56:47 +00:00
LinuxServer-CI
b1e2b2ee4f Bot Updating Templated Files 2024-05-29 13:54:01 +00:00
Adam
aa40100bb2
Merge pull request #213 from linuxserver/3.20
Rebase to 3.20
2024-05-29 14:52:40 +01:00
thespad
223740182f
Use wildcard listener 2024-05-29 13:58:02 +01:00
thespad
1078bd4dfb
Update http2 wording 2024-05-28 20:11:12 +01:00
thespad
40fdb1058e
Rebase to 3.20 2024-05-28 20:01:03 +01:00
LinuxServer-CI
0e6c35ab2d Bot Updating Package Versions 2024-05-27 18:23:23 +00:00
LinuxServer-CI
51d49e40ba Bot Updating Package Versions 2024-05-21 10:55:30 +00:00
LinuxServer-CI
0c4f018f41 Bot Updating Templated Files 2024-05-21 10:52:26 +00:00
LinuxServer-CI
9aeff1a1d0 Bot Updating Templated Files 2024-05-21 10:50:51 +00:00
LinuxServer-CI
0836983544 Bot Updating Templated Files 2024-05-21 10:49:09 +00:00
LinuxServer-CI
e78d02587b Bot Updating Package Versions 2024-05-20 18:23:49 +00:00
LinuxServer-CI
072e39ee06 Bot Updating Package Versions 2024-05-13 18:23:07 +00:00
LinuxServer-CI
e03366e936 Bot Updating Package Versions 2024-05-11 15:31:12 +00:00
LinuxServer-CI
bd9f41e793 Bot Updating Templated Files 2024-05-11 15:28:25 +00:00
LinuxServer-CI
4864ce1d1e Bot Updating Templated Files 2024-05-06 18:24:36 +00:00
LinuxServer-CI
93878ef585 Bot Updating Package Versions 2024-04-29 18:22:17 +00:00
LinuxServer-CI
263fc81952 Bot Updating Package Versions 2024-04-22 18:23:05 +00:00
LinuxServer-CI
8fddd56c0c Bot Updating Package Versions 2024-04-15 18:23:15 +00:00
LinuxServer-CI
efa77507f3 Bot Updating Package Versions 2024-04-05 14:34:15 +00:00
LinuxServer-CI
248b7be397 Bot Updating Package Versions 2024-04-01 18:21:02 +00:00
LinuxServer-CI
ef62a56bab Bot Updating Package Versions 2024-03-25 18:24:37 +00:00
LinuxServer-CI
b24b21f21c Bot Updating Package Versions 2024-03-18 18:23:08 +00:00
LinuxServer-CI
ef1f4e2139 Bot Updating Templated Files 2024-03-18 18:20:07 +00:00
LinuxServer-CI
22289ce96f Bot Updating Package Versions 2024-03-04 18:20:31 +00:00
LinuxServer-CI
4e1861dc95 Bot Updating Package Versions 2024-02-28 14:31:22 +00:00
LinuxServer-CI
63d71fde37 Bot Updating Package Versions 2024-02-26 12:48:11 +00:00
LinuxServer-CI
580623db9d Bot Updating Templated Files 2024-02-26 12:45:04 +00:00
LinuxServer-CI
4d41ca9239 Bot Updating Templated Files 2024-02-26 12:43:20 +00:00
LinuxServer-CI
15127d9e4c Bot Updating Package Versions 2024-02-19 18:24:23 +00:00
LinuxServer-CI
ffd2adc9dd Bot Updating Package Versions 2024-02-12 18:20:17 +00:00
LinuxServer-CI
a22f015ceb Bot Updating Package Versions 2024-02-05 18:22:46 +00:00
LinuxServer-CI
dc638a54d8 Bot Updating Package Versions 2024-01-29 18:21:02 +00:00
LinuxServer-CI
6a1308143b Bot Updating Templated Files 2024-01-25 18:50:49 +00:00
Eric Nemchik
3d1656966a
Merge pull request #201 from linuxserver/nginx-cleanup
Cleanup default site conf
2024-01-25 12:45:45 -06:00
Eric Nemchik
0de4fc064f
Merge branch 'master' into nginx-cleanup 2024-01-25 12:45:40 -06:00
LinuxServer-CI
a2089be82d Bot Updating Package Versions 2024-01-24 11:30:55 +00:00
LinuxServer-CI
8386f7a90b Bot Updating Package Versions 2024-01-22 18:23:20 +00:00
LinuxServer-CI
9f99c7fef9 Bot Updating Package Versions 2024-01-15 18:26:43 +00:00
LinuxServer-CI
c86c8298a6 Bot Updating Templated Files 2024-01-15 18:22:59 +00:00
LinuxServer-CI
755270f475 Bot Updating Templated Files 2024-01-15 18:21:12 +00:00
LinuxServer-CI
e1e6dd2a30 Bot Updating Package Versions 2024-01-08 18:22:31 +00:00
LinuxServer-CI
cc18bc0f84 Bot Updating Package Versions 2023-12-29 12:48:05 +00:00
LinuxServer-CI
de6b81a975 Bot Updating Package Versions 2023-12-28 18:34:11 +00:00
LinuxServer-CI
72b2f7dacb Bot Updating Templated Files 2023-12-28 18:29:25 +00:00
Eric Nemchik
bcf329ba07
Merge pull request #200 from linuxserver/3.19
Rebase to Alpine 3.19
2023-12-28 12:27:57 -06:00
Eric Nemchik
4f569dfdf8
Cleanup default site conf
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-25 14:16:11 -06:00
LinuxServer-CI
92901fa2a3 Bot Updating Package Versions 2023-12-25 18:21:56 +00:00
Eric Nemchik
ba22acfa48
Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:08:37 -06:00
LinuxServer-CI
ca614519d4 Bot Updating Package Versions 2023-12-11 18:23:46 +00:00
LinuxServer-CI
1a0feb718c Bot Updating Package Versions 2023-12-04 18:23:33 +00:00
LinuxServer-CI
c645e46843 Bot Updating Package Versions 2023-11-27 18:22:06 +00:00
Eric Nemchik
976de47cd0
Merge pull request #197 from linuxserver/quiet-migration
only run migration if conf exists
2023-11-25 18:12:51 -06:00
Eric Nemchik
a6801f27f0
only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:42:40 -06:00
LinuxServer-CI
152f64b6f9 Bot Updating Package Versions 2023-11-25 12:18:06 +00:00
Adam
586c3d8751
Merge pull request #196 from linuxserver/init-fix
Symlink all logs to avoid defer error on new install
2023-11-25 12:15:15 +00:00
TheSpad
78d685a31f
Symlink logs and backups outside of www 2023-11-24 14:11:04 +00:00
TheSpad
7759d52c25
Symlink all logs to avoid defer error on new install 2023-11-24 13:54:02 +00:00
LinuxServer-CI
acda76ad08 Bot Updating Package Versions 2023-11-17 15:56:12 +00:00
LinuxServer-CI
40ee80c5d8 Bot Updating Templated Files 2023-11-17 15:53:15 +00:00
aptalca
28b6c968f2
Merge pull request #195 from linuxserver/sedescape
further sanitize sed replace
2023-11-17 10:51:41 -05:00
LinuxServer-CI
99e2bec1bc Bot Updating Package Versions 2023-11-13 18:21:49 +00:00
LinuxServer-CI
b9909c9323 Bot Updating Package Versions 2023-11-02 15:29:16 +00:00
aptalca
e0f1e7cf13
further sanitize sed replace 2023-10-31 17:35:24 -04:00
LinuxServer-CI
0da4f3e270 Bot Updating Package Versions 2023-10-30 12:47:46 +00:00
LinuxServer-CI
833d57cfed Bot Updating Package Versions 2023-10-23 18:21:00 +00:00
LinuxServer-CI
9a4494667a Bot Updating Package Versions 2023-10-16 18:24:42 +00:00
LinuxServer-CI
0b32a2a4c3 Bot Updating Package Versions 2023-10-09 18:26:31 +00:00
LinuxServer-CI
7a787f9c5b Bot Updating Templated Files 2023-10-09 18:22:41 +00:00
LinuxServer-CI
32c7e152fa Bot Updating Templated Files 2023-10-09 18:21:05 +00:00
LinuxServer-CI
4f7bd3761e Bot Updating Package Versions 2023-10-02 18:21:57 +00:00
LinuxServer-CI
a62a72c757 Bot Updating Package Versions 2023-09-25 18:22:15 +00:00
LinuxServer-CI
cf00b4b528 Bot Updating Package Versions 2023-09-15 13:30:57 +00:00
LinuxServer-CI
0e1f787d64 Bot Updating Package Versions 2023-09-11 18:21:19 +00:00
LinuxServer-CI
48590fc969 Bot Updating Templated Files 2023-09-04 11:03:26 +00:00
Adam
b979032c09
Merge pull request #187 from linuxserver/queues 2023-09-04 12:01:45 +01:00
TheSpad
7245559a00
Add link for async actions 2023-09-04 09:25:52 +01:00
TheSpad
869d618156
Add async action support 2023-09-04 09:22:10 +01:00
LinuxServer-CI
e3bcaad822 Bot Updating Package Versions 2023-09-03 17:32:40 +00:00
LinuxServer-CI
3ee35b4d79 Bot Updating Package Versions 2023-08-30 12:48:59 +00:00
LinuxServer-CI
1f7441a512 Bot Updating Package Versions 2023-08-28 18:22:14 +00:00
LinuxServer-CI
620c519455 Bot Updating Package Versions 2023-08-21 18:20:01 +00:00
LinuxServer-CI
e06fd86bc1 Bot Updating Package Versions 2023-08-14 18:30:13 +00:00
LinuxServer-CI
c0042bd7c6 Bot Updating Package Versions 2023-08-14 18:26:24 +00:00
LinuxServer-CI
6b7063dbbd Bot Updating Package Versions 2023-08-14 18:22:44 +00:00
LinuxServer-CI
8cba53dfe8 Bot Updating Package Versions 2023-08-14 18:19:52 +00:00
LinuxServer-CI
a8c6d4b653 Bot Updating Package Versions 2023-08-11 00:05:38 +00:00
LinuxServer-CI
9f149726fd Bot Updating Templated Files 2023-08-11 00:02:00 +00:00
Eric Nemchik
0f7b665962
Merge pull request #183 from jasonyang-ee/master
Update password restriction matching to db image manual
2023-08-10 18:59:39 -05:00
LinuxServer-CI
fd52002a3d Bot Updating Package Versions 2023-08-07 18:21:10 +00:00
Jason Teng
51c954c18b
Edit: moving change to readme-vars.yml 2023-08-06 23:32:53 -07:00
Jason Teng
bb3a6b4f05
Revert "Add: password restriction match to db image manual"
This reverts commit b270eaf8a27a2f3b96710498c1b005e97de577b0.
2023-08-06 23:30:33 -07:00
Jason Teng
b270eaf8a2
Add: password restriction match to db image manual
per linuxserver/mariadb/, the required DATABASE_PASSWORD must > 4
2023-08-06 23:11:03 -07:00
LinuxServer-CI
e654f6ca12 Bot Updating Package Versions 2023-07-31 18:22:24 +00:00
LinuxServer-CI
078e1512ed Bot Updating Package Versions 2023-07-24 18:22:42 +00:00
LinuxServer-CI
54488670f1 Bot Updating Package Versions 2023-07-17 18:25:56 +00:00
LinuxServer-CI
914301a9ea Bot Updating Package Versions 2023-07-11 13:20:42 +00:00
Adam
2e802e7231
Merge pull request #179 from linuxserver/drizuid-patch-1 2023-07-11 14:16:45 +01:00
LinuxServer-CI
70c02cc704 Bot Updating Package Versions 2023-07-10 18:23:30 +00:00
driz
edd48f8708
Update readme-vars.yml 2023-07-06 08:48:42 -04:00
driz
01114edaa3
remove wkhtmltopdf section of readme 2023-07-06 08:47:30 -04:00
LinuxServer-CI
8cacf766f6 Bot Updating Package Versions 2023-07-05 13:00:40 +00:00
LinuxServer-CI
cbeae026d4 Bot Updating Package Versions 2023-07-03 18:24:49 +00:00
LinuxServer-CI
9fad9dc45b Bot Updating Templated Files 2023-07-03 18:22:00 +00:00
LinuxServer-CI
f56f469718 Bot Updating Package Versions 2023-06-30 10:36:41 +00:00
LinuxServer-CI
bf799eede6 Bot Updating Package Versions 2023-06-26 18:23:35 +00:00
LinuxServer-CI
e5dd5dc0a1 Bot Updating Package Versions 2023-06-19 18:21:08 +00:00
LinuxServer-CI
7689b64cf2 Bot Updating Package Versions 2023-06-12 18:22:24 +00:00
LinuxServer-CI
b4f199a7c5 Bot Updating Package Versions 2023-06-09 12:47:10 +00:00
Adam
d164f1b1b9
Merge pull request #173 from ssddanbrown/system-cli-support 2023-06-09 13:44:02 +01:00
Adam
122d120429
Merge branch 'master' into system-cli-support 2023-06-07 13:43:43 +01:00
TheSpad
eb7bd9a626
Rebase against current master branch 2023-06-07 13:39:51 +01:00
LinuxServer-CI
d5a2d9e57c Bot Updating Package Versions 2023-06-05 18:21:35 +00:00
LinuxServer-CI
40692d2a9f Bot Updating Package Versions 2023-05-30 13:58:16 +00:00
Eric Nemchik
00fd09c227
Merge pull request #174 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-30 08:55:43 -05:00
LinuxServer-CI
769680eff8 Bot Updating Package Versions 2023-05-29 18:20:05 +00:00
Eric Nemchik
f6fc0ac4b0
Rebase to Alpine 3.18, deprecate armhf 2023-05-27 16:44:03 -05:00
LinuxServer-CI
ff037f40a1 Bot Updating Package Versions 2023-05-23 12:37:43 +00:00
LinuxServer-CI
5b2e8ecaa0 Bot Updating Templated Files 2023-05-23 12:33:25 +00:00
LinuxServer-CI
19cd312acb Bot Updating Templated Files 2023-05-23 12:31:54 +00:00
Adam
b00371e1bc
Merge pull request #171 from ssddanbrown/compose-changes 2023-05-23 13:30:19 +01:00
Dan Brown
5911614cd7
Updated changelog date for cli support 2023-05-23 13:28:21 +01:00
Dan Brown
00ff6d8366
Updated volume binds to include bookstack name
As requested in https://github.com/linuxserver/docker-bookstack/pull/171#issuecomment-1546728941
2023-05-23 12:55:59 +01:00
LinuxServer-CI
d94b7abffa Bot Updating Package Versions 2023-05-15 18:21:55 +00:00
Dan Brown
e79965fd5f
Updated additional dockerfiles with cli support
Also reordered packages in dockerfile to be alphabetical.
2023-05-08 19:01:05 +01:00
Dan Brown
f2c4a7f002
Updated example volume paths and url options
With an aim to prevent issues when people leave them as the defaults.
2023-05-08 18:41:37 +01:00
Dan Brown
ba204db5e6
Updated changelog and readme mapping for system-cli changes 2023-05-08 18:29:40 +01:00
LinuxServer-CI
43a36901b7 Bot Updating Package Versions 2023-05-08 15:29:11 +00:00
Dan Brown
607fecb0bf
Added requirements for bookstack-system-cli
Added required ZIP extension and mariadb-client package to provide
mysqldump which is required by the CLI for backing up.
2023-05-06 02:20:57 +01:00
LinuxServer-CI
d29c2f1f55 Bot Updating Package Versions 2023-05-03 10:32:56 +00:00
LinuxServer-CI
596d6d9205 Bot Updating Package Versions 2023-05-01 13:25:12 -05:00
LinuxServer-CI
275950c67b Bot Updating Templated Files 2023-05-01 18:20:35 +00:00
LinuxServer-CI
1fad6afd6e Bot Updating Templated Files 2023-05-01 18:19:37 +00:00
LinuxServer-CI
1939f832f8 Bot Updating Package Versions 2023-04-24 20:21:57 +02:00
LinuxServer-CI
e154cab43f Bot Updating Package Versions 2023-04-15 17:25:09 +02:00
Eric Nemchik
04cebcdde1
Merge pull request #169 from linuxserver/move-ssl-include
Move ssl.conf include to default.conf
2023-04-15 10:21:59 -05:00
Eric Nemchik
d97fc18699 Move ssl.conf include to default.conf 2023-04-13 11:04:38 -05:00
LinuxServer-CI
5470eb4620 Bot Updating Templated Files 2023-04-08 23:55:56 +02:00
Adam
37fb5b41e4
Merge pull request #168 from ssddanbrown/readme-path-mapping
Added file/folder path mapping to readme
2023-04-08 22:54:07 +01:00
Dan Brown
0ffb30d5f8
Added path mapping section to readme
Closes linuxserver/docker-bookstack#167
2023-04-08 22:26:41 +01:00
LinuxServer-CI
b84b29044c Bot Updating Package Versions 2023-04-06 18:05:49 +02:00
LinuxServer-CI
fc9ae3f415 Bot Updating Templated Files 2023-04-06 11:02:44 -05:00
LinuxServer-CI
9dc39e38b8 Bot Updating Templated Files 2023-04-06 18:01:11 +02:00
LinuxServer-CI
0f43ec9cff Bot Updating Templated Files 2023-04-06 17:59:30 +02:00
LinuxServer-CI
b85f940dee Bot Updating Package Versions 2023-03-30 18:00:37 +02:00
LinuxServer-CI
1fae28bf60 Bot Updating Package Versions 2023-03-25 13:38:10 +01:00
LinuxServer-CI
f7bb9e3e4a Bot Updating Package Versions 2023-03-23 17:00:21 +01:00
LinuxServer-CI
478a6164ba Bot Updating Package Versions 2023-03-09 17:00:32 +01:00
LinuxServer-CI
959c9ccef9 Bot Updating Package Versions 2023-03-02 17:00:50 +01:00
LinuxServer-CI
99745f761f Bot Updating Package Versions 2023-03-02 02:23:52 +01:00
LinuxServer-CI
8c92c15aa6 Bot Updating Templated Files 2023-03-01 19:19:47 -06:00
LinuxServer-CI
c0cc940e09 Bot Updating Templated Files 2023-03-02 02:18:18 +01:00
aptalca
602677fe43
Merge pull request #164 from ssddanbrown/master
Added php81-iconv as an installed php extension
2023-03-01 20:16:45 -05:00
aptalca
cc131b813e
update changelog 2023-03-01 20:04:50 -05:00
Dan Brown
792b1a8feb
Added php81-iconv as an installed php extension
Adding since the iconv php extension is a requirement for BookStack that
has previously been polyfilled but is now needed as an extension.
Related to https://github.com/linuxserver/docker-bookstack/issues/162
2023-03-02 00:34:26 +00:00
LinuxServer-CI
9c8985d8c7 Bot Updating Package Versions 2023-02-26 05:21:06 -06:00
LinuxServer-CI
67659ad9cd Bot Updating Package Versions 2023-02-23 10:00:37 -06:00
LinuxServer-CI
abfae9ed0c Bot Updating Package Versions 2023-02-16 17:03:42 +01:00
LinuxServer-CI
292160dfdd Bot Updating Templated Files 2023-02-16 10:01:12 -06:00
LinuxServer-CI
d348118c54 Bot Updating Templated Files 2023-02-16 16:59:27 +01:00
LinuxServer-CI
0f9e3082e0 Bot Updating Package Versions 2023-02-09 10:00:13 -06:00
LinuxServer-CI
66af27334f Bot Updating Package Versions 2023-02-02 06:46:33 -06:00
LinuxServer-CI
6aaf90dff8 Bot Updating Package Versions 2023-01-23 11:04:20 -06:00
Eric Nemchik
366fca2ab4
Merge pull request #158 from linuxserver/3.17
Rebase to alpine 3.17 with php8.1
2023-01-23 11:01:39 -06:00
Eric Nemchik
0b903bdfef Fix dependencies 2023-01-22 14:48:04 -06:00
Eric Nemchik
4b7807780b Remove -tmp logic 2023-01-20 18:51:08 -06:00
Eric Nemchik
288cb8d25b Remove -tmp logic 2023-01-20 18:18:44 -06:00
Eric Nemchik
1603fb13fc Remove base packages 2023-01-20 18:15:13 -06:00
Eric Nemchik
231349b842 Fix date 2023-01-19 20:39:21 -06:00
Eric Nemchik
ebeadd336f Rebase to alpine 3.17 with php8.1 2023-01-19 20:18:45 -06:00
LinuxServer-CI
966414b527 Bot Updating Package Versions 2023-01-19 17:00:58 +01:00
aptalca
f38f5cf812
Merge pull request #156 from linuxserver/quotes
wrap .env values in quotes
2023-01-16 22:20:24 -05:00
aptalca
5889c9e4ae wrap .env values in quotes 2023-01-16 22:04:26 -05:00
Eric Nemchik
d690e1d184
Merge pull request #155 from linuxserver/format
Format shell scripts
2023-01-15 10:45:42 -06:00
Eric Nemchik
0752ff3f75 Format shell scripts 2023-01-15 09:48:22 -06:00
aptalca
b860952860
Merge pull request #154 from linuxserver/sedpass
fix db password setting (sed escape &)
2023-01-05 16:34:33 -05:00
aptalca
d3460595f8 fix db password setting (sed escape &) 2023-01-05 15:53:47 -05:00
LinuxServer-CI
0a8973bb32 Bot Updating Package Versions 2022-12-29 17:00:12 +01:00
LinuxServer-CI
894731d11d Bot Updating Templated Files 2022-12-27 18:00:48 +01:00
driz
e65cb66dd5
Merge pull request #152 from linuxserver/TZ-in-sample
Update readme-vars.yml
2022-12-27 10:59:32 -06:00
driz
be4b7a6805
Update readme-vars.yml 2022-12-27 11:14:58 -05:00
LinuxServer-CI
3f99b8d3b3 Bot Updating Package Versions 2022-12-23 10:23:08 -06:00
Adam
7d28720725
Merge pull request #142 from linuxserver/db-check
Cleanup db check so it doesn't spam the console
2022-12-23 16:19:23 +00:00
Adam
3d02d092f2
Merge branch 'master' into db-check 2022-12-23 10:16:17 +00:00
TheSpad
351bb78bd2
Support user-supplied db port for startup check 2022-12-23 10:15:29 +00:00
LinuxServer-CI
240d12383d Bot Updating Templated Files 2022-12-22 16:35:07 -06:00
Eric Nemchik
c075b282cc
Merge pull request #136 from NetLah-external/improve-nc-mysql-host-port
Extract host and port from DB_HOST also support DB_PORT to test connection instead of only use default port 3306
2022-12-22 16:33:41 -06:00
Tho Ho
e2bd737026
sed and grep to support .env.sample upstream comments with # 2022-12-23 00:27:42 +08:00
Tho Ho
987b111e04
Update root/etc/cont-init.d/50-config
Avoid grep -E, change to regex

Co-authored-by: Eric Nemchik <eric@nemchik.com>
2022-12-22 22:12:55 +08:00
Tho Ho
8cb08dab14
Merge branch 'master' into improve-nc-mysql-host-port
# Conflicts:
#	root/etc/cont-init.d/50-config
2022-12-22 11:17:38 +08:00
driz
a27574b2b1
Merge pull request #151 from linuxserver/dbpass
update db info in .env file when env vars are updated
2022-12-21 09:34:29 -06:00
aptalca
7a6a15ebee update db info in .env file when env vars are updated 2022-12-21 10:17:22 -05:00
Tho Ho
a8e02b6b2d
Merge branch 'linuxserver:master' into improve-nc-mysql-host-port 2022-12-15 20:17:23 +08:00
LinuxServer-CI
8917e5dac7 Bot Updating Templated Files 2022-11-30 13:51:27 +01:00
LinuxServer-CI
270010ba93 Bot Updating Templated Files 2022-11-30 13:50:10 +01:00
LinuxServer-CI
2493ccc5ee Bot Updating Templated Files 2022-11-30 13:48:50 +01:00
LinuxServer-CI
ce3f942f09 Bot Updating Templated Files 2022-11-10 10:41:21 -06:00
LinuxServer-CI
214aa452ae Bot Updating Package Versions 2022-11-10 10:00:28 -06:00
LinuxServer-CI
fd055196e8 Bot Updating Package Versions 2022-11-03 11:17:40 -05:00
LinuxServer-CI
61039b8749 Bot Updating Package Versions 2022-11-02 16:50:55 +00:00
LinuxServer-CI
675eb4ecbf Bot Updating Package Versions 2022-10-27 18:00:26 +02:00
LinuxServer-CI
41efff8e26 Bot Updating Package Versions 2022-10-20 16:14:50 +00:00
TheSpad
1b04bcb2c0
Update test init string 2022-10-17 16:46:11 +01:00
TheSpad
697ce2a9f6
Cleanup db check so it doesn't spam the console 2022-10-17 16:43:46 +01:00
TheSpad
fa84257aea
Remove unnecessary packages 2022-10-17 16:43:34 +01:00
LinuxServer-CI
9ae485a116 Bot Updating Package Versions 2022-10-13 11:11:47 -05:00
Tho Ho
3b2550bfe2
support ipv4|[ipv6]|domain:port; fix Alpine grep P
(cherry picked from commit 1fde0ad70e72c73e8062f4a2d299d2cda9a46dc6)
2022-10-12 03:53:24 +08:00
Eric Nemchik
16c3c51494
Rework logic to account for ipv6 (#1)
Also, always set host and port
2022-10-12 03:52:42 +08:00
Tho Ho
014fb2a376
fix readme-vars: properly escaped password 2022-10-11 16:23:51 +08:00
Tho Ho
ab7571658d
Merge branch 'master' into improve-nc-mysql-host-port
# Conflicts:
#	root/etc/cont-init.d/50-config
2022-10-11 16:19:38 +08:00
LinuxServer-CI
d16c8aab6c Bot Updating Templated Files 2022-10-10 11:27:36 -05:00
driz
2e9e08e3d3
Merge pull request #140 from linuxserver/remove-escape-logic
Remove db_pass escape logic
2022-10-10 12:26:03 -04:00
Tho Ho
60ac384c42
Update README support DB_PORT 2022-10-10 22:59:55 +08:00
Tho Ho
f9bb8bc463
Revert "Update README support DB_PORT"
This reverts commit f033396905edbf21fc232a4772685fc9b3a9d73a.
2022-10-10 22:59:14 +08:00
driz
46db2c5bd0
Update README.md 2022-10-10 10:00:12 -04:00
driz
64446dabf4
Update readme-vars.yml 2022-10-10 09:59:35 -04:00
driz
f224890081
Update README.md 2022-10-10 09:58:22 -04:00
driz
11d8054850
Update readme-vars.yml 2022-10-10 09:56:53 -04:00
driz
d3858977d7
Update 50-config 2022-10-10 07:57:58 -04:00
Tho Ho
10f9699fff
Add DB_HOST= to .env if previous version not have 2022-10-10 15:48:57 +08:00
Tho Ho
f033396905
Update README support DB_PORT 2022-10-10 14:52:34 +08:00
Tho Ho
5fa1132792
Improve grep and seq matching 2022-10-10 14:30:21 +08:00
Tho Ho
71750e16a3
Support DB_PORT 2022-10-09 02:48:57 +08:00
LinuxServer-CI
e19234525a Bot Updating Package Versions 2022-10-07 19:44:06 +02:00
Eric Nemchik
039f6c4a96
Merge pull request #139 from linuxserver/fix-date
Update default.conf.sample
2022-10-07 12:41:14 -05:00
Eric Nemchik
06f369e0d8
Update default.conf.sample 2022-10-06 14:46:20 -05:00
Eric Nemchik
9ee92d89ee
Merge pull request #137 from linuxserver/default_server
Add default_server
2022-10-05 05:36:13 -05:00
Eric Nemchik
b8bd87f083 Add default_server 2022-10-04 16:20:35 -05:00
Tho Ho
9cf173b16b Extract host and port from DB_HOST 2022-09-23 13:56:16 +08:00
LinuxServer-CI
e301c5fb78 Bot Updating Package Versions 2022-09-22 11:03:51 -05:00
LinuxServer-CI
99ac907b96 Bot Updating Templated Files 2022-09-20 14:58:01 +02:00
LinuxServer-CI
91408e7216 Bot Updating Package Versions 2022-09-15 18:01:52 +02:00
LinuxServer-CI
c387f0126e Bot Updating Package Versions 2022-09-08 14:55:03 +02:00
LinuxServer-CI
8d82576559 Bot Updating Package Versions 2022-08-25 18:00:00 +02:00
Eric Nemchik
6b6ecc9bb0
Merge pull request #131 from linuxserver/default-tweaks
nginx conf tweaks
2022-08-23 16:53:16 -05:00
Eric Nemchik
a50d975a98 nginx conf tweaks 2022-08-23 09:54:58 -05:00
Eric Nemchik
df24c3860e
Merge pull request #130 from linuxserver/config-volume
Config volume
2022-08-22 08:07:19 -05:00
Eric Nemchik
313f1e7c0d Keep /config volume consistently 2022-08-21 17:04:32 -05:00
Eric Nemchik
78bd55b349 Keep /config volume consistently 2022-08-21 16:53:05 -05:00
LinuxServer-CI
b7028c984a Bot Updating Package Versions 2022-08-21 16:11:58 +02:00
Eric Nemchik
0dd9c4b46f
Merge pull request #113 from linuxserver/standard-base
Standard base
2022-08-21 09:08:24 -05:00
Eric Nemchik
ed2f423949 Add default location migration 2022-08-20 18:53:43 -05:00
Eric Nemchik
32df06d2ab Use standard nginx.conf from lsio alpine nginx base image 2022-08-20 12:39:27 -05:00
LinuxServer-CI
e3c5253633 Bot Updating Package Versions 2022-08-18 18:10:36 +02:00
LinuxServer-CI
8cf651cdf9 Bot Updating Package Versions 2022-08-11 09:26:30 -05:00
LinuxServer-CI
30d4498b36 Bot Updating Package Versions 2022-08-04 18:00:14 +02:00
LinuxServer-CI
3eb67c59cf Bot Updating Package Versions 2022-08-02 13:25:32 +02:00
LinuxServer-CI
48cc137141 Bot Updating Package Versions 2022-07-28 09:32:58 -05:00
LinuxServer-CI
8a50be63e3 Bot Updating Package Versions 2022-07-21 18:01:05 +02:00
LinuxServer-CI
f80eb7c2c0 Bot Updating Package Versions 2022-07-14 11:00:37 -05:00
LinuxServer-CI
3c5a3e7fd0 Bot Updating Package Versions 2022-07-07 18:00:29 +02:00
LinuxServer-CI
1253e76f12 Bot Updating Package Versions 2022-06-30 18:00:15 +02:00
LinuxServer-CI
3f44534271 Bot Updating Package Versions 2022-06-23 11:00:09 -05:00
LinuxServer-CI
0398dba20e Bot Updating Package Versions 2022-06-16 11:00:23 -05:00
LinuxServer-CI
7c3503a1d0 Bot Updating Package Versions 2022-06-09 11:00:37 -05:00
LinuxServer-CI
750e15a70b Bot Updating Package Versions 2022-06-02 11:00:39 -05:00
LinuxServer-CI
4179bddddc Bot Updating Package Versions 2022-05-30 21:47:49 -05:00
aptalca
7e2f3fe9da
Merge pull request #123 from linuxserver/dbpass-sed
Improve sed and maintain consistency with other database password sed
2022-05-30 22:43:26 -04:00
driz
5a5da8d6e7
Update 50-config
improve sed for password
2022-05-30 16:43:33 -04:00
LinuxServer-CI
1365874f03 Bot Updating Package Versions 2022-05-26 11:00:11 -05:00
LinuxServer-CI
0f60a1839b Bot Updating Package Versions 2022-05-19 11:22:06 -05:00
LinuxServer-CI
3ceb46e54e Bot Updating Package Versions 2022-05-12 11:00:36 -05:00
LinuxServer-CI
09ceb8ec6b Bot Updating Package Versions 2022-05-09 10:32:17 -05:00
LinuxServer-CI
6d78458e97 Bot Updating Package Versions 2022-05-05 18:00:18 +02:00
LinuxServer-CI
4c2f3aa850 Bot Updating Templated Files 2022-05-04 23:27:08 +02:00
LinuxServer-CI
0adab4d872 Bot Updating Templated Files 2022-05-04 16:25:46 -05:00
LinuxServer-CI
6249989ed9 Bot Updating Package Versions 2022-04-28 18:00:39 +02:00
LinuxServer-CI
a13c1a6a25 Bot Updating Package Versions 2022-04-14 11:03:45 -05:00
LinuxServer-CI
cf468f5ac0 Bot Updating Package Versions 2022-04-07 11:01:18 -05:00
LinuxServer-CI
08e142650f Bot Updating Package Versions 2022-03-31 18:00:36 +02:00
LinuxServer-CI
cf331310ea Bot Updating Package Versions 2022-03-24 17:30:11 +01:00
LinuxServer-CI
aa29174802 Bot Updating Package Versions 2022-03-17 11:03:36 -05:00
LinuxServer-CI
1c319760d4 Bot Updating Templated Files 2022-03-14 21:37:57 +01:00
Adam
4755af43b9
Merge pull request #119 from linuxserver/fix-changelog 2022-03-14 20:36:42 +00:00
TheSpad
cd48677611 Add changelog note for #111 2022-03-14 20:16:27 +00:00
Adam
139c220cd9
Merge pull request #111 from rjmidau/custom-themes-folder 2022-03-14 20:14:59 +00:00
LinuxServer-CI
f1b66f3d97 Bot Updating Package Versions 2022-03-10 17:49:36 +01:00
LinuxServer-CI
3c00492f9c Bot Updating Package Versions 2022-03-03 17:24:52 +01:00
LinuxServer-CI
0284885dba Bot Updating Package Versions 2022-02-24 17:00:14 +01:00
LinuxServer-CI
c46e084218 Bot Updating Package Versions 2022-02-17 17:00:31 +01:00
LinuxServer-CI
213b9e38b3 Bot Updating Package Versions 2022-02-10 17:00:55 +01:00
LinuxServer-CI
0e953b9de6 Bot Updating Package Versions 2022-02-06 17:35:57 +01:00
LinuxServer-CI
a59932fda8 Bot Updating Package Versions 2022-02-03 17:00:40 +01:00
LinuxServer-CI
7151ea84a0 Bot Updating Package Versions 2022-01-27 17:00:30 +01:00
LinuxServer-CI
a3116b03c2 Bot Updating Package Versions 2022-01-20 17:00:31 +01:00
Robert Meredith
38b5546950
Create themes folder in config folder and symlink to it 2021-10-09 17:21:35 +11:00
47 changed files with 1869 additions and 1394 deletions

2
.editorconfig Executable file → Normal file
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

6
.github/CONTRIBUTING.md vendored Executable file → Normal file
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/bookstack: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`.

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

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 bookstack"
label: Container logs
placeholder: |
Output of `docker logs bookstack`
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

@ -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: '3 9 * * *'
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

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

@ -3,24 +3,42 @@ 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_BOOKSTACK_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_BOOKSTACK_MASTER is set; skipping trigger. ****"
printf "# External trigger for docker-bookstack\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^bookstack_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bookstack_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^bookstack_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bookstack_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_BOOKSTACK_MASTER\". ****"
echo "**** Retrieving external version ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`bookstack_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/bookstackapp/bookstack/releases/latest" | jq -r '. | .tag_name')
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^bookstack_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 bookstack branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-bookstack/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/bookstack"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fbookstack%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 bookstack 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-bookstack/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-bookstack/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 bookstack 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 bookstack 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-bookstack/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 bookstack 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: '03 * * * *'
- cron: '19 * * * *'
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-bookstack\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-bookstack/${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-bookstack/${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-bookstack/${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-bookstack/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 [bug](https://github.com/linuxserver/docker-bookstack/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-bookstack/blob/master/.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-bookstack/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_BOOKSTACK_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BOOKSTACK_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/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_BOOKSTACK_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/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: '51 15 * * 4'
- cron: '4 18 * * 1'
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-bookstack\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-bookstack/${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-bookstack/${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-bookstack/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-bookstack/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-bookstack/${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-bookstack/${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 "^bookstack_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`bookstack_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/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 \`bookstack_%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-bookstack/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 bookstack** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-bookstack/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-bookstack/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 bookstack** \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@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,66 +1,66 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.23
# set version label
ARG BUILD_DATE
ARG VERSION
ARG BOOKSTACK_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="homerr"
LABEL maintainer="thespad"
# package versions
ARG BOOKSTACK_RELEASE
ENV S6_STAGE2_HOOK="/init-hook"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
composer \
echo "**** install runtime packages ****" && \
apk add --no-cache \
fontconfig \
mariadb-client \
memcached \
netcat-openbsd \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-ldap \
php7-mbstring \
php7-memcached \
php7-mysqlnd \
php7-openssl \
php7-pdo_mysql \
php7-phar \
php7-simplexml \
php7-tokenizer \
php85-dom \
php85-exif \
php85-gd \
php85-ldap \
php85-mysqlnd \
php85-pdo_mysql \
php85-pecl-memcached \
php85-tokenizer \
qt5-qtbase \
tar \
ttf-freefont \
wkhtmltopdf && \
echo "**** configure php-fpm ****" && \
sed -i 's/;clear_env = no/clear_env = no/g' /etc/php7/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
ttf-freefont && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php85/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php85/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php85/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php85/php-fpm.conf && \
echo "**** fetch bookstack ****" && \
mkdir -p\
/var/www/html && \
/app/www && \
if [ -z ${BOOKSTACK_RELEASE+x} ]; then \
BOOKSTACK_RELEASE=$(curl -sX GET "https://api.github.com/repos/bookstackapp/bookstack/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/bookstack.tar.gz -L \
/tmp/bookstack.tar.gz -L \
"https://github.com/BookStackApp/BookStack/archive/${BOOKSTACK_RELEASE}.tar.gz" && \
tar xf \
/tmp/bookstack.tar.gz -C \
/var/www/html/ --strip-components=1 && \
/tmp/bookstack.tar.gz -C \
/app/www/ --strip-components=1 && \
echo "**** install composer dependencies ****" && \
composer install -d /var/www/html/ && \
echo "**** overlay-fs bug workaround ****" && \
mv /var/www /var/www-tmp && \
composer install -d /app/www/ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** create symlinks ****" && \
/bin/bash -c \
'dst=(www/themes www/files www/images www/uploads backups www/framework/cache www/framework/sessions www/framework/views www/framework/purifier log/bookstack/laravel.log www/.env); \
src=(themes storage/uploads/files storage/uploads/images public/uploads storage/backups storage/framework/cache storage/framework/sessions storage/framework/views storage/framework/purifier storage/logs/laravel.log .env); \
for i in "${!src[@]}"; do rm -rf /app/www/"${src[i]}" && ln -s /config/"${dst[i]}" /app/www/"${src[i]}"; done' && \
echo "**** cleanup ****" && \
rm -rf \
/root/.composer \
/tmp/*
/tmp/* \
$HOME/.cache \
$HOME/.composer
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config
EXPOSE 80

View File

@ -1,66 +1,66 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.23
# set version label
ARG BUILD_DATE
ARG VERSION
ARG BOOKSTACK_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="homerr"
LABEL maintainer="thespad"
# package versions
ARG BOOKSTACK_RELEASE
ENV S6_STAGE2_HOOK="/init-hook"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
composer \
echo "**** install runtime packages ****" && \
apk add --no-cache \
fontconfig \
mariadb-client \
memcached \
netcat-openbsd \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-ldap \
php7-mbstring \
php7-memcached \
php7-mysqlnd \
php7-openssl \
php7-pdo_mysql \
php7-phar \
php7-simplexml \
php7-tokenizer \
php85-dom \
php85-exif \
php85-gd \
php85-ldap \
php85-mysqlnd \
php85-pdo_mysql \
php85-pecl-memcached \
php85-tokenizer \
qt5-qtbase \
tar \
ttf-freefont \
wkhtmltopdf && \
echo "**** configure php-fpm ****" && \
sed -i 's/;clear_env = no/clear_env = no/g' /etc/php7/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
ttf-freefont && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php85/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php85/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php85/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php85/php-fpm.conf && \
echo "**** fetch bookstack ****" && \
mkdir -p\
/var/www/html && \
/app/www && \
if [ -z ${BOOKSTACK_RELEASE+x} ]; then \
BOOKSTACK_RELEASE=$(curl -sX GET "https://api.github.com/repos/bookstackapp/bookstack/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/bookstack.tar.gz -L \
/tmp/bookstack.tar.gz -L \
"https://github.com/BookStackApp/BookStack/archive/${BOOKSTACK_RELEASE}.tar.gz" && \
tar xf \
/tmp/bookstack.tar.gz -C \
/var/www/html/ --strip-components=1 && \
/tmp/bookstack.tar.gz -C \
/app/www/ --strip-components=1 && \
echo "**** install composer dependencies ****" && \
composer install -d /var/www/html/ && \
echo "**** overlay-fs bug workaround ****" && \
mv /var/www /var/www-tmp && \
composer install -d /app/www/ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** create symlinks ****" && \
/bin/bash -c \
'dst=(www/themes www/files www/images www/uploads backups www/framework/cache www/framework/sessions www/framework/views www/framework/purifier log/bookstack/laravel.log www/.env); \
src=(themes storage/uploads/files storage/uploads/images public/uploads storage/backups storage/framework/cache storage/framework/sessions storage/framework/views storage/framework/purifier storage/logs/laravel.log .env); \
for i in "${!src[@]}"; do rm -rf /app/www/"${src[i]}" && ln -s /config/"${dst[i]}" /app/www/"${src[i]}"; done' && \
echo "**** cleanup ****" && \
rm -rf \
/root/.composer \
/tmp/*
/tmp/* \
$HOME/.cache \
$HOME/.composer
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config
EXPOSE 80

View File

@ -1,66 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
# set version label
ARG BUILD_DATE
ARG VERSION
ARG BOOKSTACK_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="homerr"
# package versions
ARG BOOKSTACK_RELEASE
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
composer \
fontconfig \
memcached \
netcat-openbsd \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-ldap \
php7-mbstring \
php7-memcached \
php7-mysqlnd \
php7-openssl \
php7-pdo_mysql \
php7-phar \
php7-simplexml \
php7-tokenizer \
qt5-qtbase \
tar \
ttf-freefont \
wkhtmltopdf && \
echo "**** configure php-fpm ****" && \
sed -i 's/;clear_env = no/clear_env = no/g' /etc/php7/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** fetch bookstack ****" && \
mkdir -p\
/var/www/html && \
if [ -z ${BOOKSTACK_RELEASE+x} ]; then \
BOOKSTACK_RELEASE=$(curl -sX GET "https://api.github.com/repos/bookstackapp/bookstack/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/bookstack.tar.gz -L \
"https://github.com/BookStackApp/BookStack/archive/${BOOKSTACK_RELEASE}.tar.gz" && \
tar xf \
/tmp/bookstack.tar.gz -C \
/var/www/html/ --strip-components=1 && \
echo "**** install composer dependencies ****" && \
composer install -d /var/www/html/ && \
echo "**** overlay-fs bug workaround ****" && \
mv /var/www /var/www-tmp && \
echo "**** cleanup ****" && \
rm -rf \
/root/.composer \
/tmp/*
COPY root/ /
VOLUME /config
EXPOSE 80

1029
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

0
LICENSE Executable file → Normal file
View File

303
README.md
View File

@ -1,12 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-bookstack/blob/master/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-bookstack/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")
@ -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/bookstack](https://github.com/linuxserver/docker-bookstack)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fbookstack?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fbookstack)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fbookstack?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-bookstack.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-bookstack)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-bookstack.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-bookstack/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-bookstack/packages)
@ -38,7 +35,6 @@ Find us at:
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/bookstack.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/bookstack)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/bookstack.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/bookstack)
[![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-bookstack%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/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%2Fbookstack%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/bookstack/latest/index.html)
[Bookstack](https://github.com/BookStackApp/BookStack) is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease.
@ -46,86 +42,100 @@ Powered by SQL and including a Markdown editor for those who prefer it, BookStac
For more information on BookStack visit their website and check it out: https://www.bookstackapp.com
[![bookstack](https://s3-us-west-2.amazonaws.com/linuxserver-docs/images/bookstack-logo500x500.png)](https://github.com/BookStackApp/BookStack)
[![bookstack](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bookstack-logo.png)](https://github.com/BookStackApp/BookStack)
## 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/bookstack` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/bookstack: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
The default username is admin@admin.com with the password of **password**, access the container at http://dockerhost:6875.
The default username is admin@admin.com with the password of **password**, access the container at http://<host ip>:6875.
This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/.
This application is dependent on a MariaDB database, be it one you already have or a new one. If you do not already have one, we provide an image here https://github.com/linuxserver/docker-mariadb.
If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the `APP_URL` environment variable is set to your external domain, or it will not work.
If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the `APP_URL` environment variable is set to your external domain, or it will not work
Documentation for BookStack can be found at https://www.bookstackapp.com/docs/.
Documentation for BookStack can be found at https://www.bookstackapp.com/docs/
### BookStack File & Directory Paths
This container ensures certain BookStack application files & folders, such as user file upload folders, are retained within the `/config` folder so that they are persistent & accessible when the `/config` container path is bound as a volume. There may be cases, when following the BookStack documentation, that you'll need to know how these files and folders are used relative to a non-container BookStack installation.
Below is a mapping of container `/config` paths to those relative within a BookStack install directory:
- **/config container path** => **BookStack relative path**
- `/config/www/.env` => `.env`
- `/config/log/bookstack/laravel.log` => `storage/logs/laravel.log`
- `/config/backups/` => `storage/backups/`
- `/config/www/files/` => `storage/uploads/files/`
- `/config/www/images/` => `storage/uploads/images/`
- `/config/www/themes/` => `themes/`
- `/config/www/uploads/` => `public/uploads/`
### Changing APP_URL
If you change the APP_URL after initial install, you should run the following line from your host terminal to update the database URL entries:
```shell
docker exec -it bookstack php /app/www/artisan bookstack:update-url ${OLD_URL} ${NEW_URL}
```
### Advanced Users (full control over the .env file)
If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation.
When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit.
#### PDF Rendering
[wkhtmltopdf](https://wkhtmltopdf.org/) is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/.
If you wish to use the extra functionality of BookStack such as email, LDAP and so on you will need to set additional environment variables or make your own .env file with guidance from the BookStack documentation.
The path to wkhtmltopdf in this image to include in your .env file is `/usr/bin/wkhtmltopdf`.
The container will copy an exemplary .env file to /config/www/.env on your host system for you to use.
## Read-Only Operation
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
### Caveats
* `/tmp` must be mounted to tmpfs
## 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"
services:
bookstack:
image: lscr.io/linuxserver/bookstack
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- APP_URL=
- DB_HOST=bookstack_db
- DB_USER=bookstack
- DB_PASS=<yourdbpass>
- DB_DATABASE=bookstackapp
- APP_KEY=
- DB_HOST=
- DB_PORT=3306
- DB_USERNAME=
- DB_PASSWORD=
- DB_DATABASE=
- QUEUE_CONNECTION= #optional
volumes:
- /path/to/data:/config
- /path/to/bookstack/config:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: lscr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=<yourdbpass>
- TZ=Europe/London
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=<yourdbpass>
volumes:
- /path/to/data:/config
restart: unless-stopped
```
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
@ -135,32 +145,41 @@ docker run -d \
--name=bookstack \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e APP_URL= \
-e DB_HOST=<yourdbhost> \
-e DB_USER=<yourdbuser> \
-e DB_PASS=<yourdbpass> \
-e DB_DATABASE=bookstackapp \
-e APP_KEY= \
-e DB_HOST= \
-e DB_PORT=3306 \
-e DB_USERNAME= \
-e DB_PASSWORD= \
-e DB_DATABASE= \
-e QUEUE_CONNECTION= `#optional` \
-p 6875:80 \
-v /path/to/data:/config \
-v /path/to/bookstack/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/bookstack
lscr.io/linuxserver/bookstack: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` | will map the container's port 80 to port 6875 on the host |
| `-p 6875:80` | http/s web interface. |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e APP_URL=` | for specifying the IP:port or URL your application will be accessed on (ie. `http://192.168.1.1:6875` or `https://bookstack.mydomain.com` |
| `-e DB_HOST=<yourdbhost>` | for specifying the database host |
| `-e DB_USER=<yourdbuser>` | for specifying the database user |
| `-e DB_PASS=<yourdbpass>` | for specifying the database password |
| `-e DB_DATABASE=bookstackapp` | for specifying the database to be used |
| `-v /config` | this will store any uploaded data on the docker host |
| `-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 APP_URL=` | The protocol, IP/URL, and port that your application will be accessed on (ie. `http://192.168.1.1:6875` or `https://bookstack.mydomain.com` |
| `-e APP_KEY=` | Session encryption key. You will need to generate this with `docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey` |
| `-e DB_HOST=` | The database instance hostname |
| `-e DB_PORT=3306` | Database port |
| `-e DB_USERNAME=` | Database user |
| `-e DB_PASSWORD=` | Database password (minimum 4 characters & non-alphanumeric passwords must be properly escaped.) |
| `-e DB_DATABASE=` | Database name |
| `-e QUEUE_CONNECTION=` | Set to `database` to enable async actions like sending email or triggering webhooks. See [documentation](https://www.bookstackapp.com/docs/admin/email-webhooks/#async-action-handling). |
| `-v /config` | Persistent config files |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
## Environment variables from files (Docker secrets)
@ -169,10 +188,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
@ -181,15 +200,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
@ -200,53 +224,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 bookstack /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f bookstack`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' bookstack`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bookstack`
* Shell access whilst the container is running:
```bash
docker exec -it bookstack /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f bookstack
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' bookstack
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bookstack: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 bookstack`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d bookstack`
* 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 bookstack
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d bookstack
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/bookstack`
* Stop the running container: `docker stop bookstack`
* Delete the container: `docker rm bookstack`
* Update the image:
```bash
docker pull lscr.io/linuxserver/bookstack:latest
```
* Stop the running container:
```bash
docker stop bookstack
```
* Delete the container:
```bash
docker rm bookstack
```
* 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 bookstack
```
* 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
@ -261,16 +333,37 @@ docker build \
-t lscr.io/linuxserver/bookstack: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
* **28.12.25:** - Rebase to Alpine 3.23.
* **05.07.25:** - Rebase to Alpine 3.22.
* **04.01.25:** - Add php-opcache.
* **17.12.24:** - Rebase to Alpine 3.21.
* **11.10.24:** - Default to environment config over .env file config.
* **06.09.24:** - Add php-exif for reading image EXIF data.
* **27.05.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **25.01.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
* **31.10.23:** - Further sanitize sed replace.
* **07.06.23:** - Add mariadb-client for bookstack-system-cli support.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **13.04.23:** - Move ssl.conf include to default.conf.
* **01.03.23:** - Add php iconv.
* **19.01.23:** - Rebase to alpine 3.17 with php8.1.
* **16.01.23:** - Wrap `.env` values in quotes.
* **05.01.23:** - Fix db password setting (sed escape `&`).
* **21.12.22:** - Update db info in .env file when env vars are updated.
* **10.10.22:** - Remove password escape logic which caused problems for a small subset of users.
* **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)).
* **14.03.22:** - Add symlinks for theme support.
* **11.07.21:** - Rebase to Alpine 3.14.
* **12.01.21:** - Remove unused requirement, as of release 0.31.0.
* **17.12.20:** - Make APP_URL var required (upstream changes).

View File

@ -19,11 +19,11 @@ repo_vars:
- PR_DOCKERHUB_IMAGE = 'lspipepr/bookstack'
- DIST_IMAGE = 'alpine'
- MULTIARCH = 'true'
- CI = 'true'
- CI = 'false'
- CI_WEB = 'false'
- CI_PORT = '80'
- CI_SSL = 'false'
- CI_DELAY = '30'
- CI_DOCKERENV='TEST_RUN=1'
- CI_AUTH = 'user:password'
- CI_DELAY = '60'
- CI_DOCKERENV=''
- CI_AUTH = ''
- CI_WEBPATH = ''

View File

@ -1,195 +1,296 @@
alpine-baselayout-3.2.0-r16
alpine-keys-2.4-r0
alsa-lib-1.2.5-r2
apache2-utils-2.4.52-r0
apk-tools-2.12.7-r0
apr-1.7.0-r0
apr-util-1.6.1-r7
argon2-libs-20190702-r1
avahi-libs-0.8-r5
bash-5.1.4-r0
brotli-libs-1.0.9-r5
busybox-1.33.1-r6
ca-certificates-20191127-r5
ca-certificates-bundle-20191127-r5
cairo-1.16.0-r3
cdparanoia-libs-10.2-r9
composer-2.1.9-r0
coreutils-8.32-r2
cups-libs-2.3.3-r2
curl-7.79.1-r0
dbus-libs-1.12.20-r2
encodings-1.0.5-r0
eudev-libs-3.2.10-r0
expat-2.4.1-r0
fontconfig-2.13.1-r4
freetype-2.10.4-r1
fribidi-1.0.10-r0
gdbm-1.19-r0
git-2.32.0-r0
glib-2.68.3-r0
gmp-6.2.1-r0
gnutls-3.7.1-r0
graphite2-1.3.14-r0
gst-plugins-base-1.18.4-r0
gstreamer-1.18.4-r0
harfbuzz-2.8.1-r0
hicolor-icon-theme-0.17-r1
hyphen-2.8.8-r1
icu-libs-67.1-r2
libacl-2.2.53-r0
libattr-2.5.1-r0
libblkid-2.37.2-r0
libbsd-0.11.3-r0
libbz2-1.0.8-r1
libc-utils-0.7.2-r3
libcap-2.50-r0
libcrypto1.1-1.1.1l-r0
libcurl-7.79.1-r0
libdrm-2.4.106-r0
libedit-20210216.3.1-r0
libevdev-1.11.0-r1
libevent-2.1.12-r2
libffi-3.3-r2
libfontenc-1.1.4-r0
libgcc-10.3.1_git20210424-r2
libgcrypt-1.9.4-r0
libgpg-error-1.42-r0
libice-1.0.10-r0
libinput-libs-1.18.0-r0
libintl-0.21-r0
libjpeg-turbo-2.1.0-r0
libldap-2.4.58-r0
libmagic-5.40-r1
libmd-1.0.3-r0
libmemcached-libs-1.0.18-r4
libmount-2.37.2-r0
libogg-1.3.5-r0
libpciaccess-0.16-r0
libpcre2-16-10.36-r0
libpng-1.6.37-r1
libproc-3.3.17-r0
libressl3.3-libcrypto-3.3.3-r0
libressl3.3-libssl-3.3.3-r0
libretls-3.3.3p1-r2
libsasl-2.1.27-r12
libseccomp-2.5.1-r2
libsm-1.2.3-r0
libssl1.1-1.1.1l-r0
libstdc++-10.3.1_git20210424-r2
libtasn1-4.17.0-r0
libtheora-1.1.1-r16
libunistring-0.9.10-r1
libuuid-2.37.2-r0
libvorbis-1.3.7-r0
libwebp-1.2.0-r2
libx11-1.7.2-r0
libxau-1.0.9-r0
libxcb-1.14-r2
libxcomposite-0.4.5-r0
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxfixes-6.0.0-r0
libxft-2.3.3-r0
libxkbcommon-1.2.1-r0
libxkbcommon-x11-1.2.1-r0
libxml2-2.9.12-r1
libxpm-3.5.13-r0
libxrender-0.9.10-r3
libxshmfence-1.3-r1
libxslt-1.1.34-r1
libxt-1.2.1-r0
libxv-1.0.11-r2
libxxf86vm-1.1.4-r2
libzip-1.7.3-r2
linux-pam-1.5.1-r1
logrotate-3.18.1-r0
memcached-1.6.9-r0
mesa-21.1.2-r0
mesa-egl-21.1.2-r0
mesa-gbm-21.1.2-r0
mesa-gl-21.1.2-r0
mesa-glapi-21.1.2-r0
mkfontscale-1.2.1-r1
mtdev-1.1.6-r0
musl-1.2.2-r3
musl-utils-1.2.2-r3
nano-5.7-r2
ncurses-libs-6.2_p20210612-r0
ncurses-terminfo-base-6.2_p20210612-r0
netcat-openbsd-1.130-r2
nettle-3.7.3-r0
nghttp2-libs-1.43.0-r0
nginx-1.20.2-r0
oniguruma-6.9.7.1-r0
openssl-1.1.1l-r0
opus-1.3.1-r1
orc-0.4.32-r0
p11-kit-0.23.22-r0
pango-1.48.5-r0
pcre-8.44-r0
pcre2-10.36-r0
php7-7.4.26-r0
php7-common-7.4.26-r0
php7-ctype-7.4.26-r0
php7-curl-7.4.26-r0
php7-dom-7.4.26-r0
php7-fileinfo-7.4.26-r0
php7-fpm-7.4.26-r0
php7-gd-7.4.26-r0
php7-iconv-7.4.26-r0
php7-json-7.4.26-r0
php7-ldap-7.4.26-r0
php7-mbstring-7.4.26-r0
php7-mysqlnd-7.4.26-r0
php7-openssl-7.4.26-r0
php7-pdo-7.4.26-r0
php7-pdo_mysql-7.4.26-r0
php7-pecl-igbinary-3.2.6-r0
php7-pecl-memcached-3.1.5-r2
php7-phar-7.4.26-r0
php7-session-7.4.26-r0
php7-simplexml-7.4.26-r0
php7-tokenizer-7.4.26-r0
php7-xml-7.4.26-r0
php7-xmlwriter-7.4.26-r0
php7-zip-7.4.26-r0
pixman-0.40.0-r2
pkgconf-1.7.4-r0
popt-1.18-r0
procps-3.3.17-r0
qt5-qtbase-5.15.3_git20210406-r0
qt5-qtbase-x11-5.15.3_git20210406-r0
qt5-qtdeclarative-5.15.3_git20210531-r0
qt5-qtlocation-5.15.3_git20201109-r0
qt5-qtsensors-5.15.3_git20201028-r1
qt5-qtsvg-5.15.3_git20200406-r0
qt5-qtwayland-5.15.3_git20210510-r0
qt5-qtwebchannel-5.15.3_git20201028-r0
qt5-qtwebkit-5.212.0_alpha4-r14
readline-8.1.0-r0
s6-ipcserver-2.10.0.3-r0
scanelf-1.3.2-r0
shadow-4.8.1-r0
skalibs-2.10.0.3-r0
sqlite-libs-3.35.5-r0
ssl_client-1.33.1-r6
tar-1.34-r0
ttf-freefont-20120503-r1
tzdata-2021e-r0
utmps-0.1.0.2-r0
wayland-libs-client-1.19.0-r0
wayland-libs-cursor-1.19.0-r0
wayland-libs-egl-1.19.0-r0
wayland-libs-server-1.19.0-r0
wkhtmltopdf-0.12.6-r0
xcb-util-0.4.0-r3
xcb-util-image-0.4.0-r1
xcb-util-keysyms-0.4.0-r1
xcb-util-renderutil-0.3.9-r1
xcb-util-wm-0.4.1-r1
xkeyboard-config-2.33-r0
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
zstd-libs-1.4.9-r1
NAME VERSION TYPE
Hidden Input 1, 0, 0, 0 binary
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.7.1-r8 apk
alpine-baselayout-data 3.7.1-r8 apk
alpine-keys 2.6-r0 apk
alpine-release 3.23.3-r0 apk
aom-libs 3.13.1-r1 apk
apache2-utils 2.4.66-r0 apk
apk-tools 3.0.4-r0 apk
apr 1.7.6-r0 apk
apr-util 1.6.3-r2 apk
argon2-libs 20190702-r5 apk
aws/aws-crt-php v1.2.7 php-composer
aws/aws-sdk-php 3.369.36 php-composer
bacon/bacon-qr-code v3.0.3 php-composer
bash 5.3.3-r1 apk
brick/math 0.14.8 php-composer
brotli-libs 1.2.0-r0 apk
busybox 1.37.0-r30 apk
busybox-binsh 1.37.0-r30 apk
c-ares 1.34.6-r0 apk
ca-certificates 20251003-r0 apk
ca-certificates-bundle 20251003-r0 apk
carbonphp/carbon-doctrine-types 3.2.0 php-composer
catatonit 0.2.1-r0 apk
composer 2.9.5 binary
coreutils 9.8-r1 apk
coreutils-env 9.8-r1 apk
coreutils-fmt 9.8-r1 apk
coreutils-sha512sum 9.8-r1 apk
curl 8.17.0-r1 apk
dasprid/enum 1.0.7 php-composer
dbus-libs 1.16.2-r1 apk
dflydev/dot-access-data v3.0.3 php-composer
doctrine/inflector 2.1.0 php-composer
doctrine/lexer 3.0.1 php-composer
dompdf/dompdf v3.1.4 php-composer
dompdf/php-font-lib 1.0.2 php-composer
dompdf/php-svg-lib 1.0.2 php-composer
dragonmantank/cron-expression v3.6.0 php-composer
egulias/email-validator 4.0.4 php-composer
encodings 1.1.0-r0 apk
ezyang/htmlpurifier v4.19.0 php-composer
fakerphp/faker v1.24.1 php-composer
filp/whoops 2.18.4 php-composer
findutils 4.10.0-r0 apk
firebase/php-jwt v7.0.2 php-composer
font-freefont 20120503-r4 apk
fontconfig 2.17.1-r0 apk
freetype 2.14.1-r0 apk
fruitcake/php-cors v1.4.0 php-composer
gdbm 1.26-r0 apk
git 2.52.0-r0 apk
git-init-template 2.52.0-r0 apk
glib 2.86.3-r0 apk
graham-campbell/result-type v1.1.4 php-composer
guzzlehttp/guzzle 7.10.0 php-composer
guzzlehttp/promises 2.3.0 php-composer
guzzlehttp/psr7 2.8.0 php-composer
guzzlehttp/uri-template v1.0.5 php-composer
hamcrest/hamcrest-php v2.1.1 php-composer
iamcal/sql-parser v0.7 php-composer
icu-data-full 76.1-r1 apk
icu-libs 76.1-r1 apk
intervention/gif 4.2.4 php-composer
intervention/image 3.11.6 php-composer
itsgoingd/clockwork v5.3.5 php-composer
jq 1.8.1-r0 apk
knplabs/knp-snappy v1.6.0 php-composer
larastan/larastan v3.9.2 php-composer
laravel/framework v12.52.0 php-composer
laravel/prompts v0.3.13 php-composer
laravel/serializable-closure v2.0.9 php-composer
laravel/socialite v5.24.2 php-composer
laravel/tinker v2.11.1 php-composer
league/commonmark 2.8.0 php-composer
league/config v1.2.0 php-composer
league/flysystem 3.31.0 php-composer
league/flysystem-aws-s3-v3 3.31.0 php-composer
league/flysystem-local 3.31.0 php-composer
league/html-to-markdown 5.1.1 php-composer
league/mime-type-detection 1.16.0 php-composer
league/oauth1-client v1.11.0 php-composer
league/oauth2-client 2.9.0 php-composer
league/uri 7.8.0 php-composer
league/uri-interfaces 7.8.0 php-composer
libapk 3.0.4-r0 apk
libattr 2.5.2-r2 apk
libavif 1.3.0-r0 apk
libblkid 2.41.2-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.5.5-r0 apk
libcurl 8.17.0-r1 apk
libdav1d 1.5.2-r0 apk
libeconf 0.8.3-r0 apk
libedit 20251016.3.1-r0 apk
libevent 2.1.12-r8 apk
libexpat 2.7.4-r0 apk
libffi 3.5.2-r0 apk
libfontenc 1.1.8-r0 apk
libgcc 15.2.0-r2 apk
libice 1.1.2-r0 apk
libidn2 2.3.8-r0 apk
libintl 0.24.1-r1 apk
libjpeg-turbo 3.1.2-r0 apk
libldap 2.6.10-r0 apk
libmd 1.1.0-r0 apk
libmemcached-libs 1.1.4-r1 apk
libmount 2.41.2-r0 apk
libncursesw 6.5_p20251123-r0 apk
libpcre2-16 10.47-r0 apk
libpng 1.6.54-r0 apk
libproc2 4.0.5-r0 apk
libpsl 0.21.5-r3 apk
libsasl 2.1.28-r9 apk
libseccomp 2.6.0-r1 apk
libsharpyuv 1.6.0-r0 apk
libsm 1.2.6-r0 apk
libssl3 3.5.5-r0 apk
libstdc++ 15.2.0-r2 apk
libunistring 1.4.1-r0 apk
libuuid 2.41.2-r0 apk
libwebp 1.6.0-r0 apk
libx11 1.8.12-r1 apk
libxau 1.0.12-r0 apk
libxcb 1.17.0-r1 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-r1 apk
linux-pam 1.7.1-r2 apk
logrotate 3.22.0-r0 apk
mariadb-client 11.4.9-r0 apk
mariadb-common 11.4.9-r0 apk
masterminds/html5 2.10.0 php-composer
memcached 1.6.39-r0 apk
mkfontscale 1.2.3-r1 apk
mockery/mockery 1.6.12 php-composer
monolog/monolog 3.10.0 php-composer
mtdowling/jmespath.php 2.8.0 php-composer
musl 1.2.5-r21 apk
musl-utils 1.2.5-r21 apk
myclabs/deep-copy 1.13.4 php-composer
nano 8.7-r0 apk
ncurses-terminfo-base 6.5_p20251123-r0 apk
nesbot/carbon 3.11.1 php-composer
netcat-openbsd 1.234.1-r0 apk
nette/schema v1.3.4 php-composer
nette/utils v4.1.3 php-composer
nghttp2-libs 1.68.0-r0 apk
nghttp3 1.13.1-r0 apk
nginx 1.28.2-r0 apk
nikic/php-parser v5.7.0 php-composer
nunomaduro/collision v8.9.1 php-composer
nunomaduro/termwind v2.4.0 php-composer
onelogin/php-saml 4.3.1 php-composer
oniguruma 6.9.10-r0 apk
openssl 3.5.5-r0 apk
paragonie/constant_time_encoding v3.1.3 php-composer
paragonie/random_compat v9.99.100 php-composer
pcre2 10.47-r0 apk
phar-io/manifest 2.0.4 php-composer
phar-io/version 3.2.1 php-composer
php85 8.5.2-r0 apk
php85-common 8.5.2-r0 apk
php85-ctype 8.5.2-r0 apk
php85-curl 8.5.2-r0 apk
php85-dom 8.5.2-r0 apk
php85-exif 8.5.2-r0 apk
php85-fileinfo 8.5.2-r0 apk
php85-fpm 8.5.2-r0 apk
php85-gd 8.5.2-r0 apk
php85-iconv 8.5.2-r0 apk
php85-ldap 8.5.2-r0 apk
php85-mbstring 8.5.2-r0 apk
php85-mysqlnd 8.5.2-r0 apk
php85-openssl 8.5.2-r0 apk
php85-pdo 8.5.2-r0 apk
php85-pdo_mysql 8.5.2-r0 apk
php85-pecl-igbinary 3.2.17_rc1-r0 apk
php85-pecl-memcached 3.4.0-r0 apk
php85-pecl-msgpack 3.0.0-r0 apk
php85-phar 8.5.2-r0 apk
php85-session 8.5.2-r0 apk
php85-simplexml 8.5.2-r0 apk
php85-sockets 8.5.2-r0 apk
php85-tokenizer 8.5.2-r0 apk
php85-xml 8.5.2-r0 apk
php85-xmlwriter 8.5.2-r0 apk
php85-zip 8.5.2-r0 apk
phpoption/phpoption 1.9.5 php-composer
phpseclib/phpseclib 3.0.49 php-composer
phpstan/phpstan 2.1.39 php-composer
phpunit/php-code-coverage 11.0.12 php-composer
phpunit/php-file-iterator 5.1.1 php-composer
phpunit/php-invoker 5.0.1 php-composer
phpunit/php-text-template 4.0.1 php-composer
phpunit/php-timer 7.0.1 php-composer
phpunit/phpunit 11.5.55 php-composer
popt 1.19-r4 apk
pragmarx/google2fa v9.0.0 php-composer
predis/predis v3.4.0 php-composer
procps-ng 4.0.5-r0 apk
psr/clock 1.0.0 php-composer
psr/container 2.0.2 php-composer
psr/event-dispatcher 1.0.0 php-composer
psr/http-client 1.0.3 php-composer
psr/http-factory 1.1.0 php-composer
psr/http-message 2.0 php-composer
psr/log 3.0.2 php-composer
psr/simple-cache 3.0.0 php-composer
psy/psysh v0.12.20 php-composer
qt5-qtbase 5.15.10_git20230714-r4 apk
ralouphie/getallheaders 3.0.3 php-composer
ramsey/collection 2.1.1 php-composer
ramsey/uuid 4.9.2 php-composer
readline 8.3.1-r0 apk
robrichards/xmlseclibs 3.1.4 php-composer
sabberworm/php-css-parser v9.1.0 php-composer
scanelf 1.3.8-r2 apk
sebastian/cli-parser 3.0.2 php-composer
sebastian/code-unit 3.0.3 php-composer
sebastian/code-unit-reverse-lookup 4.0.1 php-composer
sebastian/comparator 6.3.3 php-composer
sebastian/complexity 4.0.1 php-composer
sebastian/diff 6.0.2 php-composer
sebastian/environment 7.2.1 php-composer
sebastian/exporter 6.3.2 php-composer
sebastian/global-state 7.0.2 php-composer
sebastian/lines-of-code 3.0.1 php-composer
sebastian/object-enumerator 6.0.1 php-composer
sebastian/object-reflector 4.0.1 php-composer
sebastian/recursion-context 6.0.3 php-composer
sebastian/type 5.1.3 php-composer
sebastian/version 5.0.2 php-composer
shadow 4.18.0-r0 apk
skalibs-libs 2.14.4.0-r0 apk
socialiteproviders/discord 4.2.0 php-composer
socialiteproviders/gitlab 4.1.0 php-composer
socialiteproviders/manager v4.8.1 php-composer
socialiteproviders/microsoft-azure 5.2.0 php-composer
socialiteproviders/okta 4.5.0 php-composer
socialiteproviders/twitch 5.4.0 php-composer
squizlabs/php_codesniffer 4.0.1 php-composer
ssddanbrown/asserthtml v3.1.0 php-composer
ssddanbrown/htmldiff v2.0.0 php-composer
ssl_client 1.37.0-r30 apk
staabm/side-effects-detector 1.0.5 php-composer
symfony/clock v7.4.0 php-composer
symfony/console v7.4.4 php-composer
symfony/css-selector v7.4.0 php-composer
symfony/deprecation-contracts v3.6.0 php-composer
symfony/dom-crawler v7.4.4 php-composer
symfony/error-handler v7.4.4 php-composer
symfony/event-dispatcher v7.4.4 php-composer
symfony/event-dispatcher-contracts v3.6.0 php-composer
symfony/filesystem v7.4.0 php-composer
symfony/finder v7.4.5 php-composer
symfony/http-foundation v7.4.5 php-composer
symfony/http-kernel v7.4.5 php-composer
symfony/mailer v7.4.4 php-composer
symfony/mime v7.4.5 php-composer
symfony/polyfill-ctype v1.33.0 php-composer
symfony/polyfill-intl-grapheme v1.33.0 php-composer
symfony/polyfill-intl-idn v1.33.0 php-composer
symfony/polyfill-intl-normalizer v1.33.0 php-composer
symfony/polyfill-mbstring v1.33.0 php-composer
symfony/polyfill-php80 v1.33.0 php-composer
symfony/polyfill-php83 v1.33.0 php-composer
symfony/polyfill-php84 v1.33.0 php-composer
symfony/polyfill-php85 v1.33.0 php-composer
symfony/polyfill-uuid v1.33.0 php-composer
symfony/process v7.4.5 php-composer
symfony/routing v7.4.4 php-composer
symfony/service-contracts v3.6.1 php-composer
symfony/string v7.4.4 php-composer
symfony/translation v7.4.4 php-composer
symfony/translation-contracts v3.6.1 php-composer
symfony/uid v7.4.4 php-composer
symfony/var-dumper v7.4.4 php-composer
thecodingmachine/safe v3.4.0 php-composer
theseer/tokenizer 1.3.1 php-composer
tijsverkoyen/css-to-inline-styles v2.4.0 php-composer
tzdata 2025c-r0 apk
utmps-libs 0.1.3.1-r0 apk
vlucas/phpdotenv v5.6.3 php-composer
voku/portable-ascii 2.0.3 php-composer
xemlock/htmlpurifier-html5 v0.1.12 php-composer
xz-libs 5.8.2-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r2 apk

View File

@ -3,117 +3,173 @@
# project information
project_name: bookstack
project_url: "https://github.com/BookStackApp/BookStack"
project_logo: "https://s3-us-west-2.amazonaws.com/linuxserver-docs/images/bookstack-logo500x500.png"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bookstack-logo.png"
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Content Management"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease.
Powered by SQL and including a Markdown editor for those who prefer it, BookStack is geared towards making documentation more of a pleasure than a chore.
For more information on BookStack visit their website and check it out: https://www.bookstackapp.com
# 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
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/data", desc: "this will store any uploaded data on the docker host" }
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
param_usage_include_env: true
param_env_vars:
- { env_var: "APP_URL", env_value: "", desc: "for specifying the IP:port or URL your application will be accessed on (ie. `http://192.168.1.1:6875` or `https://bookstack.mydomain.com`"}
- { env_var: "DB_HOST", env_value: "<yourdbhost>", desc: "for specifying the database host" }
- { env_var: "DB_USER", env_value: "<yourdbuser>", desc: "for specifying the database user" }
- { env_var: "DB_PASS", env_value: "<yourdbpass>", desc: "for specifying the database password" }
- { env_var: "DB_DATABASE", env_value: "bookstackapp", desc: "for specifying the database to be used" }
- {env_var: "APP_URL", env_value: "", desc: "The protocol, IP/URL, and port that your application will be accessed on (ie. `http://192.168.1.1:6875` or `https://bookstack.mydomain.com`"}
- {env_var: "APP_KEY", env_value: "", desc: "Session encryption key. You will need to generate this with `docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey`"}
- {env_var: "DB_HOST", env_value: "", desc: "The database instance hostname"}
- {env_var: "DB_PORT", env_value: "3306", desc: "Database port"}
- {env_var: "DB_USERNAME", env_value: "", desc: "Database user"}
- {env_var: "DB_PASSWORD", env_value: "", desc: "Database password (minimum 4 characters & non-alphanumeric passwords must be properly escaped.)"}
- {env_var: "DB_DATABASE", env_value: "", desc: "Database name"}
param_usage_include_ports: true
param_ports:
- { external_port: "6875", internal_port: "80", port_desc: "will map the container's port 80 to port 6875 on the host" }
opt_param_usage_include_env: false
- {external_port: "6875", internal_port: "80", port_desc: "http/s web interface."}
opt_param_usage_include_env: true
opt_param_env_vars:
custom_compose: |
---
version: "2"
services:
bookstack:
image: lscr.io/linuxserver/bookstack
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- APP_URL=
- DB_HOST=bookstack_db
- DB_USER=bookstack
- DB_PASS=<yourdbpass>
- DB_DATABASE=bookstackapp
volumes:
- /path/to/data:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: lscr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=<yourdbpass>
- TZ=Europe/London
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=<yourdbpass>
volumes:
- /path/to/data:/config
restart: unless-stopped
- {env_var: "QUEUE_CONNECTION", env_value: "", desc: "Set to `database` to enable async actions like sending email or triggering webhooks. See [documentation](https://www.bookstackapp.com/docs/admin/email-webhooks/#async-action-handling)."}
readonly_supported: true
readonly_message: |
* `/tmp` must be mounted to tmpfs
# application setup block
app_setup_block_enabled: true
app_setup_block: |
The default username is admin@admin.com with the password of **password**, access the container at http://<host ip>:6875.
The default username is admin@admin.com with the password of **password**, access the container at http://dockerhost:6875.
This application is dependent on a MariaDB database, be it one you already have or a new one. If you do not already have one, we provide an image here https://github.com/linuxserver/docker-mariadb.
This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/.
If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the `APP_URL` environment variable is set to your external domain, or it will not work.
If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the `APP_URL` environment variable is set to your external domain, or it will not work
Documentation for BookStack can be found at https://www.bookstackapp.com/docs/.
Documentation for BookStack can be found at https://www.bookstackapp.com/docs/
### BookStack File & Directory Paths
This container ensures certain BookStack application files & folders, such as user file upload folders, are retained within the `/config` folder so that they are persistent & accessible when the `/config` container path is bound as a volume. There may be cases, when following the BookStack documentation, that you'll need to know how these files and folders are used relative to a non-container BookStack installation.
Below is a mapping of container `/config` paths to those relative within a BookStack install directory:
- **/config container path** => **BookStack relative path**
- `/config/www/.env` => `.env`
- `/config/log/bookstack/laravel.log` => `storage/logs/laravel.log`
- `/config/backups/` => `storage/backups/`
- `/config/www/files/` => `storage/uploads/files/`
- `/config/www/images/` => `storage/uploads/images/`
- `/config/www/themes/` => `themes/`
- `/config/www/uploads/` => `public/uploads/`
### Changing APP_URL
If you change the APP_URL after initial install, you should run the following line from your host terminal to update the database URL entries:
```shell
docker exec -it bookstack php /app/www/artisan bookstack:update-url ${OLD_URL} ${NEW_URL}
```
### Advanced Users (full control over the .env file)
If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation.
When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit.
#### PDF Rendering
[wkhtmltopdf](https://wkhtmltopdf.org/) is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/.
The path to wkhtmltopdf in this image to include in your .env file is `/usr/bin/wkhtmltopdf`.
If you wish to use the extra functionality of BookStack such as email, LDAP and so on you will need to set additional environment variables or make your own .env file with guidance from the BookStack documentation.
The container will copy an exemplary .env file to /config/www/.env on your host system for you to use.
# init diagram
init_diagram: |
"bookstack: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-bookstack-config
init-nginx-end -> init-config
init-os-end -> init-config
init-bookstack-config -> init-config-end
init-config -> init-config-end
init-crontab-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-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-memcached
svc-memcached -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-php-fpm
svc-php-fpm -> legacy-services
init-services -> svc-queue-worker
svc-queue-worker -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.23" <- "baseimage-alpine:3.23"
}
"bookstack:latest" <- Base Images
# changelog
changelogs:
- { date: "11.07.21:", desc: "Rebase to Alpine 3.14." }
- { date: "12.01.21:", desc: "Remove unused requirement, as of release 0.31.0." }
- { date: "17.12.20:", desc: "Make APP_URL var required (upstream changes)." }
- { date: "17.09.20:", desc: "Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default." }
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- { date: "26.07.19:", desc: "Use old version of tidyhtml pending upstream fixes." }
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }
- { date: "14.06.19:", desc: "Add wkhtmltopdf to image for PDF rendering." }
- { date: "20.04.19:", desc: "Rebase to Alpine 3.9, add MySQL init logic." }
- { date: "22.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "20.01.19:", desc: "Added php7-curl"}
- { date: "04.11.18:", desc: "Added php7-ldap"}
- { date: "15.10.18:", desc: "Changed functionality for advanced users"}
- { date: "08.10.18:", desc: "Advanced mode, symlink changes, sed fixing, docs updated, added some composer files"}
- { date: "23.09.28:", desc: "Updates pre-release"}
- { date: "02.07.18:", desc: "Initial Release." }
- {date: "28.12.25:", desc: "Rebase to Alpine 3.23."}
- {date: "05.07.25:", desc: "Rebase to Alpine 3.22."}
- {date: "04.01.25:", desc: "Add php-opcache."}
- {date: "17.12.24:", desc: "Rebase to Alpine 3.21."}
- {date: "11.10.24:", desc: "Default to environment config over .env file config."}
- {date: "06.09.24:", desc: "Add php-exif for reading image EXIF data."}
- {date: "27.05.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- {date: "25.01.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- {date: "31.10.23:", desc: "Further sanitize sed replace."}
- {date: "07.06.23:", desc: "Add mariadb-client for bookstack-system-cli support."}
- {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: "01.03.23:", desc: "Add php iconv."}
- {date: "19.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- {date: "16.01.23:", desc: "Wrap `.env` values in quotes."}
- {date: "05.01.23:", desc: "Fix db password setting (sed escape `&`)."}
- {date: "21.12.22:", desc: "Update db info in .env file when env vars are updated."}
- {date: "10.10.22:", desc: "Remove password escape logic which caused problems for a small subset of users."}
- {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: "14.03.22:", desc: "Add symlinks for theme support."}
- {date: "11.07.21:", desc: "Rebase to Alpine 3.14."}
- {date: "12.01.21:", desc: "Remove unused requirement, as of release 0.31.0."}
- {date: "17.12.20:", desc: "Make APP_URL var required (upstream changes)."}
- {date: "17.09.20:", desc: "Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default."}
- {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
- {date: "26.07.19:", desc: "Use old version of tidyhtml pending upstream fixes."}
- {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
- {date: "14.06.19:", desc: "Add wkhtmltopdf to image for PDF rendering."}
- {date: "20.04.19:", desc: "Rebase to Alpine 3.9, add MySQL init logic."}
- {date: "22.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- {date: "20.01.19:", desc: "Added php7-curl"}
- {date: "04.11.18:", desc: "Added php7-ldap"}
- {date: "15.10.18:", desc: "Changed functionality for advanced users"}
- {date: "08.10.18:", desc: "Advanced mode, symlink changes, sed fixing, docs updated, added some composer files"}
- {date: "23.09.28:", desc: "Updates pre-release"}
- {date: "02.07.18:", desc: "Initial Release."}

9
root/appkey Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
mkdir -p \
/config/www/framework/{cache,sessions,views} \
/config/log/bookstack
touch /config/log/bookstack/laravel.log
php /app/www/artisan key:generate --show --no-ansi

View File

@ -1,39 +0,0 @@
## Version 2018/03/06 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/default
server {
listen 80 default_server;
listen 443 ssl;
root /var/www/html/public;
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;
error_page 599 = @noauth;
location @noauth {
try_files $uri $uri/ /index.php?$args;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}

View File

@ -1,98 +0,0 @@
user abc;
worker_processes 4;
pid /run/nginx.pid;
include /etc/nginx/modules/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
client_max_body_size 0;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /config/log/nginx/access.log;
error_log /config/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /config/nginx/site-confs/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
daemon off;

View File

@ -1,118 +0,0 @@
#!/usr/bin/with-contenv bash
if [ -d /var/www-tmp ]; then
echo "New container detected. Setting up app folder and fixing permissions."
mv /var/www-tmp /var/www
chown -R abc:abc /var/www
fi
# create directory structure
mkdir -p \
/config/www/{uploads,files,images}
# check for .env and copy default if needed
[[ ! -f "/config/www/.env" ]] && \
cp /var/www/html/.env.example /config/www/.env
# check for zero-length .env and alert user if found
[[ ! -s "/config/www/.env" ]] && \
echo "WARNING: zero-length .env file detected. Please delete /config/www/.env and restart the container"
# create symlinks
symlinks=( \
/var/www/html/storage/uploads/files \
/var/www/html/storage/uploads/images \
/var/www/html/public/uploads \
/var/www/html/.env \
/var/www/html/storage/logs/laravel.log
)
for i in "${symlinks[@]}"
do
[[ -e "$i" && ! -L "$i" ]] && rm -rf "$i"
[[ ! -L "$i" ]] && ln -s /config/www/"$(basename "$i")" "$i"
done
# Echo init finish for test runs
if [ -n "${TEST_RUN}" ]; then
echo '[services.d] done.'
fi
# Create API key if needed
if [ ! -f "/config/BOOKSTACK_APP_KEY.txt" ];
then
echo "Generating BookStack app key for first run"
key=$(php /var/www/html/artisan key:generate --show)
echo $key > /config/BOOKSTACK_APP_KEY.txt
echo "App Key set to $key you can modify the file to update /config/BOOKSTACK_APP_KEY.txt"
elif [ -f "/config/BOOKSTACK_APP_KEY.txt" ];
then
echo "App Key found - setting variable for seds"
key=$(cat /config/BOOKSTACK_APP_KEY.txt)
fi
# .env file setup
# check for the default app key or if it has been updated
if grep -Fxq "APP_KEY=SomeRandomString" /config/www/.env || \
! grep -Fxq "APP_KEY=${key}" /config/www/.env; then
sed -i "s#^APP_KEY=.*#APP_KEY=${key}#" /config/www/.env
fi
# check to see if db_user is set, if it is then run seds and if not then leave them
if [ "${DB_USER}" ];
then
echo "Running config - db_user set"
ESCAPED_PASSWORD=$(sed -e 's/[$\/&]/\\&/g' <<< $DB_PASS)
sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /config/www/.env
sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /config/www/.env
sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /config/www/.env
sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${ESCAPED_PASSWORD}/g" /config/www/.env
fi
# set appurl
if [ -z "${APP_URL}" ]; then
EXT_IP=$(curl -s https://icanhazip.com)
APP_URL="http://${EXT_IP}:6875"
echo "**** Docker env var APP_URL is not set, setting it to ${APP_URL} ****"
fi
OLD_URL=$(grep APP_URL /config/www/.env | sed 's|.*APP_URL=||g')
if [ "${APP_URL}" != "${OLD_URL}" ]; then
sed -r "s,([#\s]*)?APP_URL=.*,APP_URL=${APP_URL},g" -i /config/www/.env
echo "**** APP_URL in /config/www/.env is being updated from ${OLD_URL} to ${APP_URL} ****"
if [ "${OLD_URL}" != "http://example.com" ]; then
echo "**** If this is an existing install, you should run the following line from your host terminal to update the database URL entries: ****"
echo "************************************************************************"
echo "docker exec -it bookstack php /var/www/html/artisan bookstack:update-url ${OLD_URL} ${APP_URL}"
echo "************************************************************************"
fi
fi
## Bump php upload max filesize and post max size to 100MB by default
grep -qx '^upload_max_filesize.*$' /config/php/php-local.ini || echo 'upload_max_filesize = 100M' >> /config/php/php-local.ini
grep -qx '^post_max_size.*$' /config/php/php-local.ini || echo 'post_max_size = 100M' >> /config/php/php-local.ini
# check for the mysql endpoint for 30 seconds
END=$((SECONDS+30))
while [ ${SECONDS} -lt ${END} ] && [ -n "${DB_HOST+x}" ]; do
/usr/bin/nc -z ${DB_HOST} 3306 && \
if [ ! -z "$(/usr/bin/nc -w1 ${DB_HOST} 3306)" ]; then
[ ! -z "${RUN}" ] && break
RUN="RAN"
# we sleep here again due to first run init on DB containers
[ ! -f /dbwait.lock ] && sleep 5
else
sleep 1
fi
sleep 1
done
# update database - will set up database if fresh, or, migrate existing
if [ -z "${CI_RUN+x}" ]; then
php /var/www/html/artisan migrate --force
fi
# set permissions
chown -R abc:abc \
/config
# set lockfile to avoid DB waits for this specific container
touch /dbwait.lock

View File

@ -0,0 +1,63 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# create directory structure
mkdir -p \
/config/www/{uploads,files,images,themes} \
/config/www/framework/{cache,sessions,views,purifier} \
/config/backups \
/config/log/bookstack
if [[ ! -f /tmp/dbwait.lock ]];then
rm -rf /config/www/framework/{cache,sessions,views,purifier}/*
fi
# check for .env and copy default if needed
if [[ ! -f "/config/www/.env" ]] || [[ ! -s "/config/www/.env" ]]; then
cp /app/www/.env.example /config/www/.env
fi
# Check for app key
if [[ -z ${APP_KEY} ]]; then
if ! grep -qE "APP_KEY=[0-9A-Za-z:+\/=]{1,}" /config/www/.env 2> /dev/null || grep -qE "APP_KEY=SomeRandomString" /config/www/.env 2> /dev/null; then
echo "The application key is missing, halting init!"
echo "You can generate a key with: docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey"
echo "And apply it to the APP_KEY environment variable."
sleep infinity
fi
fi
## Bump php upload max filesize and post max size to 100MB by default
if ! grep -qx '^upload_max_filesize.*$' /config/php/php-local.ini; then
echo 'upload_max_filesize = 100M' >>/config/php/php-local.ini
fi
if ! grep -qx '^post_max_size.*$' /config/php/php-local.ini; then
echo 'post_max_size = 100M' >>/config/php/php-local.ini
fi
# if DB_PORT is not set
if [[ -z "${DB_PORT}" ]]; then
DB_PORT="3306"
fi
# check for the mysql endpoint
echo "Waiting for DB to be available"
END=$((SECONDS + 30))
while [[ ${SECONDS} -lt ${END} ]] && [[ -n "${DB_HOST+x}" ]]; do
if [[ $(/usr/bin/nc -w1 "${DB_HOST}" "${DB_PORT}" | tr -d '\0') ]]; then
if [[ ! -f /tmp/dbwait.lock ]]; then
sleep 5
fi
touch /tmp/dbwait.lock
break
else
sleep 1
fi
done
# update database - will set up database if fresh, or, migrate existing
php /app/www/artisan migrate --force
# permissions
lsiown -R abc:abc \
/config

View File

@ -0,0 +1 @@
oneshot

View File

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

View File

@ -1,2 +1,4 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec memcached -u abc

View File

@ -0,0 +1 @@
longrun

View File

@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
echo "*** Starting Async Action Queue ***"
exec /usr/bin/php /app/www/artisan queue:work --sleep=3 --tries=1 --max-time=3600

View File

@ -0,0 +1 @@
longrun

View File

@ -1,2 +0,0 @@
#!/usr/bin/with-contenv bash
exec /usr/sbin/php-fpm7 -F

9
root/init-hook Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ -n "${QUEUE_CONNECTION}" ]]; then
touch /etc/s6-overlay/s6-rc.d/user/contents.d/svc-queue-worker
fi
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 /var/www/html/public;"
NEW_ROOT="root /app/www/public;"
if [[ -f "${DEFAULT_CONF}" ]] && grep -q "${OLD_ROOT}" "${DEFAULT_CONF}" 2>/dev/null; then
echo "updating root in ${DEFAULT_CONF}"
sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}"
fi

View File

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