Releases: developeregrem/fewohbee
Release list
4.9.0
I'm happy to release a new version of FewohBee! 🎉 It contains a lot of smaller improvements and bugfixes, and also some enhancements from user contributions. So please read it carefully till the end 😉
🏗️ Infrastructure improvements
- fewohbee-dockerized was updated. Please update to the latest version via
git pulland, if successful, run./update-docker.sh.- Moved the php and nginx images into the fewohbee main repo to improve maintainability. The old repos fewohbee-phpfpm and fewohbee-web will no longer be maintained.
- The new images make it much easier if you want to switch, e.g. to debug mode for testing or development. Please take a look at the new version pinning documentation. For your prod environments there is nothing to change — you can still stick to
FEWOHBEE_VERSION=latestin your.envfile to get the latest stable release. - Uploaded images are now stored in dedicated named volumes (uploads-export, uploads-roomcat).
- A migration container runs on startup to move existing uploaded images to their new place.
- After upgrading to the latest version, please check that your uploaded images (room categories and in templates) still work. ✅
- For a complete list of changes see: developeregrem/fewohbee-dockerized#8
- Some improvements were made to allow FewohBee to run smoothly in stateless environments. So if you want to run the application e.g. in a Kubernetes cluster — it's ready now! ☸️ For example:
- You can now store uploaded files either locally or using any S3-compatible storage. The new env variable
STORAGE_ADAPTERdefaults tolocal. If you don't need it, there is nothing to do on your side. - See the documentation here if you need it.
- You can now store uploaded files either locally or using any S3-compatible storage. The new env variable
📊 Statistics & Operations
- Added a guest category overview to the tourism statistics (required in CH) as well as a new operations report.
- A new general operations report example template is available here to generate a PDF for reporting lodging taxes, in case you need to report your tourism tax / city tax numbers.
- A specific template for CH 🇨🇭 can be found here.
- You can copy the content of the example templates and paste it into a new template of type operations report. Afterwards you can use it under Operations → Reports.
- The reservation status was added to the filter list in Operations → Reports.
- Added month/year navigation buttons to all statistics pages for quicker browsing.
💶 Prices
- You can now assign an extra/misc price (e.g. breakfast, cleaning, …) to a specific room category. If assigned, the price is valid for a reservation that fits the room category. This can be used in the online booking when you have, for example, different cleaning fees for different room categories.
- The prices table now shows the number of persons as a dedicated column.
✉️ Mails
- Moved the mail settings from the
.envfile into the UI. You can reach them via Settings → General. - Your old configuration is migrated automatically, but please double-check that everything is working. 🔍
- You can verify that your migrated settings work by simply clicking the check button in the new mail settings area.
🛏️ Room Categories
- Bugfix: images couldn't be uploaded.
- Added an option to define the minimum number of full-paying guests. It controls, per room category, from which occupancy onwards price modifiers per guest category (for example child discounts) take effect.
🌐 Online Booking
- Moved the
FRAME_ANCESTORSconfiguration from the.envfile into the UI under Settings → Online Booking. - Please double-check that the setting still fits your needs and that the migration was successful.
- Fixed a bug where the online booking was not working properly when the iframe was embedded on a third-party domain.
- Added a fallback message that is shown if an error occurs repeatedly during a booking.
🐛 Other fixes
- Bugfix: an apartment number that was too long triggered a critical PHP error.
🙌 Changes by contributors
- Quickly access yearly view for a given room by @domi4484 in #220
- feat: add hidden property to templates with UI toggle and translations by @MeisterAdebar in #235 (see #198)
- Kleine Verbesserungen: A5-PDF, neue Workflow-Bedingung, Newsletter-Kategorie & Statistik-Navigation by @MeisterAdebar in #236
- feat: show reservation history on customer detail view by @MeisterAdebar in #241
- feat: add A5 and A6 page format support for PDF templates by @MeisterAdebar in #243
- feat: add button to adopt last invoice id suggestion by @MeisterAdebar in #242
Thanks a lot for your contributions! ❤️
Phew, that was a lot 😅 — and there are even more smaller changes under the hood.
Full Changelog: v4.8.0...v4.9.0
And last but not least, say hello to the new FewohBee logo, which now greets you on the login screen! 👋

