All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Accessibility statement URL setting for the admin UI and footer (#2873, #2874)
- Greenlight v3 import command (#2664, #2665)
- Greenlight v2 import command now supports importing room presentations (#2879, #2880)
- BBB API URL is now automatically normalized to include a trailing
/when adding or editing a server (#2912, #2913)
- Missing aria-label for recording edit button (#2906, #2911)
- Greenlight v2 imported room settings not applied due to disabled expert mode (#2665)
- Missing aria-labels for running meetings table header icons (#2905, #2910)
v4.13.0 - 2026-02-23
- Rate limiting to prevent Room-ID enumeration attacks (#2518)
- File downloads blocked in some browsers due to restrictions on opening new windows without user interaction (#1409, #2726)
- Room start failed with a 404 error when an uploaded file was missing from storage (#2726)
- Low color contrast in room utilization statistic chart (#2854, #2855)
- Missing localized aria-labels for some UI components (#2856, #2857)
v4.12.0 - 2026-02-09
- Arabic locale (#2798)
- Pulse Dashboard not loading (#2809)
v4.11.0 - 2026-02-04
- Configurable hashing algorithm for BBB API signatures (#2765, #2766)
X-Robots-Tag: noindexheader for all routes, excluding the landing page (#2770, #2789)X-Robots-Tag: nofollowheader for all routes (#2772, #2789)
- External authentication routes behavior for authenticated users (#2751, #2752)
- Bump redis version in docker compose files to redis 8 (#2767)
- Docs: Bumped the recommended PostgreSQL version to v18 (#2769)
- robots.txt file (#2789)
- Icon alignment inside room files tab (#2660, #2728)
- Race condition during room start (#2742)
- Remove unnecessary
Content-Typeheader from GET requests to the BigBlueButton API (#2774, #2775)
v4.10.0 - 2026-01-12
- Tooltip for the room info button (#2576)
- Buttons to only copy room link and room access code in room share popover (#1419, #2325)
- Auto-reload of rooms now disabled for guests without access (#2588)
- API request method from GET to POST to panic a server (d9ab9bb)
v4.9.0 - 2025-12-15
- Sun & moon icon in the menu bar (#2575)
- Hover style of buttons in room cards (#2577)
- URL for loading BBB recording player resources (#2616)
v4.8.0 - 2025-10-27
- Route-specific CSS classes to frontend pages (#2496, #2497)
- Security header X-XSS-Protection (#2519)
- Security header Referrer-Policy (#2519)
- Docs: HTTP Strict Transport Security (HSTS) recommendations (#2519)
- Virus scan results to metrics (#2304)
- Admin option to upload a custom CSS file (#2496, #2553, #2554)
- OpenID Connect authentication (#300, #2281)
- UX: Placeholder in room search box (#2383, #2449)
- Upgraded to Tailwind CSS v4 and migrated styles from SASS to plain CSS (#2477)
- PHP.ini defaults to align with OWASP recommendations (#2519)
- Security header X-Frame-Options value to DENY (#2519)
- Authenticator label texts and term in external authentication documentation (#2551)
- Negative floating point number in room expire email (#2476, #2480)
- Infinite loading when navigating back to rooms from BBB due to bfcache (#2313, #2319)
- Broken dark mode after using room utilisation statistic dialog (#2478, #2479)
- BBB waiting room integration tests (#2517)
- Regenerate session after password change (#2519)
- Removed unused CORS header (#2519)
- Removed PHP version header (#2519)
v4.7.1 - 2025-09-10
- Value range and randomness of access code generation (#2433)
- Support for legacy 6-digit access codes imported from Greenlight v2 (#2433)
v4.7.0 - 2025-07-21
- Show meeting ended reason (#2223)
- Show BBB join errors (#2223)
- Pass color-scheme preference to BigBlueButton (#2153, #2154)
- Metrics endpoint (
/metrics) (#2165) - Virus Scanning using ClamAV for all file uploads (#77, #1133)
- Logout session_expired warning message style (68abce8)
- Show unavailable room types in create room dialog (#2265, #2279)
- Show unavailable room types in change room type dialog (#2265, #2279)
- Infinite loading when navigating back after logout redirect due to bfcache (#2282)
v4.6.1 - 2025-06-16
- Allow global streaming join parameters to be empty (#2222)
v4.6.0 - 2025-06-12
- User pictures to the admin user list (#2131)
- Last login datetime to the database (#2150)
- Last login datetime to the admin user list (#2132, #2150)
- Custom join parameters in room type settings (#2099, #2151)
- Container restart (#2134)
v4.5.0 - 2025-05-02
- Environment variable
MAIL_AUTO_TLSto disable automatic TLS for SMTP servers with STARTTLS support (#2033) - Environment variable
MAIL_VERIFY_PEERto disable TLS Peer Verification for SMTP(S) (#2033) - Environment variable
MAIL_SCHEMEto set a specific mail protocolsmtporsmtps(#2033) - Right-to-left (RTL) locale support (#2065)
- Translation to locale selector (#2079)
- Transition and animation for dark mode toggle (#2082)
- Logo for dark mode in BBB (#1399)
- Livestreaming BigBlueButton meetings to an RTMP endpoint via the BBB-Streaming-Server (#1697)
- Persian/Farsi locale
- Sync profile image from LDAP (#1994, #1997)
- Running BBB playback player build script in BusyBox (#2053)
- Environment variable
MAIL_ENCRYPTION, useMAIL_SCHEMEinstead (#2033)
v4.4.0 - 2025-04-07
- Bump base PHP image to 8.4 (#1937)
- Hide locale select in main nav if only one locale is enabled (#1920)
- Improve accessibility for room type filter on the room overview page (#1988)
- Improve accessibility for room type replacement in the room type delete dialog (#1988)
- Logo url in emails for logos with absolute path (#1900)
- Logo height and width in emails (#1900)
- Download files with special characters in the filename (#1960)
- Close join/start dialog before joining the BBB meeting (#1940)
- Allow removing English from the list of enabled locales (#1919, #1920)
- Action column in admin UI too small with only one action in some locales (#2015)
- Action column in admin UI is shown even if no action is available due to permissions (#2015)
- Action column in admin UI user list no always shown (#2015)
v4.3.1 - 2025-02-17
v4.3.0 - 2025-02-03
- Missing loading retry button on room types overview page (#1588)
- Reload button for replacement room type in delete dialog on room types overview page (#1588)
- Permission restrictions to prevent non-superusers from editing and deleting superusers (#1651)
- Permission restrictions to prevent non-superusers from assigning the superuser role (#1651)
- Environment variable for configuring restricted permissions that cannot be assigned to non-superuser roles (#1651)
- Display raw permission names in the admin interface (#1651)
- Visual tests with Happo.io (#1600)
- Artisan command for provisioning via JSON file (#1636, #1678)
- Frontend tests for Footer (#1150, #1844)
- Frontend tests for Banner (#1150, #1844)
- Frontend tests for Forgot Password, Password Reset, Verify Email pages (#1150, #1844)
- Frontend tests for Admin Index page (#1150, #1844)
- Frontend tests for Admin Settings page (#1150, #1844)
- Frontend tests for Admin Users page (#1150, #1844)
- Frontend tests for Admin Roles page (#1150, #1844)
- Frontend tests for Admin Room Types page (#1150, #1844)
- Frontend tests for Admin Servers page (#1150, #1844)
- Frontend tests for Admin Server Pools page (#1150, #1844)
- Frontend tests for Meetings Index page (#1150, #1844)
- Real-time input validation on create superuser command (#1651)
- Error handling in room statistics (#1535, #1600)
- Error handling in room attendance (#1535, #1600)
- Close multiselect dropdowns on selection (#1588)
- Permissions loading behaviour on view/edit page of roles (#1588)
- Improve frontend tests for login page (#1794)
- Access code input type on room settings section to hide browser arrow buttons (#1827, #1829)
- Improve current Frontend tests (#1150, #1844)
- Bumped BBB Recording Player to 5.2.1 (#1855)
- Search not disabled during loading on the overview pages for roles, room types, servers and server pools (#1675, #1588)
- Overlays not shown after loading error on view/edit pages of servers and server pools (#1677, #1588)
- Dialog buttons not disabled correctly during actions on the overview/view/edit pages for roles, room types, servers and server pools (#1711, #1588)
- Dialogs being closable during loading on the overview/view/edit pages for roles, room types, servers and server pools (#1588)
- Form validation error messages on view/edit pages room types, server pools and application settings (#1588)
- Error handling on the overview page of users (#1588)
- Stale error handling on the view/edit page of sever pools (#1588)
- 404 error handling on the room types delete dialog (#1588)
- Set empty BBB logo image url (#1751, #1588)
- 401 error handling on view/edit/create page of users (#1588)
- Overlay reload buttons on view/edit/create page of roles, room types, servers and server pools (#1588)
- Wrong error message shown for 422 errors when verifying email (#1744, #1758)
- Broken banner link style 'warning' (#1759, #1760)
- Inconsistent select/multiselect loading states (#1772)
- Input fields not disabled correctly on login page (#1791, #1794)
- Style of 'clear' button of the room replacement selector in the 'Delete room type' dialog (#1784, #1787)
- Inconsistent result ordering in tables on equal primary sorting criteria (#1601, #1795)
- Missing form validation feedback for password fields on login page (#1801)
- Missing form validation feedback on forgot password page (#1802)
- Room limit radio on edit roles page not reset on stale error (#1824, #1825)
v4.2.0 - 2025-01-06
- Configurable hook script for recording synchronization (#1484, #1604)
- Rate limiting for room access code authentication (#669, #1617)
- Logging for room authentication (#669, #1617)
- Command to test email configuration (#530, #1618)
- The recording import task is now prevented from running until the previous run has finished (#1484, #1604)
- Adjust frontend tests to better check the resetting of form errors (#1679, #1702)
- Error handling in create room dialog (#1704)
- Reload room type list on form validation error in new room dialog (#1523, #1616)
- Room overview buttons not disabled during loading (#1595)
- Form errors not always cleared correctly (#1679, #1702)
- Unnecessary loading of server pools in the room types read-only view (#1721, #1724)
- Unnecessary loading of server in the server pools read-only view (#1721, #1724)
- Missing permissions inheritance for user index view (#1724)
- Wrong permission check when showing create new server pool button (#1724)
- Styling issue in the role selection dropdown on the user index view (#1724)
- Broken permission checks when loading the user view/edit page in the admin UI (#1724)
- xdebug always enabled ([#1727])
- Unnecessary permission inheritance for the roomTypes.view and serverPools.view permissions (#1721, #1724)
v4.1.2 - 2024-11-22
- Logging for server health changes (#1608)
- Logging for detached meeting handling (#1608)
- Logging for meeting not running on BBB server (#1608)
- Meeting retention cleanup not working with server retention set to unlimited (878ce6b)
- Meeting marked as ended prematurely during starting phase of a new meeting (#1607, #1608)
v4.1.1 - 2024-11-20
- Frontend tests for Room Recordings Tab (#1150, #1549)
- Frontend tests for Room Browser Notifications (#1150, #1549)
- Frontend tests for Room History Tab (#1150, #1549)
- Frontend tests for Room Personalized Links / Room Tokens Tab (#1150, #1549)
- Responsive chart sizing (#1536, #1537)
- Wrong setting values shown for expert settings in room type change confirmation modal when expert mode is disabled (#1495)
- Wrong icon and tooltip for participant count (68c72ce)
- Missing info toast after browser notification has been granted on request (0b92d86)
- Wrong file size computation in admin UI (8b1e5c6)
- Line-break in App Banner and room terms of use (345de45)
- Background color of dropdown button options in dark mode for the room description editor (#1493, #1565)
- Responsive style of dropdown button for the room description editor (#1565)
- Responsive layout of toolbar for the room description editor (#1565)
- Missing error handling for 404 errors for personalized links actions (#1559, #1561)
- Error and loading state of the RoomTypeChangeButton dialog (#1548)
v4.1.0 - 2024-10-17
- Admin option to disable welcome page (#1420, #1441)
- Admin option to customize terms of use for file download or disable it (#1435, #1440)
- Frontend tests for Login, Logout, Locales (#1150, #1483)
- Frontend tests for Room Index page (#1150, #1483)
- Frontend tests for Room page (#1150, #1483)
- Frontend tests for Room Members Tab (#1150, #722,#1483)
- Frontend tests for Room Settings Tab (#1150, #721, #1483)
- Frontend tests for Room Files Tab (#1150, #1483)
- Frontend tests for Room Description Tab (#1150, #1483)
- Frontend tests for User Profile (#1150, #1483)
- Improve autocomplete in user profile (#1452)
- Disable file upload UI elements during upload (#1449)
- Improve accessibility for icon only buttons (#1489)
- Loading overlay not covering whole page during scrolling (#1442)
- Inconsistent error handling in dialogs (#1444)
- Missing "user not found" error message after the "too many results" error in room transfer (#1477)
- Wrong and missing ids and labels in forms (#1452)
- Lazy load profile tabs to prevent form id issues (#1452)
- Missing nocanon apache reverse proxy keyword in docs (e4830ba)
- Text truncate in data tables (#1489)
- Accessibility issues with wrong html header element order (#1489)
v4.0.0 - 2024-09-26
- Short description for rooms (#373)
- Room favorites (#373)
- Show current room name in the page title (#649, #650)
- Show amount of users in a room (#681)
- Env option PHP_FPM_PM_MAX_CHILDREN, NGINX_WORKER_PROCESSES, NGINX_WORKER_CONNECTIONS and NGINX_WORKER_RLIMIT_NOFILE to customize nginx and php-fpm (#792)
- Breaking: Redis docker service as default caching and queuing driver (#617)
- Laravel Pulse for system monitoring (#617)
- Laravel Horizon for queue management (#617)
- PILOS CLI for common tasks (#617)
- Docker container healthcheck (#617)
- Documentation for scaling PILOS (#617)
- Transfer room ownership (#532, #686)
- Search for roles, server and serverpools (#883)
- Room type restrictions (max. participants, max. duration, require access code, allow record attendance) (#883)
- Limit results in user search (#883)
- Allow changing the default admin role (#883)
- Option to drain a server (#911)
- Show server connection status in server list (#911)
- End detached meetings after server failure (#911)
- Config options for server health
BBB_SERVER_ONLINE_THRESHOLDandBBB_SERVER_OFFLINE_THRESHOLD(#911, #1076) - Config option for server load calculation
BBB_LOAD_MIN_USER_COUNTandBBB_LOAD_MIN_USER_INTERVAL(#956) - Plugin to customize the server load calculation (#956)
- Save selected room tab in url to preserve selection on reload (#977)
- Default settings in the room type for the room settings and option to enforce these settings in the room type (#75, #695, #1059)
- Room type description (#75, #695, #1059)
- Sorting the room history list (#1004)
- Search and filter options to list of room members (#1005)
- Search and filter options to list of room files (#1006)
- Search and filter options to list of personalized room links (#1007)
- Recording management (#31, #896)
- Content-Security-Policy (#315,#1090)
- Custom create parameters in room type settings (#574)
- Setting to change the lifetime of toast messages (#1102)
- User search can find user by email (#1120)
- Cypress system tests (#1166)
- Dark mode (#1204)
- Theming options in the UI (#1204)
- Refactor user interface for room search and home page (#372, #373)
- Refactor user interface room details (#681, #724)
- Breaking: Split container into separate containers for the application, cronjobs and queue workers (#617)
- PHP 8.3 docker base image using alpine (#704, #735, #792)
- Renamed artisan command
users:create:admintousers:create:superuser(#883) - Refactored frontend from Vue2 to Vue3, replacing BootstrapVue with PrimeVue v4 (#883, #1204)
- Upgrade to Laravel 11 (#927)
- Refactor server health, making it more robust against temporary connection issues (#911)
- Calculation of server load uses the participants amount, during starting phase using a configurable min. amount (#956)
- Layout of room features tab view (#967)
- Breaking: Time periods for room token expiration (#968)
- Layout of the room history list (#1004)
- Layout of the room members list (#1005)
- Layout of the room files list (#1006)
- Layout of the personalized room links list (#1007)
- Bumped docker compose mariadb version to 11 (#1080)
- Breaking: Global application settings storage (#985, #989)
- Breaking: The learning dashboard is no longer disabled and the meeting layout is no longer always "custom". These settings can be set with create-api-parameters in the room type settings. (#574)
- Cypress tests for basic frontend features (#760, #1126)
- Environment variable for BigBlueButton Test-Server in integration tests (#1159)
- Pagination size for rooms (#1204)
- Landing page layout (#1216, #1332)
- Documentation for running PILOS without docker (#617)
- Max. participants and max. duration from room settings (#883)
- Global attendance logging setting (#905)
- Theming options in .env and sass files (#1204)
v3.0.3 - 2024-05-02
- Error starting meeting with files on a scalelite server (#1045)
- Bump Dependencies
v3.0.2 - 2024-03-28
- Bump Dependencies
v3.0.1 - 2024-01-09
- Docker compose volume mapping framework folder
v3.0.0 - 2023-12-19
- Migration from Vue 2 due to EOL to Vue 3 with @vue/compat (#743)
- Disable CI frontend tests (incompatible with Vue 3) (#743)
You can find the changelog for older versions there here