Skip to content

About

time tracking system

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

139 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

emiTMachine

emiTMachine is a multi-user time tracking web app for work sessions, tags, reports, TOTP, passkeys, recovery codes, CSV history, admin workflows, and overtime/time-bank tracking.

Screenshots

Deploy Fast

Start here if you want the shortest path to a running deployment:

  1. Open doc/deployment-quickstart.md.
  2. Pick Caddy, Nginx Proxy Manager with SQLite, or Nginx Proxy Manager with MariaDB.
  3. Copy the listed .example files.
  4. Replace the placeholder domain, passwords, and encryption key.
  5. Start the selected Compose stack.

Use domain.example.com in the docs as a placeholder for your real HTTPS hostname.

Goal Use Command
Local development docker-compose.yml docker compose up --build
Production with included Caddy reverse proxy docker-compose-reverse.yml docker compose -f docker-compose-reverse.yml up -d --build
Production with Nginx Proxy Manager and SQLite NPM storage (*) docker-compose-npm.yml docker compose -f docker-compose-npm.yml up -d --build
Production with Nginx Proxy Manager and MariaDB NPM storage docker-compose-npm-advanced.yml docker compose -f docker-compose-npm-advanced.yml --env-file docker-compose-npm-advanced.env up -d --build

Only .example env files are committed. Real env files contain secrets and deployment-specific domains, are ignored by Git, and must not be pushed.

Required Deployment Env Files

Most deployment stacks need these private files:

cp docker-compose-reverse.postgres.env.example docker-compose-reverse.postgres.env
cp docker-compose-reverse.backend.env.example docker-compose-reverse.backend.env
cp docker-compose-reverse.frontend.env.example docker-compose-reverse.frontend.env

If you use docker-compose-npm-advanced.yml, also run:

cp docker-compose-npm-advanced.env.example docker-compose-npm-advanced.env

For Caddy, also copy docker-compose-reverse.example.yml to docker-compose-reverse.yml and caddy/config/Caddyfile.example to caddy/config/Caddyfile.

Local Development

docker compose up --build

Services:

  • Frontend: http://localhost:5173
  • Backend API: http://localhost:4000/api
  • PostgreSQL: localhost:5432

The database is persisted in the postgres_data Docker volume and initialized from backend/db/init.sql when the volume is first created.

Backups

Backups are intentionally handled by the host or infrastructure layer, not by a long-running backup container. Use doc/backups.md for the recommended PostgreSQL backup, retention, off-site copy, cron, and restore procedure.

Documentation

Features

  • Username/password registration and login.
  • Optional TOTP setup with QR code verification.
  • Passkey registration/login flow with native WebAuthn ceremonies.
  • Recovery codes for account recovery.
  • Clock in/out workflow with editable client time confirmation.
  • Tags with colors, including default tags.
  • Daily, weekly, and monthly hour charts.
  • CSV export and restore import.
  • Admin/root user management workflows.
  • PostgreSQL database initialized from SQL, not backend startup code.
  • Docker Compose support for local development and reverse-proxy deployment.

Agentic Workflow

This repository includes workspace agents for planning and implementing the project from todo.txt.

  • Main coordination file: AGENTS.md
  • Per-agent definitions: .github/agents/
  • Technical workflow notes: doc/agentic-ai.md

About

time tracking system

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages