RemarkableCloud

Apps / Imágenes Docker

Kimai en Docker.
Registro de horas, listo para producción.

Kimai es una aplicación open source de registro de horas para freelancers y equipos: partes de horas, proyectos y actividades, clientes, tarifas, exportaciones y facturación, con roles y un API REST.

docker pull ghcr.io/remarkablecloud/kimai

Build actual

2.66.0-r1

Updated Jan 1, 1970

Base

Kimai 2 oficial, anclada por digest

Qué trae

Pareja MariaDB, admin auto-provisionado, healthcheck

Licencia upstream

Kimai: AGPL-3.0

Free to pull and run anywhere. Digest-pinned, updated deliberately; each build is recorded in the changelog.

La imagen

Qué agrega nuestra imagen.

Kimai es una aplicación open source de registro de horas para freelancers y equipos: partes de horas, proyectos y actividades, clientes, tarifas, exportaciones y facturación, con roles y un API REST.

Base anclada por digest

Construida desde `kimai/kimai2@sha256:d67478...` (Kimai 2.66.0, PHP 8.3, Apache, Debian 12). Anclar por digest mantiene las reconstrucciones reproducibles.

Instalación por variables

En el primer arranque el entrypoint de upstream espera la base, corre migraciones y crea el admin. Nuestro envoltorio genera una contraseña de admin fuerte, la persiste en el volumen de datos y la imprime una vez. Puedes fijar la tuya con `ADMINPASS`.

URL de base de datos segura

El envoltorio construye `DATABASE_URL` desde variables separadas de host, puerto, nombre, usuario y contraseña, codificando la contraseña para que los caracteres especiales no rompan la cadena de conexión.

App secret persistente

El entrypoint de upstream auto-genera un `APP_SECRET` único y lo persiste en `var/data`, así nunca corre con el default público y las sesiones sobreviven reinicios.

Consciente del proxy

`TRUSTED_PROXIES` cubre las redes privadas, así que Kimai honra `X-Forwarded-Proto` detrás de un reverse proxy que termina TLS y genera URLs https correctas.

Healthcheck

Un `HEALTHCHECK` del contenedor confirma que la app responde. El tag publicado actual es `ghcr.io/remarkablecloud/kimai:2.66.0-r1`.

La guía

Córrelo en producción.

Resumen de producción

Dos contenedores: Kimai (Apache + PHP en el puerto 8001 interno) y MariaDB. El primer arranque corre migraciones y crea el admin con contraseña generada, impresa una vez en el log; el APP_SECRET se genera y persiste solo, así las sesiones sobreviven reinicios. Detrás de tu proxy TLS, TRUSTED_PROXIES ya honra X-Forwarded-Proto. Respalda la base de datos y var/data juntos. Para actualizar, cambia al tag nuevo y recrea.

La guía técnica completa (Compose, variables, hardening, respaldos y upgrades) está disponible en inglés: ver la guía completa.

Actualizaciones

Builds recientes.

2.66.0-r1

Sep 11, 2026

FAQ

Preguntas que nos hacen.

¿Necesito una base de datos?

Sí. Kimai guarda partes de horas y configuración en MariaDB (o MySQL). El compose independiente incluye MariaDB.

¿De dónde sale la contraseña de admin?

Si defines `ADMINPASS`, se usa ese valor. Si lo dejas vacío, la imagen genera una fuerte en la primera corrida y la imprime una vez en el log del contenedor.

¿Por qué el contenedor escucha en 8001?

Es el puerto Apache por defecto de Kimai. Mapéalo a cualquier puerto local; en producción el reverse proxy conecta a `8001` por la red interna.

¿Cómo funciona HTTPS si el contenedor solo sirve HTTP?

El TLS se termina en el reverse proxy (Traefik en la App Platform). Con `TRUSTED_PROXIES` definido, Kimai honra `X-Forwarded-Proto` y genera URLs https.

¿Puedo usar MySQL en vez de MariaDB?

Sí. Kimai conecta con el driver de MySQL, que funciona con MySQL 8 y MariaDB; apunta `KIMAI_DB_HOST` a tu servidor.

Your server runs. You sleep.

Fully managed hosting from people who have been doing this since 2001.