Go to file
2026-01-15 21:03:05 +00:00
app initial 2026-01-15 15:46:35 -05:00
docker-compose.yml Upload files to "/" 2026-01-15 20:59:31 +00:00
Dockerfile initial 2026-01-15 15:46:35 -05:00
README.md initial 2026-01-15 21:03:05 +00:00
requirements.txt initial 2026-01-15 15:46:35 -05:00

Timekeeper (Synology NAS Docker)

A lightweight timekeeping utility for importing Excel time clock reports, auto-generating employee timesheets, printing, and viewing monthly/yearly stats. Runs on port 5070 with a Postgres backend.

Features

  • Upload your “Final Time Clock Report” Excel and import entries.
  • Per-employee timesheet in a layout similar to your template screenshot with weekly summaries and totals (Regular, PTO, Holiday, Bereavement, OT, Paid Total).
  • Print-ready timesheet (browser print / Save as PDF).
  • Yearly overview with monthly breakdown and averages.
  • Default login: Admin / 1Senior! (please change).

Run on Synology

  1. Copy this folder to your NAS, e.g. /volume1/docker/timekeeper.
  2. Open Container Manager (Docker) → Projects → Create.
  3. Select this folder, confirm docker-compose.yml, and start.
  4. Visit http://<NAS-IP>:5070.
  5. Login with Admin / 1Senior! → Import Excel → View Employees → Timesheet/Overview.

Configuration

  • Port: 5070 (mapped in compose).
  • Environment:
    • SECRET_KEY set to a strong random string.
    • PAY_PERIOD_TYPE BIWEEKLY (default), WEEKLY, or SEMI_MONTHLY.
    • PAY_PERIOD_START_WEEKDAY start of week (0=Mon ... 6=Sun) for weekly/biweekly grouping.

Excel Import

The importer detects a sheet whose name contains “Final Time Clock Report” (or first sheet otherwise). Expected columns by name (case-sensitive):

  • Employee Name
  • Date
  • Clock In Time
  • Clock Out Time
  • Hours Worked Minus Break Hours
  • Break Hours
  • Paid Hours
  • (Optional) PTO Type, PTO Hours, Holiday Hours, Bereavement Hours, Schedule Group

If your column names differ, update COLUMN_ALIASES in app/process_excel.py.

Security

  • Immediately change the Admin password after first login.
  • Restrict port exposure to your LAN/VPN.
  • Consider enabling HTTPS behind Synologys reverse proxy.

Backups

  • Postgres data persists in db_data volume.
  • Uploaded Excel files are stored in the uploads volume.

Roadmap ideas

  • PDF export via WeasyPrint/wkhtmltopdf.
  • Role-based accounts and user management.
  • Overtime rules customization; per-employee schedules; PTO imports.