How to Self-Host Kimai (Time Tracking) on Linux (with Monitoring)
Alexander Neitzel

Alexander Neitzel @therealfloatdev

About: Founder & CEO at Garmingo But more importantly 110% Tech Enthusiast

Joined:
Nov 10, 2024

How to Self-Host Kimai (Time Tracking) on Linux (with Monitoring)

Publish Date: May 11
0 0

Kimai is a slick, open-source time tracking tool — great for freelancers, teams, and agencies who want full control and privacy.

In this guide, I’ll show you how to self-host Kimai using Docker on any Linux server (Ubuntu, Debian…), get it up and running in minutes, and make sure it stays online 24/7 with monitoring from Garmingo.

Let’s go 👇


🧰 What You’ll Need

  • A Linux server with Docker + Docker Compose
  • Basic terminal access (SSH)
  • Optional: domain + HTTPS
  • 10 minutes

🚀 Step 1: Create a Project Directory

mkdir kimai && cd kimai
Enter fullscreen mode Exit fullscreen mode

⚙️ Step 2: Create a docker-compose.yml

Paste this into docker-compose.yml:

version: '3.7'

services:
  kimai:
    image: kimai/kimai2:apache
    restart: unless-stopped
    ports:
      - "8001:8001"
    environment:
      - ADMINMAIL=admin@yourdomain.com
      - DATABASE_URL=mysql://kimai:kimai@db/kimai
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: unless-stopped
    environment:
      - MYSQL_DATABASE=kimai
      - MYSQL_USER=kimai
      - MYSQL_PASSWORD=kimai
      - MYSQL_ROOT_PASSWORD=rootpass
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:
Enter fullscreen mode Exit fullscreen mode

🧱 Step 3: Launch Kimai

Run the stack:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Wait a minute, then open:

http://your-server-ip:8001

Login with:

  • Username: admin
  • Password: changeme

Change your password immediately.


🌐 Step 4: Optional – Add Domain + SSL

Point time.yourdomain.com to your server.

Use a reverse proxy like Caddy, Nginx Proxy Manager, or Traefik to:

  • Forward HTTPS requests to port 8001
  • Secure the connection with Let’s Encrypt

🧪 Step 5: Start Tracking Time

Log in → create customers, projects, and time entries.

You can also invite your team and enable timesheets, exports, and invoice generation.


✅ Step 6: Monitor Your Kimai Instance with Garmingo Status

Kimai handles critical workflows — especially for clients, timesheets, and billing.

If it goes offline and you don’t know… you’ve got problems.

Set up Garmingo Status to:

  • Monitor https://time.yourdomain.com or your IP
  • Alert you via Slack, Email, Telegram, Discord, or Webhook
  • Show uptime history & log incidents
  • Share a public or private status page
  • Get monthly uptime reports

🆓 All available on the forever free plan — no credit card needed.

👉 Set up your monitoring now


🧘 TL;DR

  • ✅ Deploy Kimai with Docker
  • 🔐 Secure with domain + HTTPS
  • 🕵️ Track your time
  • 📈 Monitor with Garmingo Status

Time tracking shouldn’t stop when your server crashes.

👉 Monitor your Kimai instance today

Comments 0 total

    Add comment