Implementation of a HTTP server resilient to SIGTERM OS signal and restartable on demand. https://sarumaj.github.io/restartable-server/
  • Go 65.5%
  • HTML 31.6%
  • Dockerfile 2.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Dawid Ciepiela 3b7b0ad2c1 Adapt to Forgejo: Renovate preset, Forgejo CI
By scripts/github_to_forgejo.py in HomeLab.
2026-10-07 17:23:56 +00:00
.cspell init 2023-10-09 13:44:53 +02:00
.github Update actions/setup-go action to v7 (#16) 2026-07-18 12:24:24 +02:00
.vscode init 2023-10-09 13:44:53 +02:00
cmd/server clean up container 2023-10-09 17:11:16 +02:00
pkg init 2023-10-09 13:44:53 +02:00
.gitignore Initial commit 2023-10-09 08:02:02 +02:00
cspell.config.yaml init 2023-10-09 13:44:53 +02:00
Dockerfile reduce size of container 2024-07-27 18:18:52 +02:00
go.mod fix(deps): update module github.com/gin-gonic/gin to v1.12.0 (#13) 2026-04-01 21:30:45 +02:00
go.sum fix(deps): update module github.com/gin-gonic/gin to v1.12.0 (#13) 2026-04-01 21:30:45 +02:00
LICENSE Initial commit 2023-10-09 08:02:02 +02:00
README.md fix badge 2024-07-05 19:55:27 +02:00
renovate.json Adapt to Forgejo: Renovate preset, Forgejo CI 2026-10-07 17:23:56 +00:00
techstack.md Create techstack.md 2024-03-07 17:31:28 +00:00
techstack.yml Update techstack.yml 2024-03-07 17:54:27 +00:00

deploy Go Report Card Maintainability Go Reference Go version


restartable-server

Implementation of a HTTP server resilient to SIGTERM OS signal and restartable on demand.

Especially interesting when deploying HTTP servers with the GO runtime in containers.

Container runtime engine usually send a SIGTERM signal to kill the server process, which can be catch by the restartable server to restart itself.

Provided as Proof of Concepts. Currently available at restartable-server.heroku.com.

https://github.com/sarumaj/restartable-server/assets/71898979/b511aa0e-707c-4260-a8b0-b3179a165e7e

Local deployment

go build -o server cmd/server/main.go
./server

Deployment on Heroku

heroku login
docker ps
heroku container:login
heroku container:push web -a <app_name>
heroku container:release web -a <app_name>