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:
- Instalar PHP, PHP-FPM en Alpine Linux
- ¿Cómo instalar NGINX en Alpine Linux?
- Cómo instalar MariaDB en Alpine Linux
- Instalar SSL Let’s Encrypt usando Lego
- NGINX como proxy reverso
- Cómo instalar NGINX en NetBSD?
- ¿Cómo instalar PHP en NetBSD?
- Cómo instalar Apache en Ubuntu 20.04
- Cómo instalar PHP 7.4 en Ubuntu 20.04
- Instalar y configurar Apache HTTP server
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:
- Instalar PHP, PHP-FPM en Alpine Linux
- ¿Cómo instalar NGINX en Alpine Linux?
- Instalar SSL Let’s Encrypt usando Lego