Kimai Docker#

Time tracking for project-driven teams

Demo#

Docker#

docker run -d \
  --name=kimai \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e DATABASE_URL=mysql://your_db_user:your_db_pass@your_db_host:3306/your_db_name?charset=your_db_charset&serverVersion=your_db_version \
  -p 80:80 \
  -p 443:443 \
  -v /path/to/kimai/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/kimai:latest

# This container requires an external application to be run separately.
docker run -d \
  --name=mariadb \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \
  -e MYSQL_DATABASE=your_db_name `#optional` \
  -e MYSQL_USER=your_db_user `#optional` \
  -e MYSQL_PASSWORD=your_db_pass `#optional` \
  -p 3306:3306 \
  -v path_to_data:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/mariadb:latest

Docker Compose#

kimai.yml

---
services:
  kimai:
    image: lscr.io/linuxserver/kimai:latest
    container_name: kimai
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - DATABASE_URL=mysql://your_db_user:your_db_pass@your_db_host:3306/your_db_name?charset=your_db_charset&serverVersion=your_db_version
    volumes:
      - /path/to/kimai/config:/config
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

# This container requires an external application to be run separately.
# MariaDB
  mariadb:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD
      - MYSQL_DATABASE=your_db_name #optional
      - MYSQL_USER=your_db_user #optional
      - MYSQL_PASSWORD=your_db_pass #optional
    volumes:
      - path_to_data:/config
    ports:
      - 3306:3306
    restart: unless-stopped

Application Setup#

Configure your database connection#

docker exec -it mariadb bash
sh -c 'mysql -u root -p123456 -e "SELECT VERSION() \G"'
  • example for MariaDB use “10.11.4-MariaDB-log”

  • example for MySQL use “8.0.32”

Create your first user#

docker exec -it kimai console kimai:user:create your_username admin@example.com ROLE_SUPER_ADMIN

you can configure LDAP or SAML for authentication

Runtime Environment#

Screenshots#

https://www.kimai.org/images/screenshots/screenshot-dashboard.webp

https://www.kimai.org/images/screenshots/screenshot-reporting.webp

References#