For the last 2 years I have been using traggo to track my work hours. So it’s time for a big thanks to the project!
Traggo is a time tracking tool which you can self host on your own server (or even run locally on your laptop or PC). So it is especially good for freelancers - otherwise just run it locally or use synonyms for your project names and critical information!
It has a very simple, but for me perfect, feature set:
Here are some images how it looks like for me.
Note: I removed tags and comments for privacy reasons, they are normally visible.

My custom dashboard to show how much time I worked on each project

A typical calender view for my work week

Comments and tags in action
Comes Friday, I simply look at my dashboard for the hours and copy the comments for my time sheets - so easy :D
The Software is written in go (something I myself really must look into at some point in the future ^^). Using go makes the binary very small and fast, perfect even for running it locally if you have very sensitive information to track.
Go give it a try, I will probably stick with my favorite time tracking tool - traggo - for some time to come!
For easy update and maintenance (and security, too) I would recommend setting up traggo using Docker (which is what traggo recommends itself on its website, too).
I typically use a docker-compose script on my servers, so here is an example for you.
version: "3.7"
services:
traggo:
image: traggo/server:latest
restart: always
ports:
- 3030:3030
environment:
TRAGGO_DEFAULT_USER_NAME: "youruser"
TRAGGO_DEFAULT_USER_PASS: "yourstrongpw"
volumes:
- ./home/youruser/yourpath:/opt/traggo/data