Kimai un aplicativo de seguimiento de tiempo

Kimai es una aplicación de seguimiento del tiempo con una larga trayectoria. Su primera versión fue lanzada en 2006. Kimai admite una cantidad ilimitada de usuarios y entradas de hojas de tiempo, por lo que puede manejar varios equipos/departamentos en una sola instalación.

Kimai es desarrollado en PHP, Symfony, DoctrineORM por lo que puede usar MySQL, MariaDB, PostgreSQL o SQLite como motor de bases de datos, además de las tecnologías antes mencionado necesita un servidor web que se pueda comunicar con el administrador de procesos PHP-FPM consulte los siguientes enlaces para más información:

Otras características:

  • Diseño adaptable.
  • Arquitectura basada en plugins.
  • Multi idioma.
  • Dasboards con gráficos comparativos.
  • Reportes
  • Exportar resportes en diferentes formatos.
  • Búsqueda.
  • Multi clientes.
  • Multi proyectos.
  • Multiple tareas.

Nota: Instalaremos Kimai en Alpine Linux

Instalar

El método recomendado por la documentación del Proyecto es usando git y composer por tanto necesitamos esas 2 herramientas:

$ sudo apk add git composer php8-fpm

También instalamos php8-fpm el administrador de procesos PHP.

Luego nos movemos al DIR raíz donde alojamos nuestros proyectos web (por lo general /var/www) y ejecutamos:

$ sudo git clone -b 1.17.1 --depth 1 https://github.com/kevinpapst/kimai2.git timetracker

Nos movemos al DIR timetracker

$ cd timetracker

Y procedemos a instalar las dependencias del proyecto.

$ sudo composer install --no-dev --optimize-autoloader

El comando anterior le mostrará las extensiones PHP necesarias y que no están instaladas, podemos instalarlas ejecutando:

$ sudo apk add php8-pdo \
php8-mbstring \
php8-gd \
php8-intl \
php8-xsl \
php8-zip \
php8-tokenizer \
php8-fileinfo \
php8-ctype \
php8-xml \
php8-simplexml \
php8-xmlreader \
php8-xmlwriter \
php8-session \
php8-pdo_mysql\
php8-opcache

php8-opcache no es requerido pero mejora el rendimiento de nuestras aplicaciones ya que es una cache donde se almacena código php que ya ha sido interpretado por el motor de PHP.

Y ejecutamos composer nuevamente.

BD

Conectarse

Nos conectamos a nuestro servidor de BD (MySQL o MariaDB):

$ sudo  mariadb -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17421
Server version: 10.6.4-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Consulte: Administrar servidor MySQL – Básico para más información.

Crear BD

CREATE DATABASE timetracker;

Consulte: Administrar servidor MySQL – Básico para más información.

Crear usuario

Creamos el usuario tt

CREATE USER tt@localhost identified by 'contraseña'

Asignamos privilegios de administración en la BD timetracker.

GRANT ALL on timetracker.* to tt@localhost;

Refrescamos los privilegios:

FLUSH PRIVILEGES;

Consulte: MySQL Administración de usuarios para más información.

Configurar la conexión a la BD.

Configuramos la conexión a la BD en el fichero .env

# Config para MySQL/MariaDB
DATABASE_URL=mysql://tt:contraseña@localhost:3306/timetracker?charset=utf8

Asignar permisos

Damos permisos de escritura al usuario o grupo bajo el cual se ejecuta el proceso php-fpm a los siguientes directorios (Kimai necesita escribir en estos directorios).

$ sudo chown -cR nobody:nobody public/avatars/ var/

nobody es el usuario y grupo que usa por defecto el pool www, puede cambiarlo modificando la directiva user y group en el fichero /etc/php8/php-fpm.d/www.conf.

Creamos el schema de BD

Ejecutamos el proceso de instalación configuración de la BD (Migrations)

$ sudo php8 bin/console kimai:install -n

Crear el usuario admin

$ php8 bin/console kimai:create-user usuario micorreo@example.com ROLE_SUPER_ADMIN
Please enter the password:

Instalar y configurar NGINX

Para instalar y configurar NGINX consulte:

Enlaces de interés

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.