At the end of the month, the client asks where the hours on the invoice went. Some of the work is in your calendar, some is in tasks, while the brief consultations exist only in your memory. You need a single place where you can track time and prepare a clear summary. Kimai is an open source time tracking tool for projects that you can run on Saplo as an alternative to Toggl Track or Harvest. Below, you'll go from installing it from the App catalog to creating your first client report.
Why Kimai Instead of Toggl or Harvest
A self-hosted Kimai installation means you manage team accounts, projects, and data access yourself. With Saplo, you get a ready-made setup, so you don't have to start by manually installing a web server and database.
Kimai lets you track time with a timer, assign work to clients and projects, and prepare timesheets. The core application is open source, and the installation supports multiple users without licensing fees for additional accounts. Add-ons may have separate terms and pricing. You can find a feature overview and the differences between the vendor-hosted service and a self-hosted installation on the official Kimai website.
For a freelancer, the benefit is a more streamlined billing process. For an agency, it also means being able to check how much time bug fixes, meetings, and project maintenance actually take. However, simply deploying the application won't replace a shared rule: everyone records their time regularly and describes what the work involved.
Kimai hosting requirements on Saplo
The Kimai setup in the Saplo App catalog specifies a minimum of 1024 MB RAM and 3 GB of disk space. This is the minimum installation requirement, not a guarantee of performance for any number of users. If other apps are already running on your Box, also account for their resource usage and leave some headroom for day-to-day work.
Before installing, prepare:
- an active Box with sufficient resources,
- the app name and a Domain or subdomain available in the panel,
- SFTP access to the app files, which is needed to retrieve the initial login data.
The setup uses Docker and a MySQL database prepared by the platform. The installer connects the app to the database and creates an administrator Account. You do not need to configure the MySQL connection yourself.
See the current offer and deployment details on the Kimai page on Saplo. The hosting cost depends on the selected Box, while additional resources or paid extensions must be considered separately.
Step-by-step installation
- Log in to the Saplo panel and open the App catalog. Search for Kimai.
- Start the installation, give the application a name, and select a Box with sufficient free resources. Choose the URL you want to use for time tracking.
- Confirm the form. The recipe will download the Kimai image, connect it to the MySQL database, and launch the application. The first startup includes database setup, so wait for the installation to finish in the panel.
- Connect to the Box via SFTP using the access details in the Saplo panel. In the
/srv/apps/<app-name>/application directory, find theKIMAI-SETUP.txtfile. It contains the application URL, the administrator's email address, and the generated password. - Open the application URL over HTTPS and log in using the details from this file. The administrator account is created during installation, so you do not create it through the public registration form.
- After logging in for the first time, change the administrator password. Treat the file containing your access details like a password: do not send it to clients or paste it into support tickets.
If you cannot see the file with login details or the application page does not respond, check the installation status in the panel and contact Saplo support. Do not start another installation just to regain access to the original one.
Your first customer, project, and time entry
Start with one real project. For example, an agency supporting an online store might use this structure:
| Element | Example | Purpose |
|---|---|---|
| Customer | Client's store | Groups projects for a single company |
| Project | Store maintenance | Separates a specific scope of work |
| Activity | Fixes, consultations, testing | Describes the type of work performed |
| Entry description | Improving the contact form | Explains a specific time entry |
Create a customer, assign a project, and then set up the activities you actually use. Do not start with dozens of categories. A few clear names will help your team record hours consistently. The data structure is explained in the Kimai customer documentation.
Choose a project and activity, start the timer, and when you finish the task, stop it and add a description. If you forget to start the timer, you can add the entry manually, provided your account settings and permissions allow it. Also check the time zone before your team starts recording work.
Separate billable time from internal work. An organizational meeting and the completion of a requested fix should not always appear on the same client statement. Timer handling, entry editing, and marking time for billing are described in the timesheet guide.
Client time report
At the end of the billing period, select the client, project and date range. Review the entries before exporting: clarify vague descriptions, check for timers left running by mistake and make sure the report covers the correct period.
Example workflow for monthly store support:
- Set the range from the first to the last day of the month and select the store maintenance project.
- Check which entries should be included in the invoice.
- Export the summary, for example to PDF for the client or CSV for further processing.
- Compare the total hours with the agreed scope of work before sending the report.
Kimai supports export to PDF, CSV and XLSX, among other formats. Access to team data depends on the user's permissions. The details of filters and formats are described in the export documentation.
Kimai for a team
Create a separate account for each person. The administrator should manage the application, while day-to-day work should be done using accounts with appropriately assigned permissions. With multiple teams, assign clients and projects to the right groups instead of sharing everything with everyone. The visibility rules are described in the Kimai team documentation.
Also establish a simple naming convention. “Work on the website” tells the person approving the invoice very little. “Form test after the update and phone validation fix” lets you link time to an outcome. It is worth reviewing the first week of entries together before you start using reports for billing.
Switching from Toggl or Harvest
Before switching tools, document what you need: timers, client reports, rates, integrations, or a specific way to approve hours. Test this workflow on one project in Kimai. Do not assume that every feature and add-on in your current service has an exact equivalent.
A practical way to switch is to close the current period in the old tool, retain historical exports, and start a new period in Kimai. If you want to transfer your history, first verify field compatibility and test the available import tool on a small sample. Installing Kimai from the Saplo App catalog does not automatically transfer data from Toggl or Harvest.
Frequently asked questions
Does Kimai require SSH?
You do not need SSH to install it from the App catalog or use it in your browser every day. You can find the initial login details in KIMAI-SETUP.txt via SFTP. Advanced administration may require additional access or technical support.
Do I pay for every Kimai user?
The self-hosted Kimai core does not charge a license fee for each additional account. You pay for hosting, while any paid add-ons have their own terms. Make sure the number of active users matches the resources available in the installation.
Does the database run in the same container as the application?
The Saplo recipe connects Kimai to a database in the platform's shared MySQL service. It does not run a separate MySQL container alongside the application. When planning a backup, include both the database and the application files rather than assuming that the Kimai directory itself contains all the data.
Does exporting a report replace a backup?
No. A timesheet report is for billing, not for restoring accounts, settings, and the application's complete history. Check which backups are available in your plan and how to restore your data before relying on Kimai for your team's daily work.
If you want to track not only working time but also the equipment your team uses for work, see how to keep an IT asset register in Snipe-IT with an equipment checkout history and alerts about expiring warranties.
Where to start?
Explore Kimai hosting on Saplo, choose the Box that suits your workload, and launch the application from the App catalog. Add one client, one project, and a few time entries. Once you have prepared your first accurate report, apply the same workflow to the remaining projects.
- #Kimai
- #Time tracking
- #Guides
- #Self-hosted
