Herramienta online autoalojable para medir el tiempo (time tracking). Diseñada para pequeños negocios o autónomos (freelancer).
Contenido de nginx_site.conf:
server { listen 80; index index.php; server_name php-docker.local; root /opt/kimai/public; # cache static asset files location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { expires max; log_not_found off; } # for health checks location /health { return 200 'alive'; add_header Content-Type text/plain; } location / { # try to serve file directly, fallback to index.php try_files $uri $uri/ /index.php$is_args$args; } location ~ ^/index\.php(/|$) { fastcgi_pass kimai:9000; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; # optionally set the value of the environment variables used in the application # fastcgi_param APP_ENV prod; # fastcgi_param APP_SECRET <app-secret-id>; # fastcgi_param DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name"; # When you are using symlinks to link the document root to the # current version of your application, you should pass the real # application path instead of the path to the symlink to PHP # FPM. # Otherwise, PHP's OPcache may not properly detect changes to # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 # for more information). fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; # Prevents URIs that include the front controller. This will 404: # http://domain.tld/index.php/some-path # Remove the internal directive to allow URIs like this internal; } }
docker-compose.yml:
version: '3.3' networks: internal-nw: internal: true outside-nw: services: database: image: mysql:8 container_name: kimai2_mysql command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_HOST: '%' MYSQL_ROOT_PASSWORD: passwordtochange MYSQL_DATABASE: kimai MYSQL_USER: a_user MYSQL_PASSWORD: passwordtochange ports: - '6306:3306' volumes: - kimai_database-data:/var/lib/mysql networks: - outside-nw - internal-nw restart: unless-stopped kimai: image: kimai/kimai2:fpm-alpine-1.10.2-prod container_name: kimai2 environment: APP_ENV: prod TRUSTED_HOSTS: localhost,nginx,${HOSTNAME} DB_TYPE: mysql DB_TYPE: a_user DB_PASS: passwordtochange DB_HOST: '%' DB_PORT: 6306 DB_BASE: kimai ADMINPASS: cambiame ADMINMAIL: admin@email.com depends_on: - database networks: - internal-nw volumes: - kimai-root:/opt/kimai - kimai_public-data:/opt/kimai/public restart: unless-stopped server: image: nginx:1.19 container_name: kimai2_nginx ports: - '8001:80' - '9000:9000' depends_on: - kimai volumes: - ./nginx_site.conf:/etc/nginx/conf.d/default.conf - kimai_public-data:/opt/kimai/public:ro - kimai-root:/opt/kimai networks: - outside-nw - internal-nw restart: unless-stopped postfix: container_name: kimai2_postfix image: catatnight/postfix:latest environment: maildomain: kimai.local smtp_user: kimai:kimai restart: unless-stopped volumes: kimai_database-data: kimai-root: kimai_public-data:
Para iniciar sesión:
admin@email.comcambiame