v4.8.0
Im happy to release the next version with some important enhancements and new fetures based on you feedback und PRs!
🏦 Bank statement import
Pull your monthly bank statement directly into the booking journal — matching invoices and rules do the heavy lifting.
- CSV import with configurable per-bank profiles (delimiter, encoding, column mapping, date format)
- ISO 20022 camt.052 / camt.053 XML support — multi-file upload, only booked entries imported
- Automatic invoice matching from one to three example invoice numbers (no regex required)
- detect invoice numbers in statement remarks and map them to your existing invoices
- Import rules with conditions, actions, tax rate, and priority — save directly from the preview
- Receipt number field per line — manual entry or auto-extracted via marker / regex; carried into all splits and exported to DATEV document field 1
- Split transactions into multiple postings with fixed amount, percentage, or remainder
- Duplicate protection via fingerprinting — re-upload the same file safely
- Inline editing, bulk actions, status filters in the preview
- Many thanks to @MeisterAdebar for his invaluable support during the implementation and testing of this feature ❤️
📖 Check out the updated Bank import documentation
👥 Guest categories
Replace the single person count with structured guest categories — adults, children, infants, or custom groups.
- New entity GuestCategory with statistical group (adult / child / infant / other), age range, occupancy flag, and subsidiary scoping
- Guest counts per reservation as a category-keyed map; total persons derived automatically
- “At least one adult” rule enforced everywhere, with a per-booking override option in the backend
- Price modifiers per category — surcharge, percentage discount, flat rate, or free — applied automatically to per-person room prices
- Online booking redesigned: separate adult / children counts with per-child age input, mapped to the right category automatically
- Default categories seeded on first start; existing reservations migrated automatically
📖 Check the Guest categories documentation
🏖️ Tourist tax / accommodation levies
New domain for tourist tax, city tax, accommodation levies, and the Swiss accommodation duty — versionable per subsidiary, with its own accounting.
- Two calculation modes: flat per person/night, percentage of room price per night
- Net / gross base selectable for percentage modes
- Adults-only filter for levies that exempt children
- Per-category rates with optional report groups for official statements
- Dedicated tax rate and revenue account per levy — clean DATEV separation
- Multiple parallel levies per subsidiary (e.g. tourist tax + city tax)
- Waive option per reservation for exempt stays
- Conditional UI — fields and invoice blocks only appear where a levy is active
- Separate invoice block with transparent per-category breakdown
- if you want to split the output in your invoice templates (extra prices and tax rates as separate blocks) take a look at the updated example template for invoices or the invoice template documentation.
📖 Also check Accommodation levies documentation
further changes
- allow same-day booking in online booking
- you can set an extra price in price settings as mandatory for online booking (e.g. cleaning fees)
- fix description auto-fill on initial invoice modal load in #222 thx @strobelm
- Basic logging: log entity create/update/delete events in #224 thx @strobelm ❤️
- added two new health enpoints for monitoring purpose
- one general endpoint under /health/live which simply returns ok if the application is running
- and another one under /health/ready which also checks db and redis cache (also check how to protect the endpoint here)
Full Changelog: 4.7.0...v4.8.0
4.7.0
What's Changed
Packages for prices
- under Settings -> Prices you can configure a price as package now (for misc. prices only)
- this is important if you need to split a price into different tax rates
- When an invoice is created, the package price is automatically split into its individual components and shown as multiple separate invoice positions – one line per component, each with the correct tax rate.
- The split happens automatically in the background. In the online booking form guests still see a single price; the breakdown only appears on the invoice.
- you can also define booking accounts for a price now (optional). The defined account will be used in booking journal entris created by workflows
Booking Journal
- updated presets
- When an entry is created automatically from an invoice (e.g. via a workflow on payment), the system generates one booking line per combination of service type, tax rate and revenue account . New: A distinction is made between:
- Main services – all room-related positions
- Miscellaneous services – extras such as breakfast, final cleaning, etc.
- Under Accounting Journal → Settings , two optional labels can be configured – separately for main services (room/main positions) and miscellaneous services . The label is combined with the account name and used as the remark text (e.g. “Overnight stay – Revenues 7 %” ).
Workflows
-
added a new trigger: ReservationStatus changed
-
and further minor changes
Full Changelog: 4.6.2...4.7.0
4.6.0
What's Changed
New Workflow-Engine
- it is possible to automate internal processes of the application now by using the new Workflows in the Settings area.
- workflows are based on a trigger (e.g. new invoice is created), one or more conditions (e.g. invoice status is) and actions (e.g. sent a mail)
- you can choose on a predefined set on triggers/conditions/actions
- check out the documentation for Workflows
- with the new engine two new Template Types will be introduced which can be selected in the workflow actions
- Mail templates for invoices - use it the same way you would create an invoice PDF file
- Mail template for general purpose (like PDF file template)
- Please create a ticket if your workflow cannot be configured with the existing settings
Goodby CashJournal ... Hello BookingJournal
- the cash journal page where you can book your cash balance is moved to a new and enhanced booking journal
- with the booking journal (or "Buchungsstapel") you can manage all your income and expenses and not only cash balance.
- a dedicated cash journal view is still available to allow a familiar handling for users who just want to use a cash journal. Nevertheless, it is handled as a booking journal internally.
- The purpose of the journal is to allow users to compile their own income and expenses and then submit this batch of entries directly to their tax advisor at the end. Using the built-in DATEV export feature, the tax advisor can import this data directly into DATEV (or other applications that support DATEV data import).
- the journal settings page allows you to setup predefined accounts and tax rates (D,AT,CH)
- use the booking journal in combination with the new workflow engine to automate bookings
- e.g. create a workflow that automatically adds paid invoices to the journal
- check out the Booking Journal documentation
Further changes
- if you want to embed your public booking page into your site and booking page and your site have different domains, the iframe will be blocked by the browser. In order to allow it you need to configure the new .env attribute
FRAME_ANCESTORS. See documentation here. - added a new amenity for room categories: washing machine
- added buyer vatID for eInvoice export. you can configure it in the invoice or at the customer object (address fields) to reuse it it invoices
- upgrade to Symfony 8
- ... and of course a lot of smaller improvements and bugfixes :)
Full Changelog: 4.5.0...4.6.0
4.5.0
This release brings a lot of cool enhancements for the new online booking feature 😎
What's changed
Online Booking
- you can add room category restrictions for online bookings now
- define min nights to stay (separate options for weekdays and weekend possible)
- how many rooms are allowed per booking
- define the min occupancy for a room (e.g. don't allow single occupancy for a double room)
- add specific periods to define min nights
- guests can choose extra prices like breakfast during online booking
- you can enable/disable an extra with the new toggle in the price category settings page ("Available for online booking")
- and for room prices: Make sure that price categories for all possible occupancies (e.g. 1 person, 2 persons, etc.) exist for each room category. Only occupancy levels with a matching price category will be shown as bookable to guests.
- you can give your room categories a nice look for online bookings (Settings -> Room Categories -> Edit)
- added amenities where you can tell the guest about the room equipment
- upload pictures of your rooms which will be displayed during online booking
- please update fewohbee-dockerized as well as the web container needs to respect a new upload limit
- Check out the updated documentation for Online-Booking and Room Categories
Tourism Statistic
- added a toggle to switch between country/state view as it is e.g. required in AT to report state infos as well
- in order to see state infos you need to fill the database table for city lookup for all countries you need the state informations (see City Lookup) and of course you need to maintain the postal code and country fields of your guests
Templates
- it's now possible to include your templates in other templates. This is usefull e.g. when you create a template for header/footer and want to reuse the snippet in different templates.
- See documentation for Templates
... and further minor changes and bugfixes.
Full Changelog: 4.4.0...4.5.0
4.4.0
What's Changed
Online Booking
- introducing a first implementation of an online booking feature (MVP)
- if your instance is reachable over the internet you can add an iframe to your website which allows direct online booking
- check the documentation here
General Settings
- new settings page was added which lets you configure general applications settings
- you can specify the default currency of your application which will be used e.g. in online booking or invoice preview
- attention: customer salutations and invoice file name configuration moved from
.envfile to this settings page. Please copy your old values to the new location! the env file values will be no longer used and can be removed. - you can enable/disable mail notification on new online booking entries and calendar imports here
fewohbee-dockerized
- the dockerized version of FewohBee was refactored to be more platform indipendent
- now it runs probably everwhere where docker itself can run (e.g. Linux, Windows, ...)
- optimised the setup to run in Portainer, see documentation
- added a configuration to run without ssl or behind a reverse proxy
- DB Backups: if you were using the automated backup script, backups are now stored in a named volume. If you want to access it please refer to the documentation here.
- setup still contains usefull helper scripts for linux like update-docker.sh
- update-docker.sh
- the file was updated to add new env variables automatically
- if you've created your own cron job to call the file please add
--cronoption
Further changes
- allow one-day bookings #173
- you can select multiple rows in the reservation overview to add new grouped reservations
- further smaller changes and bugfixes
Full Changelog: 4.3.1...4.4.0
4.3.0
What's Changed
I'm happy to release a new version of FewohBee which includes a lot of cool new stuff :)
Operations / Housekeeping / Reports
A complete new area was added called Operations. These pages are mainly intended for daily use and provide a shortcut view and actions for common tasks. You will find it in the top menu bar Operations.
The new module consist of three subpages:
- Frontdesk Checklist
Here you will find your arrivals, departures, inhouse reservations on a daily base with common shortcut actions like printing the registration form, changing status, invoices, and so on. - Housekeeping
Here you can choose between daily and weekly view to get a better overview of your houskeeping tasks like cleaning the rooms. You can set a status for the room, assign the task to user of the application or leave a comment. You can also export the list to CSV. - Reports
This section is based on templates you create (see new template types below). Inside the templates you have access to all reservations and statistic elements the application provides. To get an impression please have a look at the example templates (see below)
A new role "Operations" was added to access this area. Please make sure your users have the appropriated roles assigned in Settings -> Users.
New Template Types
Two new template types are added:
- TEMPLATE_REGISTRATION_PDF
This PDF type is used to create a registration form which is commonly required to hand in to the guests. This form can be used to complete the guest information in the application afterwards. - TEMPLATE_OPERATIONS_PDF
This PDF type is used inside the new Operations Report area (see above).
Example templates for all types can be found here.
If you navigate to Settings -> Templates you will be asked to import the new default templates for the two new types.
You are free to change them afterwards to your needs!
New Template System
Besides the two new template types from above I'm happy to introduce the new template system which is completely rewritten and shall increase useability and extensability. The intention is to make it easier for users to create simple templates but also allows advanced users to create more complex templates easier.
When you navigate to Settings -> Templates you will find a new experince to add and edit templates.
- switched from TinyMCE editor to Tiptap editor which allows better extension handling for our use cases.
- new handling of snippets/pre-defined placeholders
- added preview for temples while you are editing them!
- new cool code mode with code highlighting, beautifier, autocomplete for placeholders
- new technical documentation for advanced users can be found here. The Non-technical documentation was also updated.
further changes
- statistics can be filterd by reservation status now
- electronical PDF invoices (X-Rechnung/ZUGFeERD) can be added as attachment in a mail conversation now.
- invoice file names of a generated PDF file can be configured now (see #159). In order to use it you need to add a new property to your
.envfile as descriped here. - added two new options for prices (Settings -> Prices) see #167
- Decide whether the room or miscellaneous price is based on the number of persons or per room/night.
- you can specify for miscellaneous prices whether they are active for new reservations by default or not (in the create reservation dialog).
- added a new system reservation status for cancelled / no-show reservations. This status cannot be deleted or edited by the user.
- reservations with this new status will be not shown in the reservation overview table. You can toggle visibility in the table seetings (gear icon).
Please report any issues you find or things that could be improved!
Full Changelog: 4.2.0...4.3.0
4.2.0
What's Changed
- added a new download option for invoices which allows downloading a combined PDF + XML (electronic invoice), furthermore user can choose whether to use ZUGFeRD EN16931 (Comfort) or XRechnung profile (#157)
- added iCal import for apartments; it is now possible to import calendars from different booking portals including conflict handling. See documentation here. (#163)
- if you use fewohbee-dockerized make sure to pull the latest version as the updated dockerized version includes a new cron container which triggers the import once a hour
cd /opt/fewohbee-dockerized git pull ./update-docker.sh- if you do not use the dockerized version it is recommended to create your own cronjob which calls
php bin/console calendar:import:sync
- changed default display name for a reservation. if a company is provided by the guest info the company name will be used otherwise lastname, firstname #154
- reverted some statistic pages back to use live data instead of using a snapshot
- fixes #160
- fixes pw forgotten not working properly
Full Changelog: 4.1.1...4.2.0
4.1.0
What's Changed
- added new statistic page for monthly tourism statistics #119
- added dark mode for the current theme (can be changed in Profile) #121
- list of templates in Settings -> Templates is sorted alphabetically
- bugfix for #151
- bugfix for #153
- some further minor bugfixes
Full Changelog: 4.0.1...4.1.0