Getting Started
Installation
Set up Who's OOO on your server using Docker or deploy to fortrabbit
Deploy on fortrabbit (recommended)
The easiest way to run Who's OOO in production is on fortrabbit — a PHP hosting platform purpose-built for Symfony apps. No Docker required.
- Create a fortrabbit App — use the minimal stack configuration (€4.5/month) when selecting components in the app creation wizard
- Install the fortrabbit GitHub app on your GitHub account
- Connect your GitHub repository to the fortrabbit App — you can select an existing repo or create a new one during app setup
- Map your deployment branch (e.g.
main) to the fortrabbit environment - Configure your
.envvariables in the fortrabbit Dashboard - Deploy by pushing to your mapped branch — fortrabbit deploys automatically on each
git push, or you can trigger deployments manually through the Dashboard
fortrabbit's GitHub integration handles deployment pipelines with Composer and Node.js, intelligent caching for fast successive deployments, and comprehensive settings for deployment strategy, include/exclude patterns, and source directory configuration. We run our own Who's OOO instance on fortrabbit.
Docker Compose (self-hosted)
If you prefer to manage your own infrastructure, Who's OOO ships as a Docker Compose stack.
Prerequisites
You only need three tools installed on your machine:
| Tool | Version |
|---|---|
| Docker | 20+ |
| Docker Compose | 2+ |
| Git | any |
No host PHP, MySQL, Node, or Composer required — everything runs inside containers.
Clone and Start
git clone https://github.com/igornast/who-is-out-of-office.git
cd who-is-out-of-office
just start
Four services will start:
| Service | Port | Description |
|---|---|---|
| nginx | 80 | Web server |
| php | — | PHP-FPM with Xdebug |
| db | 3306 | MySQL 8.4 |
| mailpit | 8025 | Local email catcher |
On first boot the PHP container automatically installs Composer dependencies, waits for the database, runs migrations, and loads demo fixtures. Watch the container logs until you see "Starting PHP-FPM" — the app is then ready.
Log In
Open http://localhost/app in your browser. You'll see the login page.
The login page at /app
The fixtures create three accounts so you can test every role:
| Role | Password | |
|---|---|---|
| Admin | admin@ooo.com | 123 |
| Manager | manager@ooo.com | 123 |
| User | user@ooo.com | 123 |
Dashboard Overview
After logging in you land on the dashboard. What you see depends on your role:
- Admin — full organization view: leave balance stats, all pending requests, who's out today, upcoming absences, birthdays, and work anniversaries.
- Manager — same sections, scoped to your direct reports.
- User — your personal leave balance, who's out today and this week, your upcoming absences, and organization-wide birthdays and work anniversaries.
The sidebar gives access to leave requests, the team calendar, your profile, and (for admins) organization settings.
The admin dashboard with all sections visible
Local Email with Mailpit
The development environment includes Mailpit, a local email catcher. Every email the app sends (invitations, leave request notifications) is captured here instead of being delivered.
Open http://localhost:8025 to view caught emails.
Mailpit catches all emails sent in development
Tip: No SMTP configuration needed for local development — Mailpit is pre-configured in the Docker setup.