Deploy Kimai on Ubuntu with Docker — the open-source time tracking tool for freelancers and teams with project management, billable hours, invoicing, and detailed exportable reports.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/kimai/kimai-ubuntu.sh
chmod +x kimai-ubuntu.sh
sudo bash kimai-ubuntu.sh
The script installs Docker, pulls the Kimai and MariaDB images, and starts both containers. Kimai will be available on port 8001 with a MariaDB database for persistent storage of all time entries and project data.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/kimai/kimai-ubuntu.sh
chmod +x kimai-ubuntu.sh
sudo bash kimai-ubuntu.sh
Open your browser and navigate to Kimai. Log in with the admin credentials set during the script installation:
http://<your-server-ip>:8001
Navigate to Administration → Customers to add your clients. Then go to Projects and create projects linked to each customer. Finally, add Activities (task types) like "Development", "Design", or "Consulting" to each project. This three-level hierarchy (Customer → Project → Activity) lets you track time at any granularity you need.
Use the timer on the dashboard to start tracking time instantly — select the project and activity, then click the green play button. Stop the timer when done. Go to Reporting to filter entries by date, user, project, or customer and export PDF or Excel reports for invoicing or management reviews.
| Port | Purpose |
|---|---|
| 8001 | Kimai Web UI |
| 3306 | MariaDB database (internal) |
Kimai is a free, open-source time tracking application for freelancers, agencies, and teams. It provides a full-featured time tracking system with project and customer management, hourly rate configuration, invoice generation, and detailed reporting. Built on the Symfony PHP framework with a clean, responsive web interface, Kimai runs entirely on your own server with no per-user fees and no SaaS subscription required.
Commercial time tracking tools like Harvest, Toggl, and Clockify charge per-user monthly fees that add up quickly for teams. Kimai gives you unlimited users and projects at zero cost beyond your server expenses. It has a professional feature set including invoicing, multi-currency support, LDAP integration, and a REST API — comparable to paid SaaS tools but self-hosted and fully under your control.
Kimai runs on port 8001. Always proxy it through a reverse proxy (Caddy or Nginx) with HTTPS before exposing it externally. The MariaDB database runs on port 3306 within the Docker network — this port must never be accessible externally. Open only ports 80 and 443 on your server firewall and proxy all Kimai traffic through them.
Toggl Track is a polished commercial SaaS time tracker with excellent mobile apps but charges per user. Harvest is another popular commercial option with invoicing features but also charges monthly. Clockify offers a generous free tier as a hosted service but stores data on their servers. Traggo is a lighter open-source alternative. For simple personal tracking, a spreadsheet may suffice.
Don't use Kimai if you need a mobile-first native time tracking app — the mobile web experience is functional but not native. If you only need simple personal time tracking without multi-user or invoicing features, a lighter tool like Traggo or even a spreadsheet may be sufficient. Kimai is also not a full project management tool — use it alongside GitLab or Gitea for complete project tracking.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Kimai is an open-source time tracking application used by freelancers, agencies, and teams to track billable hours by project and client. It provides a timer, project management, exportable reports, and basic invoicing — all self-hosted with no per-user fees.
Yes. Kimai includes an invoicing module that generates invoices based on tracked hours. Create invoice templates customized with your logo, and export invoices as PDF. Invoices are automatically calculated from time entries for a selected customer and date range.
Yes. Kimai has a full role-based access control system. Create accounts for all team members, assign them to projects, set hourly rates per user and project, and control who can see or edit whose time entries.
Kimai offers a one-click start/stop timer in the web interface, manual time entry with start and end times, a quick-entry bulk import form, and a REST API for integration with external tools.
Yes. Kimai's reporting module lets you filter time entries by user, project, customer, activity, date range, and tag. Reports can be exported as PDF, CSV, or Excel spreadsheets. You can create custom report templates for clients or management.
Yes. Kimai has a REST API for integration with project management tools and accounting software. Plugins extend Kimai with integrations for Jira, GitLab, Slack, and more. LDAP and SAML authentication allow single sign-on with existing identity providers.
Kimai uses MySQL or MariaDB. The Docker setup in this tutorial includes a MariaDB container for reliable data storage. Kimai runs on Symfony PHP framework and manages the database schema automatically.
The core Kimai application is completely free and open-source (MIT license). You can self-host it with unlimited users at no cost. There is a Kimai Cloud hosted service with paid plans, and some advanced plugins are available for purchase. The self-hosted version has no feature restrictions.