{"id":77129,"date":"2020-11-07T23:36:41","date_gmt":"2020-11-07T20:36:41","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=77129"},"modified":"2026-03-24T15:16:59","modified_gmt":"2026-03-24T12:16:59","slug":"install-kimai-time-tracking-application","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/install-kimai-time-tracking-application\/","title":{"rendered":"Install Kimai web-based time tracking application"},"content":{"rendered":"\n<p>Kimai is a free, open source and online time-tracking software designed for small businesses and freelancers. It tracks work time and prints out a summary of your activities on demand. Yearly, monthly, daily, by customer, by project. The platform supports an unlimited amount of users and timesheet entries, so you can handle all of your teams or departments in one easy-to-use installation. And do not forget that Kimai is built with modern technologies such as <em>Symfony, Bootstrap, RESTful API, Doctrine, AdminLTE, Webpack, ES6<\/em> and others.<\/p>\n\n\n\n<p>Whether you are a freelancer, a small organization or a company with hundreds of employees, we shall setup Kimai and get to see the benefits that it will bring to you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-features-of-kimai-time-tracker\">Features of Kimai Time Tracker<\/h2>\n\n\n\n<p>The following are some of the features you will immediately begin to enjoy from Kimai<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creation of invoices from your timesheets within your browser<\/li>\n\n\n\n<li>Tracking of your working hours<\/li>\n\n\n\n<li>An unlimited amount of users and timesheet entries<\/li>\n\n\n\n<li>Tracking times using your mobile device<\/li>\n\n\n\n<li>Translated into multiple languages and missing translations can be added easily, using the open translation standard Xliff.<\/li>\n\n\n\n<li>Free and Open Source<\/li>\n\n\n\n<li>Easy-to-use installation<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-kimai-s-pre-requisites\">Kimai&#8217;s Pre-requisites<\/h3>\n\n\n\n<p>Kimai&#8217;s simplicity on requires the following for it to run in your server<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web server (Apache or Nginx)<\/li>\n\n\n\n<li>PHP<\/li>\n\n\n\n<li>Composer<\/li>\n\n\n\n<li>MySQL Database server<\/li>\n<\/ul>\n\n\n\n<p>Once everything is set, let&#8217;s visit our Ubuntu 20.04 server and bid welcome this new Kimai visitor by following the following steps:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-1-update-and-prepare-your-server\">Step 1: Update and prepare your server<\/h2>\n\n\n\n<p>We are going to start on a clean slate and hence we shall update our server to get the latest software and patches. Apart from that, we shall install the tools we shall need in the next steps. Run the following commands to get our server updated and install necessary packages like git.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo apt update -y\nsudo apt install git curl vim \n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">##On RHEL-based Systems\n<\/mark>sudo yum makecache\nsudo yum install git curl vim pcre2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-2-install-and-setup-database\">Step 2: Install and Setup database<\/h2>\n\n\n\n<p>We are going to use MariaDB for this setup. Fortunately, we have detailed guides already to get MariaDB\/MySQL installed. Check out<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/?s=Install+MariaDB\" target=\"_blank\" rel=\"noreferrer noopener\">How To Install MariaDB<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/?s=Install+MySQL\" data-type=\"link\" data-id=\"https:\/\/computingforgeeks.com\/?s=Install+MySQL\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install MySQL<\/a><\/li>\n<\/ul>\n\n\n\n<p>After you have the database installed, the next step is to create a database and user for Kimai. Let us, therefore, go ahead and get this done as shown below. You are free to name your database and user differently and ensure you use a safe password.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">mysql -u root -p<\/mark>\nEnter password: (Enter root Password>\n...\nMariaDB &#91;(none)]><\/code><\/pre>\n\n\n\n<p>Create a user and database using the commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE kimai_database;\nCREATE USER 'userkimai'@'localhost' IDENTIFIED BY 'StrongPassword';\nGRANT ALL PRIVILEGES ON kimai_database . * TO 'userkimai'@'localhost';\nFLUSH PRIVILEGES;\nexit;<\/code><\/pre>\n\n\n\n<p>You may need to replace <strong><em>StrongPassword<\/em><\/strong> with your own desired password for the database.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-3-install-and-configure-a-webserver-and-php\">Step 3: Install and Configure Web server and PHP<\/h2>\n\n\n\n<p>In order to get Kimai pages served, there has to be a web server. Here, you have the freedom of either picking Apache or Nginx. We shall use Nginx for this guide. Additionally, Kimai requires PHP and therefore we will have to set it up as well. Note that the version of PHP required is <em>PHP >=<strong>8.1<\/strong><\/em>.<\/p>\n\n\n\n<p>We have a complete guide that covers the installation of PHP:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/?s=Install+php+8.2\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/computingforgeeks.com\/?s=Install+php+8.2\" rel=\"noreferrer noopener\">How to install PHP<\/a><\/li>\n<\/ul>\n\n\n\n<p>After that is done, install all required PHP extensions as follows<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo apt install php-intl php-gd php-curl php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On RHEL-Based Systems\n<\/mark>sudo yum install php-intl php-gd php-curl php-cli php-fpm php-json php-common php-mysqli php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath<\/code><\/pre>\n\n\n\n<p>Verify the PHP version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">php -v<\/mark>\nPHP 8.2.10 (cli) (built: Aug 29 2023 15:31:38) (NTS gcc x86_64)\nCopyright (c) The PHP Group\nZend Engine v4.2.10, Copyright (c) Zend Technologies<\/code><\/pre>\n\n\n\n<p>Once installed, you need to make the modifications. Opne the PHP-FPM file for editing:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo vim \/etc\/php\/*\/fpm\/php.ini\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On RHEL-Based Systems\n<\/mark>sudo vim \/etc\/php.ini<\/code><\/pre>\n\n\n\n<p>Open up your php-fpm ini file and add\/edit the details shown below. They include Timezone, and memory limit settings. Add your <em>date.timezone<\/em> and change <em>memory_limit <\/em>to 512MB.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\nmemory_limit = 512M\n\n&#91;Date]\ndate.timezone = Africa\/Nairobi<\/code><\/pre>\n\n\n\n<p>On Rhel-based systems, you need to configure PHP-FPM to use Nginx as shown:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo vim \/etc\/php-fpm.d\/www.conf\n<\/mark>user = nginx\ngroup = nginx\nlisten.owner = nginx\nlisten.group = nginx\nlisten.mode = 0660<\/code><\/pre>\n\n\n\n<p>Save the file and restart PHP-FPM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart php-fpm<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-install-composer\">Install composer<\/h3>\n\n\n\n<p>Composer is a brilliant tool that installs PHP dependencies that a project requires. We shall use its amazing features to install the dependencies that Flarum requires. Run the following commands to setup <em><strong>composer 1<\/strong><\/em> that Kimai&#8217;s files are compatible with real quick.<\/p>\n\n\n\n<p>To get the latest Composer version, visit the official <a href=\"https:\/\/github.com\/composer\/composer\/releases\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/github.com\/composer\/composer\/releases\" rel=\"noreferrer noopener\">Github<\/a> release page<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\ncurl -sS https:\/\/getcomposer.org\/installer -o composer-setup.php\nsudo php composer-setup.php --version=<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">2.6.2<\/mark> --install-dir=\/usr\/local\/bin --filename=composer<\/code><\/pre>\n\n\n\n<p>Verify the installation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">composer -V\n<\/mark>Composer version 2.6.2 2023-09-03 14:09:15<\/code><\/pre>\n\n\n\n<p>You can export your path:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">vim ~\/.bashrc<\/mark>\nexport PATH=$PATH:\/usr\/local\/bin<\/code><\/pre>\n\n\n\n<p>Source the profile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source ~\/.bashrc<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-4-fetch-kimai-s-files-from-git-and-configure-nginx\">Step 4: Fetch Kimai\u2019s files from Git and configure Nginx<\/h2>\n\n\n\n<p>We shall create a new directory (root) that Kimai\u2019s files will reside as well as read and served by the webserver of our choice. You can create a different one according to your needs and design.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/\nsudo git clone https:\/\/github.com\/kimai\/kimai.git\ncd kimai\/<\/code><\/pre>\n\n\n\n<p>Install all the required components with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo composer install --no-dev --optimize-autoloader\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##OR\n<\/mark>sudo su\ncomposer install --no-dev --optimize-autoloader<\/code><\/pre>\n\n\n\n<p>Configure the database connection in the<strong><em> .env<\/em><\/strong> file by setting the username, password and database we configured in <em><strong>Step 2.<\/strong><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo vim \/var\/www\/html\/kimai\/.env<\/mark>\n......\n##Edit the following\nDATABASE_URL=mysql:\/\/userkimai:StrongPassword@127.0.0.1:3306\/kimai_database<\/code><\/pre>\n\n\n\n<p>And then run the Kimai installer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/kimai\nsudo bin\/console kimai:install -n<\/code><\/pre>\n\n\n\n<p>You should see something similar to the following during Kimai&#8217;s installation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1017\" height=\"435\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal.png\" alt=\"\" class=\"wp-image-77161\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal.png 1017w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal-300x128.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal-768x328.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal-696x298.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-install-terminal-982x420.png 982w\" sizes=\"auto, (max-width: 1017px) 100vw, 1017px\" \/><\/figure>\n\n\n\n<p>Then create your first user as follows. You will be prompted for a password, make sure it is more than 8 characters.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo bin\/console kimai:user:create username admin@computingforgeeks.com ROLE_SUPER_ADMIN<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-generate-self-signed-ssl-tls-certificates\">Generate Self-signed SSL\/TLS certificates<\/h3>\n\n\n\n<p>Once Kimai installer is done, we will generate SSL\/TLS certificates for the Nginx SSL connection and create a Nginx configuration file to define Kimai&#8217;s settings. This is just to make things a bit secure.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/ssl\/private\nsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout \/etc\/ssl\/private\/kimai-selfsigned.key -out \/etc\/ssl\/certs\/kimai-selfsigned.crt<\/code><\/pre>\n\n\n\n<p>Proceed as shown below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.....\n##Enter Required details##\nGenerating a RSA private key\n.........................................+++++\n................................................+++++\nwriting new private key to '\/etc\/ssl\/private\/kimai-selfsigned.key'\n-----\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter '.', the field will be left blank.\n-----\nCountry Name (2 letter code) &#91;AU]:KE\nState or Province Name (full name) &#91;Some-State]:Nairobi\nLocality Name (eg, city) &#91;]:Nairobi\nOrganization Name (eg, company) &#91;Internet Widgits Pty Ltd]:Computingforgeeks\nOrganizational Unit Name (eg, section) &#91;]:Infra\nCommon Name (e.g. server FQDN or YOUR name) &#91;]:computingforgeeks.com\nEmail Address &#91;]:admin@computingforgeeks.com<\/code><\/pre>\n\n\n\n<p>Once it is done we will next generate Deffie-Hellman group as follows. It will take some time to complete.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo openssl dhparam -out \/etc\/ssl\/certs\/dhparam.pem 2048<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-configure-nginx\">Install and Configure Nginx<\/h3>\n\n\n\n<p>We need to ensure that Nginx has been installed and configured correctly. If you have Apache installed, disable it <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo systemctl stop apache2\nsudo systemcl disable apache2\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On Rhel-based Systems\n<\/mark>sudo systemctl stop httpd\nsudo systemctl disable httpd<\/code><\/pre>\n\n\n\n<p>Now install Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo apt install nginx -y \n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On Rhel-based Systems\n<\/mark>sudo yum install nginx -y<\/code><\/pre>\n\n\n\n<p>We now have to make a few changes to the Nginx configuration defaults by adding the details we need to serve Kimai. Change into sites-enabled, back up the default file and create a new one with new configurations.<\/p>\n\n\n\n<p>Then set the value of types_hash_max_size to 4096 in Nginx configuration file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i 's\/types_hash_max_size 2048\/types_hash_max_size 4096\/' \/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<p>Create a virtual host file for Kimai<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/nginx\/conf.d\/kimai.conf<\/code><\/pre>\n\n\n\n<p>Create a new file and add the details shown below. If you have an FQDN, replace <em>example.com<\/em> with it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">kimai.example.com<\/mark>;\n    return 301 https:\/\/$host$request_uri;\n}\nserver {\n    listen 443 ssl;\n    server_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">kimai.example.com<\/mark>;\n\n    root \/var\/www\/html\/kimai\/public\/;\n    index index.php index.htm index.nginx-debian.html;\n\n        ssl_certificate \/etc\/ssl\/certs\/kimai-selfsigned.crt;\n    ssl_certificate_key \/etc\/ssl\/private\/kimai-selfsigned.key;\n\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_prefer_server_ciphers on; \n    ssl_dhparam \/etc\/ssl\/certs\/dhparam.pem;\n    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;\n    ssl_ecdh_curve secp384r1;\n    ssl_session_timeout  10m;\n    ssl_session_cache shared:SSL:10m;\n    resolver 8.8.8.8 valid=300s;\n    resolver_timeout 5s; \n    add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\";\n    add_header X-Frame-Options DENY;\n    add_header X-Content-Type-Options nosniff;\n    add_header X-XSS-Protection \"1; mode=block\";\n\n    location ~ \/\\.ht {\n        deny all;\n    }\n    location \/ {\n                try_files $uri \/index.php$is_args$args;\n    }\n\n        location ~ ^\/index\\.php(\/|$) {\n<em><strong>##On Debian-based\n<\/strong><\/em>        fastcgi_pass unix:<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/run\/php\/php8.2-fpm.sock<\/mark>;\n<em><strong>##On Rhel-based\n#        fastcgi_pass unix:\/run\/php-fpm\/www.sock<\/strong><\/em>;\n        fastcgi_index index.php;\n        fastcgi_read_timeout 240;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n        fastcgi_split_path_info ^(.+.php)(\/.+)$;\n        }\n    location ~ \\.php$ {\n        return 404;\n    }\n }<\/code><\/pre>\n\n\n\n<p>In the file, replace your server name and the path to your PHP-FPM sock accordingly. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-change-kimai-s-files-permissions\">Change Kimai\u2019s files permissions<\/h3>\n\n\n\n<p>In order for Nginx to read Kimai&#8217;s files, we have to grant it the rights and the right permissions. Issue the commands below to get that done.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu\n<\/mark>sudo chown -R www-data:www-data \/var\/www\/html\/kimai\nsudo chmod -R 755 \/var\/www\/html\/kimai\nsudo chmod -R g+rw \/var\/www\/html\/kimai\/var\/\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On Rhel-based:\n<\/mark>sudo chown -R nginx:nginx \/var\/www\/html\/kimai\nsudo chmod -R 755 \/var\/www\/html\/kimai\nsudo chmod -R g+rw \/var\/www\/html\/kimai\/var\/<\/code><\/pre>\n\n\n\n<p>Restart the services:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On Debian\/Ubuntu<\/mark>\nsudo systemctl restart nginx php*-fpm\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On Rhel-based:\n<\/mark>sudo systemctl restart nginx php-fpm<\/code><\/pre>\n\n\n\n<p>Once we are done, we should finally allow ports 80 and 443 on the firewall<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">##On UFW\n<\/mark>sudo ufw allow 80,443\/tcp\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">##On Firewalld\n<\/mark>sudo firewall-cmd --add-port={80,443}\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-5-access-kimai-web-interface-on-ubuntu-20-04\">Step 5: Access Kimai Web Interface<\/h2>\n\n\n\n<p>To complete setting up Kimai, point your browser to the IP or domain name of the webserver serving the files.<em> <strong>https:\/\/[ip-or-domain-name]<\/strong><\/em>. You should be redirected to https and get a login page like below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"952\" height=\"897\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10.png\" alt=\"\" class=\"wp-image-144961\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10.png 952w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10-300x283.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10-768x724.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10-696x656.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/09\/Install-Kimai-web-based-time-tracking-application-10-446x420.png 446w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/figure>\n\n\n\n<p>Enter the details we set in <em><strong>Step 4<\/strong><\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"518\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-1024x518.png\" alt=\"\" class=\"wp-image-77140\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-1024x518.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-300x152.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-768x388.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-696x352.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-1068x540.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard-830x420.png 830w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-login-dashboard.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-6-multi-tenancy\">Step 6: Multi-tenancy<\/h2>\n\n\n\n<p>Teams allow you to organize your users in groups and limit access to customers and projects. A team consists of a Teamlead and an unlimited amount of team members. The teamlead has access to all contents and timesheets of the team. Every content object can be linked to an arbitrary number of teams.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-permission-details\">Permission details<\/h3>\n\n\n\n<p>With multi-tenancy in Kimai, we first have a look at the available user roles and how their permission work when using teams (this only applies when you use the default permission configuration):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>System-Admin: can see and manage all content and use all administrative functions.<\/li>\n\n\n\n<li>Administrator: can see and manage all content, but access to system specific settings and contents (like users) are limited.<\/li>\n\n\n\n<li>Teamlead: can see all un-privileged contents and all contents assigned to his teams. Team specific contents can be managed for all teams where this user is the Teamlead.<\/li>\n\n\n\n<li>User: can see all un-privileged contents and all contents assigned to his teams.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-creating-users\">Creating users<\/h3>\n\n\n\n<p>Navigate to the &#8220;<em><strong>Users<\/strong><\/em>&#8221; Tab on the Kimai dashboard and click on it. After that, click on the <strong>+<\/strong> to create a new user.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-1024x496.png\" alt=\"\" class=\"wp-image-77147\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-1024x496.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-768x372.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-696x337.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-1068x517.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1-868x420.png 868w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-1.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Enter the details as shown below then click &#8220;<em><strong>Save<\/strong><\/em>&#8221; below the page<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-1024x490.png\" alt=\"\" class=\"wp-image-77148\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-1024x490.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-300x143.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-768x367.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-696x333.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-1068x511.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2-879x420.png 879w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-2.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>After saving it, a new page will be presented where you can add &#8220;<em><strong>Roles<\/strong><\/em>&#8221; and the rest. Enter the right roles for the user. Do this for as many users as you have.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-1024x495.png\" alt=\"\" class=\"wp-image-77152\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-1024x495.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-768x371.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-696x337.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-1068x516.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles-869x420.png 869w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-create-user-3-create-roles.png 1363w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-creating-a-team\">Creating a team<\/h3>\n\n\n\n<p>Team creation is limited to the user roles System-Admin and Administrator. Navigate to the &#8220;<strong><em>Teams<\/em><\/strong>&#8221; Tab on the Kimai dashboard and click on it. Click on the <strong>+<\/strong> located at the top right to create a new team.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"494\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-1024x494.png\" alt=\"\" class=\"wp-image-77155\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-1024x494.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-768x371.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-696x336.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-1068x516.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1-870x420.png 870w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-1-1.png 1365w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Enter the details of the team you are creating. You can add the members you would wish to be part of this team.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"494\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-1024x494.png\" alt=\"\" class=\"wp-image-77158\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-1024x494.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-768x371.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-696x336.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-1068x515.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2-871x420.png 871w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-2.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"493\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-1024x493.png\" alt=\"\" class=\"wp-image-77159\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-1024x493.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-768x370.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-696x335.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-1068x514.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3-872x420.png 872w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/11\/kimai-dashboard-teams-3.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Later you can add <em>Projects, Activites, Timesheets<\/em> as well as plugins.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>If you are serious about your projects, then it is prudent to have everything your team is handling on track. You need to know where every minute of productive time is being spend on and that will guarantee quality and timely products. Kimai is a good place to keep everything in sync and orderly. Give it a try and experience the benefits it proffers. Find out more about Kimai from its <a href=\"https:\/\/www.kimai.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Official Website<\/a> as well as its <a href=\"https:\/\/github.com\/kevinpapst\/kimai2\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub page<\/a>.  Finally, we appreciate your continued support and for spending time on the blog. You can enjoy other guides shared below.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/install-taiga-ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Taiga Project Management Platform on Ubuntu<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/install-mautic-open-source-marketing-software-on-ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setup Mautic Marketing Software on Ubuntu<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/install-and-configure-opencart-ecommerce-platform-on-ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install and Configure OpenCart e-commerce platform on Ubuntu<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Kimai is a free, open source and online time-tracking software designed for small businesses and freelancers. It tracks work time and prints out a summary of your activities on demand. Yearly, monthly, daily, by customer, by project. The platform supports an unlimited amount of users and timesheet entries, so you can handle all of your &#8230; <a title=\"Install Kimai web-based time tracking application\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/install-kimai-time-tracking-application\/\" aria-label=\"Read more about Install Kimai web-based time tracking application\">Read more<\/a><\/p>\n","protected":false},"author":7,"featured_media":77143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[299,50,349],"tags":[35577,35578],"class_list":["post-77129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-linux-tutorials","category-web-hosting","tag-kimai","tag-time-tracking"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/77129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=77129"}],"version-history":[{"count":1,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/77129\/revisions"}],"predecessor-version":[{"id":164244,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/77129\/revisions\/164244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/77143"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=77129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=77129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=77129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}