[ ########################### # Application configuration ########################### # The public name of the application 'app.title' => 'LibreBooking', # Enable or disable debug mode for the application # if enabled it will enable 'display_errors' and 'display_startup_errors' (true/false) 'app.debug' => false, # Administrator email address 'admin.email' => 'admin@example.com', # Display name used for outgoing admin emails 'admin.email.name' => 'LB Administrator', # Company name to show in the page header 'company.name' => '', # URL to the company's website 'company.url' => '', ####################### # Language and Timezone ####################### # Default timezone. # Options: Look up here https://php.net/manual/en/timezones.php 'default.timezone' => 'Europe/London', # Default language. # Options: Find your language in the lang directory 'default.language' => 'en_us', # Restrict which languages appear in the language selector. # Comma-separated list of language codes (e.g. 'en_us,fr_fr,de_de'). # Languages appear in the selector in the order listed. # Leave empty to show all supported languages. # Language codes must match those defined in lang/AvailableLanguages.php. # If the value of `default.language` is not included in this list, the # application will fall back to 'en_us' and log an error. 'enabled.languages' => '', ########## # Frontend ########## # Public URL to the Web directory of this instance # This is the URL that appears when you are logging in # Leave http: or https: off to auto-detect 'script.url' => '', # Password to access installation wizard under Web/install/ # Leave empty to disable the installation wizard 'install.password' => '', # Enable template caching. Recommended for production. (true/false) 'cache.templates' => true, # Enable use of bundled/self-hosted frontend assets (JavaScript, CSS, fonts) (true/false) 'use.local.js.libs' => true, # Session inactivity timeout in minutes 'inactivity.timeout' => 30, # Home URL linked to application logo in header 'home.url' => '', # URL to redirect users after logout 'logout.url' => '', # Default homepage to use when new users register # Options: 1 = Dashboard, 2 = Schedule, 3 = My Calendar, 4 = Resource Calendar 'default.homepage' => 1, # Default number of items per page in listings # Use a positive integer. -1 is not supported for performance reasons 'default.page.size' => 50, # Optional path to a custom CSS file 'css.extension.file' => '', # Name of the CSS theme to use # Options: default, dimgray, dark_red, dark_green, french_blue, cake_blue, orange 'css.theme' => 'default', # Display format when showing user names 'name.format' => '{first} {last}', ####################### # Analytics Integration ####################### # Google Analytics tracking ID (e.g., UA-XXXXXXX or G-XXXXXXXX) 'google.analytics.tracking.id' => '', ################### # Slack Integration ################### # Slack webhook token for sending notifications 'slack.token' => '', ####### # Pages ####### 'pages' => [ # Enable or disable the configuration page in the admin panel (true/false) 'configuration.enabled' => true, ], ########## # Database ########## 'database' => [ # Database configuration. Only MySQL is supported 'type' => 'mysql', # Database host address or IP. 'hostspec' => '127.0.0.1', # Database name 'name' => 'librebooking', # Database username with access to the librebooking database 'user' => 'lb_user', # Database password for the user 'password' => 'password', ], ########################### # Email Sending (PHPMailer) ########################### 'phpmailer' => [ # Mailer type: # Options: mail, smtp or sendmail 'mailer' => 'smtp', # SMTP host address or IP 'smtp.host' => '', # SMTP port 'smtp.port' => 25, # SMTP encryption # Options: tls, ssl 'smtp.secure' => '', # SMTP Auto TLS, if an unencrypted SMTP connection should attempt to use STARTTLS (true/false) 'smtp.autotls' => true, # Enable SMTP authentication (true/false) 'smtp.auth' => true, # SMTP username 'smtp.username' => '', # SMTP password 'smtp.password' => '', # Path to sendmail binary 'sendmail.path' => '/usr/sbin/sendmail', # Enable SMTP debug output (true/false) 'smtp.debug' => false, ], ####### # Email ####### 'email' => [ # Enable or disable email notifications (true/false) 'enabled' => true, # Enable custom email templates (true/false) 'enforce.custom.template' => false, # Default email address to use for outgoing emails 'default.from.address' => 'no-reply@example.com', # Default name to use for outgoing emails 'default.from.name' => 'LB', ], ######### # Logging ######### 'logging' => [ # Directory where logs are stored # Write permission is required 'folder' => '/var/log/librebooking/log', # Logging level: none, debug, error # Options: none, error, debug 'level' => 'error', # Enable SQL logging (true/false) 'sql' => false, ], ######### # Uploads ######### 'uploads' => [ # Full or relative path to where images will be stored 'image.upload.directory' => 'Web/uploads/images', # full or relative path to show uploaded images from 'image.upload.url' => 'uploads/images', # Enable reservation attachments (true/false) 'reservation.attachments.enabled' => false, # Full or relative path to where reservation attachments will be stored 'reservation.attachment.path' => 'uploads/reservation', # File extensions allowed for reservation attachments 'reservation.attachment.extensions' => 'csv,doc,docx,gif,jpeg,jpg,pdf,png,ppt,pptx,txt,xls,xlsx', ], ######################################## # Notification Settings for Reservations ######################################## 'reservation.notify' => [ # Send notification to application administrators when a reservation is # created (true/false) 'application.admin.add' => false, # Send notification to application administrators when a reservation is # updated (true/false) 'application.admin.update' => false, # Send notification to application administrators when a reservation is # deleted (true/false) 'application.admin.delete' => false, # Send notification to application administrators when a reservation requires # approval (true/false) 'application.admin.approval' => false, # Send notification to group administrators when a reservation is created (true/false) 'group.admin.add' => false, # Send notification to group administrators when a reservation is updated (true/false) 'group.admin.update' => false, # Send notification to group administrators when a reservation is deleted (true/false) 'group.admin.delete' => false, # Send notification to group administrators when a reservation requires # approval (true/false) 'group.admin.approval' => false, # Send notification to resource administrators when a reservation is created (true/false) 'resource.admin.add' => false, # Send notification to resource administrators when a reservation is updated (true/false) 'resource.admin.update' => false, # Send notification to resource administrators when a reservation is deleted (true/false) 'resource.admin.delete' => false, # Send notification to resource administrators when a reservation requires # approval (true/false) 'resource.admin.approval' => false, ], ############################### # Schedule Display and Behavior ############################### 'schedule' => [ # Automatically scroll to today's date on load (true/false) 'auto.scroll.today' => true, # Show week numbers in the calendar view (true/false) 'show.week.numbers' => false, # Hide periods that are blocked or unavailable (true/false) 'hide.blocked.periods' => false, # Display resources the user cannot access (true/false) 'show.inaccessible.resources' => true, # Format string for reservation labels (use placeholders like {name}, {title}) # Available properties are: {name}, {title}, {description}, {email}, {phone}, {organization}, {position}, {startdate}, {enddate} {resourcename} {participants} {invitees} {reservationAttributes}. # Custom attributes can be added using att with the attribute id. For example {att1} 'reservation.label' => '{name}', # Use different colors for each user's reservations (true/false) 'use.per.user.colors' => false, # Number of minutes to highlight updated reservations 'update.highlight.minutes' => 0, # Enable faster loading for reservation data (may reduce detail) (true/false) 'fast.reservation.load' => false, # Load simplified mobile views on small devices (true/false) 'load.mobile.views' => true, ], ############## # Reservations ############## 'reservation' => [ # Disable reservation participation/invitations and hide participant/invitee # lists in the reservation UI (true/false) 'prevent.participation' => false, # Disable recurring reservations (true/false) 'prevent.recurrence' => false, # Allow non-registered users (guests) to participate in reservations (true/false) 'allow.guest.participation' => false, # Enable a waitlist for fully booked reservations (true/false) 'allow.wait.list' => false, # Restrict start times (e.g., 'future', 'none', 'current') # Note: In the standard reservation create/update flow, exemptions from this constraint apply only in specific cases: # - Application admins are always exempt. # - Group admins are exempt only when acting as admin for the reservation user. # - Resource and schedule admins are exempt only when they administer all resources in the reservation. # Options: none, future, current 'start.time.constraint' => 'future', # Require approval when an existing reservation is updated (true/false) 'updates.require.approval' => false, # Require a title for all reservations (true/false) 'title.required' => false, # Require a description for all reservations (true/false) 'description.required' => false, # Number of minutes before start when check-in is allowed 'checkin.minutes.prior' => 5, # Restrict check-in functionality to administrators only (true/false) 'checkin.admin.only' => false, # Restrict check-out functionality to administrators only (true/false) 'checkout.admin.only' => false, # Enable reminder notifications for upcoming reservations (true/false) 'reminders.enabled' => false, # Default reminder time before reservation start (e.g., '15 minutes', '1 hours', '1 days') 'default.start.reminder' => '', # Default reminder time before reservation end (e.g., '15 minutes', '1 hours', '1 days') 'default.end.reminder' => '', ], ############################# # Reservation Label Templates ############################# 'reservation.labels' => [ # ICS calendar summary text for all reservations # Available properties are: {name}, {title}, {description}, {email}, {phone}, {organization}, {position}, {startdate}, {enddate} {resourcename} {participants} {invitees} {reservationAttributes}. # Custom attributes can be added using att with the attribute id. For example {att1} 'ics.summary' => '{title}', # ICS calendar summary text for a user's reservations 'ics.my.summary' => '{title}', # RSS feed description template for reservations (HTML allowed) 'rss.description' => '