Revised Feb. 13, 2026
With the HamClock server shutting down in June 2026, you can switch to OpenHamClock to replace it. Here I'll show you how to host an OpenHamClock server on a Linux box.
There's more than one way to do this. I did my installation on an old Intel NUC running headless (no monitor or keyboard), with Debian 13 installed.
The first thing is to get the OpenHamClock code in place.
git repository in the current directory, and then clone the OpenHamClock repository: git init git clone https://github.com/accius/openhamclock.git
openhamclock was created by git. Navigate to it to be in position for the running the server.For this, I used the method described in the documentation for Local/Desktop. It's an easy way to get an OpenHamClock server running.
nodejs installed. On my Debian-based system, this is done with: sudo apt install nodejs npm
npm install
.env and set HOST=0.0.0.0npm start
http://server-ip-address:3000.After filling out the configuration popup, everything worked as it should.
Because the application is running in a shell created by SSH, it will terminate when you log out of the SSH session. A simple way of overcoming that is to install tmux, a multiplexing shell, on the server's host. Then, after logging into an SSH session on the host and navigating to the OpenHamClock directory, run this sequence of commands:
tmux npm start Ctrl+b d
The first command starts tmux, the second starts OpenHamClock, and the third (Ctrl+b followed by d) detaches the app from the shell, so it will continue to run after the SSH connection is terminated.
When you want to control the app at some later time, log in with SSH and run tmux attach. That will attach the app to the tmux shell, so you can work with it.
The GitHub project includes both a Dockerfile to create a Docker image, and a docker-compose.yaml file to run it. Docker instructions are here.
My experience with Docker on Debian is that it works best to install it from the official Docker Apt repository rather than the Debian repo. Doing so insures that all files are kept current and coordinated.
docker group.Dockerfile and docker-compose.yaml are present.docker compose up -d
http://server-ip-address:3000.