# Cara Install Kimai Time Tracker Pakai Docker Compose

[![image.png](https://www.32inside.com/uploads/images/gallery/2026-04/scaled-1680-/g63image.png)](https://www.32inside.com/uploads/images/gallery/2026-04/g63image.png)

**Kimai** adalah sebuah perangkat lunak (software) **pelacak waktu (time-tracking)** bersifat sumber terbuka (*open-source*) yang dirancang khusus untuk mencatat durasi kerja dan mengelola lembar waktu (*timesheets*).

Sederhananya, Kimai membantu individu maupun tim untuk memantau berapa banyak waktu yang dihabiskan untuk proyek atau tugas tertentu, yang kemudian dapat digunakan untuk penagihan klien (invoicing) atau analisis produktivitas.

Berikut adalah beberapa fitur dan karakteristik utama Kimai:

#### Fungsi Utama

- **Pencatatan Waktu:** Pengguna bisa memulai dan menghentikan pengatur waktu (*timer*) secara real-time atau memasukkan durasi kerja secara manual.
- **Manajemen Proyek &amp; Pelanggan:** Anda bisa mengelompokkan catatan waktu berdasarkan pelanggan, proyek, dan aktivitas spesifik.
- **Pelaporan (Reporting):** Kimai menyediakan ringkasan data mingguan, bulanan, atau per proyek dalam bentuk grafik dan tabel yang mudah dibaca.
- **Ekspor Data:** Data yang sudah tercatat dapat diekspor ke berbagai format seperti PDF, Excel (XLSX), atau CSV untuk keperluan administrasi atau penggajian.

#### Keunggulan Kimai

- **Gratis &amp; Open Source:** Versi komunitasnya dapat diunduh dan digunakan secara gratis tanpa biaya lisensi.
- **Multi-Bahasa:** Mendukung banyak bahasa, termasuk Bahasa Indonesia.
- **Berbasis Web:** Karena berjalan di browser, Kimai dapat diakses dari perangkat apa saja (komputer, tablet, atau smartphone) selama terhubung ke server.
- **Kustomisasi Tinggi:** Pengembang dapat memodifikasi kode sumbernya atau menambahkan *plugin* sesuai kebutuhan spesifik perusahaan.

#### Siapa yang Menggunakannya?

- **Freelancer:** Untuk melacak jam kerja agar bisa menagih klien dengan akurat.
- **Agensi &amp; Perusahaan:** Untuk memantau anggaran waktu proyek dan produktivitas karyawan.
- **Organisasi Non-profit:** Untuk mendokumentasikan waktu yang dihabiskan pada berbagai program hibah atau donasi.

#### Instalasi :

- Instal Docker [https://blog.32inside.com/books/docker/page/2-instal-docker#bkmrk-instal-docker-dengan](https://blog.32inside.com/books/docker/page/2-instal-docker#bkmrk-instal-docker-dengan)
- File docker 
    - docker-compose.yml 
        - ```yaml
            services:
            
              sqldb:
                image: mysql:8.3
                volumes:
                  - mysql:/var/lib/mysql
                environment:
                  - MYSQL_DATABASE=${DATABASE_NAME}
                  - MYSQL_USER=${DATABASE_USER}
                  - MYSQL_PASSWORD=${DATABASE_PASSWORD}
                  - MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD}
                command: --default-storage-engine innodb
                restart: unless-stopped
                healthcheck:
                  test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost
                  interval: 20s
                  start_period: 10s
                  timeout: 10s
                  retries: 3
            
              kimai:
                image: kimai/kimai2:apache
                volumes:
                  - data:/opt/kimai/var/data
                  - plugins:/opt/kimai/var/plugins
                ports:
                  - 8001:8001
                environment:
                  - ADMINMAIL=${ADMIN_EMAIL}
                  - ADMINPASS=${ADMIN_PASSWORD}
                  - "DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@sqldb/${DATABASE_NAME}?charset=utf8mb4&serverVersion=8.3.0"
                restart: unless-stopped
            
            volumes:
              data:
              mysql:
              plugins:
            ```
    - .env 
        - ```yaml
            DATABASE_NAME=kimai
            DATABASE_USER=kimaiuser
            DATABASE_PASSWORD=kimaipassword
            DATABASE_ROOT_PASSWORD=changemeplease
            ADMIN_EMAIL=admin@kimai.local
            ADMIN_PASSWORD=changemeplease
            ```
    - Start docker compose 
        - ```bash
            docker compose up -d
            ```
    - Check status docker 
        - ```bash
            docker ps
            ```
            
            
            - ```bash
                ubuntu@kimai:~$ docker ps
                CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS                 PORTS                                                 NAMES
                33c2b751e87c   kimai/kimai2:apache   "docker-php-entrypoi…"   9 hours ago   Up 9 hours (healthy)   80/tcp, 0.0.0.0:8001->8001/tcp, [::]:8001->8001/tcp   kimai-kimai-1
                92a587788f50   mysql:8.3             "docker-entrypoint.s…"   9 hours ago   Up 9 hours (healthy)   3306/tcp, 33060/tcp                                   kimai-sqldb-1
                ubuntu@kimai:~$
                ```
    - Akses kimai menggunakan browser port 8001, username : <admin@kimai.local>, password : changemeplease 
        - [![image.png](https://www.32inside.com/uploads/images/gallery/2026-04/scaled-1680-/Mnyimage.png)](https://www.32inside.com/uploads/images/gallery/2026-04/Mnyimage.png)
        - [![image.png](https://www.32inside.com/uploads/images/gallery/2026-04/scaled-1680-/kmjimage.png)](https://www.32inside.com/uploads/images/gallery/2026-04/kmjimage.png)
        - [![image.png](https://www.32inside.com/uploads/images/gallery/2026-04/scaled-1680-/Ssoimage.png)](https://www.32inside.com/uploads/images/gallery/2026-04/Ssoimage.png)