2 categories = ["Releases"]
4 title = "BookStack Release v23.02"
5 date = 2023-02-26T11:00:00Z
7 image = "/images/blog-cover-images/cow-aj-wallace.jpg"
8 slug = "bookstack-release-v23-02"
12 BookStack v23.02 is here, acting primarily as a maintenance release to
13 upgrade the underlying framework while optimizing things and making
14 a few other additions.
16 * [Update instructions](https://www.bookstackapp.com/docs/admin/updates)
17 * [GitHub release page](https://github.com/BookStackApp/BookStack/releases/tag/v23.02)
21 - **PHP Version Requirement Change** - The minimum supported PHP version has changed from PHP 7.4 to PHP 8.0.2 in this release. Please see the [v23.02 version-specific update instructions](/docs/admin/updates/#updating-to-v2302-or-higher) for guidance on updating PHP.
22 - **Logical Theme System Event Change** - The `commonmark_environment_configure` event argument and return types have changed. Please [see the event definition](https://github.com/BookStackApp/BookStack/blob/b88b1bef2c0cf74627c5122b656dfabc2d5f23ee/app/Theming/ThemeEvents.php#L63-L71) to understand the new types if using this logical theme system event.
28 The main task of this release was to upgrade the core framework of BookStack
29 from Laravel 8 to Laravel 9, allowing us to keep on supported libraries.
30 While not providing any user-visible features, this provides some benefits
31 on the development side of things while bumping the minimum PHP version
32 supported to PHP 8.0.2, providing us new language features to play with.
34 ### Roles API Endpoints
36 This release extends the REST API with some new endpoints for roles.
37 This adds list, create, read, update & delete endpoints allowing
38 integration and automation of role management where desired, working
39 in support with the existing user API endpoints.
41 
44 ### Shelf Book Sort Enhancements
46 The shelf edit view has received more attention to generally improve
47 the user experience of managing books on the shelf, with the primary
48 aim of making the interface usable via keyboard & screen-reader,
49 much like the book sort additions in the last release.
51 
53 Also added to the view is a new dropdown menu containing quick
54 sort actions so you can quickly sort by common categories such
55 as name, created date or updated date, without needing to drag
56 & reorder each item manually.
58 ### Sendmail Command Configuration
60 We've always supported the sending of email via `sendmail` where
61 preferred, but the exact command used has been hardcoded
62 to `/usr/sbin/sendmail -bs`. In some environments a different command
63 could be desired, so this can now be configured like so:
66 MAIL_SENDMAIL_COMMAND="/my/path/to/sendmail -bs"
69 [Sendmail configuration documentation](/docs/admin/email-webhooks/#sendmail).
71 ### System Performance Improvements
73 Attention has been put on performance in a few key areas
74 where things were reported to be slow or inefficient in certain scenarios:
76 - Saving page content, especially on first save with a lot of content,
77 can now be much faster as some inefficiencies in how some parsing operations
79 - Significantly increasing WYSIWYG page editor lag, when page length increases,
80 has been significantly reduced.
81 - App setting loading is now done in batch to reduce latency caused
82 previously by per-setting-cache usage.
83 - An extra index has been added to the `pages` table to improve loading of
84 recently updated pages.
86 Overall, these changes should help to keep the system feeling fast and responsive.
88 ### Improved Favicon Handling
90 In the last feature release we introduced the ability to set an app icon
91 and, while this was used in the vast majority of scenarios, there
92 could be certain edge-cases you'd still see the default BookStack favicon.
94 To help with this, BookStack will now also generate a `favicon.ico` file
95 (if file permissions allow) using your custom supplied icon file.
97 
101 Once again a big thanks to our brilliant translators that help keep
102 the language text of BookStack up-to-date. All those listed
103 below have contributed translations since the last feature release:
105 - Ole Aldric (Swoy) - *Norwegian Bokmal*
106 - VIET NAM VPS (vietnamvps) - *Vietnamese*
107 - Eduardo Castanho (EduardoCastanho) - *Portuguese*
108 - toras9000 - *Japanese*
109 - scureza - *Italian*
110 - Statium - *Russian*
111 - 10935336 - *Chinese Simplified*
113 - Indrek Haav (IndrekHaav) - *Estonian*
114 - Jan Mitrof (jan.kachlik) - *Czech*
117 - Éric Gaspar (erga) - *French*
118 - Gábor Marton (dodver) - *Hungarian*
119 - MichelSchoon85 - *Dutch*
120 - Andrii Bodnar (andrii-bodnar) - *Ukrainian*
123 ### Customization Hacks
125 Although not part of this release, during the last month I deployed the new [/hacks](/hacks) part of the site
126 where you can find different kinds of unsupported customizations that can be applied to BookStack.
128 You can [find more information in this blogpost](/blog/hacks-on-the-site/).
130 ### LinuxServer Docker Guide & YouTube Monetization
132 Another thing I've worked on in the past month is a video guide to common management operations
133 when running BookStack in a docker based setup using a [linuxserver.io docker container](https://docs.linuxserver.io/images/docker-bookstack) setup. This covers updating, backing-up, restoring, running comments and other bits.
134 I've been wanting to make this for a while since I'm often supporting users that have this setup so now I'll
135 be able to point to the video to save time in writing out detailed guidance.
139 Also on the YouTube side of things, I've now met the threshold to become a "YouTube Partner" so I can now
140 earn from my videos, which I've enabled to act as an additional (yet minimal) passive income avenue
141 to support work on BookStack. This looks like it'd maybe provide about £20 per month right now, but every little helps
142 and this should slowly increase as the channel gets more subscribers.
143 I have only enabled skippable ads though to keep interruption minimal.
147 The roles API addition in this release was a bit of a prerequisite for
148 adding permission API endpoints, so I'll likely look to spend some
149 time further fleshing out the API.
151 I'd also like to spend some time making the install & update process
152 streamlined with some scripts, which I've wanted to do for a while
153 but have been split between approaches, but I think it's time to
154 just proceed with a pragmatic approach.
156 At a higher level, I need to start thinking about what the next
157 major feature will be on our roadmap, so may begin some
158 implementation proposal discussions.
161 ### Full List of Changes
163 **Released in v23.02**
165 * Added user roles API endpoints. ([#4051](https://github.com/BookStackApp/BookStack/pull/4051), [#4034](https://github.com/BookStackApp/BookStack/issues/4034))
166 * Added configuration option for the sendmail command. ([#4001](https://github.com/BookStackApp/BookStack/issues/4001))
167 * Added sort actions and accessible controls to the shelf book management interface. ([#4049](https://github.com/BookStackApp/BookStack/pull/4049), [#4031](https://github.com/BookStackApp/BookStack/issues/4031), [#2050](https://github.com/BookStackApp/BookStack/issues/2050))
168 * Updated framework to Laravel 9. ([#4021](https://github.com/BookStackApp/BookStack/pull/4021), [#3123](https://github.com/BookStackApp/BookStack/issues/3123))
169 * Updated project minimum supported PHP version from 7.4 to 8.0.2. ([#4029](https://github.com/BookStackApp/BookStack/issues/4029))
170 * Updated the URL length limit for link attachments to 2k characters. ([#4044](https://github.com/BookStackApp/BookStack/issues/4044))
171 * Updated app icon handling to generate favicon.ico file where possible. ([#4032](https://github.com/BookStackApp/BookStack/pull/4032))
172 * Updated setting loading to be more efficient. ([#4062](https://github.com/BookStackApp/BookStack/pull/4062))
173 * Updated test handling with cleaner centralized filed/image handling. ([#3995](https://github.com/BookStackApp/BookStack/issues/3995))
174 * Updated translations with latest Crowdin changes. ([#4025](https://github.com/BookStackApp/BookStack/pull/4025))
175 * Fixed issue where uploaded images would not show in the gallery for draft pages. ([#4028](https://github.com/BookStackApp/BookStack/issues/4028))
176 * Fixed issue with increasing WYSIWYG editor lag as pages grow. ([#3981](https://github.com/BookStackApp/BookStack/issues/3981))
177 * Fixed potential pluralization issues in some languages. ([#4040](https://github.com/BookStackApp/BookStack/issues/4040))
178 * Fixed slow response time when saving page due to URL parsing and handling. ([#3932](https://github.com/BookStackApp/BookStack/issues/3932))
180 **Released in v23.01.1**
182 * Updated pdf library to address vulnerability. ([#4010](https://github.com/BookStackApp/BookStack/pull/4010))
183 * Updated translations with latest Crowdin changes. ([#4008](https://github.com/BookStackApp/BookStack/pull/4008))
184 * Fixed missing default 180px icon. ([#4006](https://github.com/BookStackApp/BookStack/issues/4006))
188 <span style="font-size: 0.8em;opacity:0.9;">Header Image Credits: <span>Photo by <a href="https://unsplash.com/@alejandrowallace?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">AJ Wallace</a> on <a href="https://unsplash.com/photos/1H64_-WVjWs?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></span></span>