Forgot password?
⚠ Invalid credentials. Please try again.
Dashboard
?
👤 My Shift Today
📅 Today's Shifts — All
⚠ Unassigned Alerts
🏢 Department Overview
DepartmentBuildingEmployeesThis Month ShiftsStatus
Loading...
Loading...
📍 Building:
With employees · excludes holidays & leave
📅 Mon → Fri
📅 Mon → Sat
📅 Mon → Sun
🗓️ Roaster Management
📍 Building:
With employees · excludes holidays & leave
📅 Mon → Fri
📅 Mon → Sat
📅 Mon → Sun
📋
Loading roster...
⏰ Shift Types
NameCodeStartEndDurationApplies To DaysTypeColorActions
👥 Users & Roles
NameUsernameRoleDepartmentBuildingSub DeptWork DaysStatusActions
🏢 Departments
NameCodeBuildingColorStatusActions
🔀 Sub Departments
NameCodeParent DepartmentColorStatusActions
🏗️ Buildings
NameAddressCityStatusActions
🏖️ Public Holidays
DateNameDayApplies ToActions
🌴 Applied Leaves
EmployeeTypeFromToStatusActions
🗓️ Saturday Off
EmployeeDateNotesActions
🌴 Leave Cover Swaps
Rollback handled from Leave List
Pending Swapper Accepted Manager Approved
ProgressRequesterTheir ShiftSwap WithTarget ShiftNotesActions
🔄 Direct Swap Requests
Pending Swapper Accepted Manager Approved
ProgressRequesterTheir ShiftSwap WithTarget ShiftNotesActions
🏖️ Public Holidays
DateHolidayDayTypeApplies To
🔄 My Sunday Shifts
DateShiftStatus
🗓️ My Saturday Offs
DateNotes
🏖️ Public Holidays
DateHolidayType
🌴 My Leave History
TypeFromToDaysStatus
🔄 My Swap Requests
DateShiftWithStatus
🔄 Sunday Duty
Sunday Duty Pool — All Buildings (only employees with "Can work Sundays" enabled in their profile)
🏖️ Public Holiday Duty
PH Duty Pool — All Buildings (employees with "Can work Public Holidays" enabled)
📌 Custom Rules
🏢 Organization
⚙️ Roaster Preferences
Mandatory Shift Alerts
Highlight unassigned dates in red
Email Notifications
Send shift reminders via email
Auto-Assign Mode
Automatically fill open shifts
🔐 My Security
Email OTP on Login
Send a one-time code to your email each time you log in
Authenticator App (TOTP)
Use Google Authenticator or similar app for login
📧 Email Configuration (SMTP)
Use SSL/TLS
Enable for port 465
🔔 Email Notification Preferences
Choose which events trigger email notifications
🌐 Global MFA Enforcement
Force all employees to use MFA when logging in
Enforce Email OTP for All
Every user must verify via email OTP on each login — overrides individual settings
Enforce Authenticator App for All
Every user must have TOTP authenticator set up — overrides individual settings
⚠️ Enabling these will affect all users on next login. Users without MFA set up will be prompted to configure it.
📋 Audit Log
TimeUserActionEntityDetailsIP
📧 Roaster Emails
Scheduled & manual roster emails sent to all employees
🗓️ Weekly Full Roaster Email
Disabled
Send the full next-week roster to all employees every week
📅 Daily Roaster Emails
E.g. "Every Friday → send Saturday roster", "Every Saturday → send Sunday roster"
🏖️ Public Holiday Roaster Alert
Disabled
Send the holiday roaster to all employees N days before each public holiday
📬 Send Log
Click Refresh to load send history.
🔧 Backup Configuration
Auto Backup
Automatically create backups
📦 Create Backup

Create a full snapshot of all DutyFlow data (users, roster, leaves, swaps, settings).

Local backups stored in: /opt/duty-roaster/backups/
📤 Restore from File
⚠️ Restoring will overwrite all current data. A safety backup is automatically created before restore.
🕐 Backup History
FilenameDateTypeSizeActions
Click a day to assign shifts
Week
Actions:
📋 Clipboard ready
📅
Select a day above