A simple, lightweight static page that also provides a reverse proxy service.
  • Go 98%
  • Dockerfile 2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
maxim db2208ea98
All checks were successful
Build Docker image / push-backend-image (push) Successful in 2m22s
fix 100mib timeouts
2026-08-18 15:19:07 +02:00
.forgejo/workflows Changed the wait configuration works 2025-11-20 16:38:21 +01:00
.idea Merge branch 'main' of ssh://git-ssh.ctrlalt.cat:16384/maxim/kitty-pages 2025-11-20 16:39:04 +01:00
config added the hability to trust self signed certificates 2026-07-14 20:35:38 +02:00
utils Added reverse proxy, config file & more 2025-08-30 14:52:36 +02:00
.gitignore updated gitignore 2025-08-30 15:04:29 +02:00
config.example.json added the hability to trust self signed certificates 2026-07-14 20:35:38 +02:00
docker-compose.yml Update due to issues with the docker image 2025-08-30 15:25:04 +02:00
Dockerfile Updates 2025-10-19 14:09:31 +02:00
go.mod Updates 2025-10-19 14:09:31 +02:00
go.sum Updates 2025-10-19 14:09:31 +02:00
LICENSE added isDir verification 2025-10-17 23:57:56 +02:00
main.go fix 100mib timeouts 2026-08-18 15:19:07 +02:00
README.md Merge branch 'main' of ssh://git-ssh.ctrlalt.cat:16384/maxim/kitty-pages 2025-11-20 16:39:04 +01:00
reverseProxy.go added the hability to trust self signed certificates 2026-07-14 20:35:38 +02:00
staticHandler.go added isDir verification 2025-10-17 23:57:56 +02:00

kitty-pages

A simple, lightweight static page that also provides a reverse proxy service.

Getting started

  • Use the provided docker-compose.yml: curl https://git.ctrlalt.cat/maxim/kitty-pages/raw/branch/main/docker-compose.yml > docker-compose.yml
  • Create your config.json file. You can find an example configuration file in this repo. Or download it with curl https://git.ctrlalt.cat/maxim/kitty-pages/raw/branch/main/config.example.json > config.example.json
  • Run docker compose up -d
  • Recommended: add a 404.html file in the errors folder. That way, when no static sites nor reverse proxies are registered on the given domain, this file is shown. It's useful if you want to show a better page than just "404: Not found"

Hosting a website

To host your static website, a simple http request is all you need for both publishing and updating your website.

You first have to zip your static files.

Here's an example request made with CURL:

curl "https://<domain_pointing_to_a_kitty_pages_instance>/_/upload" -F "domain=domainwhereyouwanttohostyourstaticsite.com" -F "key=yoursecretkey" -F "file=@file.zip"

Every time you upload a new zip file for a domain, existing files will be completely deleted before your zip file is extracted.

Create a new reverse proxy host

Kitty Pages can also act as a reverse proxy. To do so, edit the config.json file.

You will find the following configuration by default:

{
    "reverse_proxy": {
		"hosts": [
			{
				"host": "example.com",
				"dest": "http://somewhere:port"
			}
		]
	}
}

You can add as much hosts as you want.

Quick Reload

By default, you need to restart the server to apply changes. This can be changed by enabling quick_reload in the configuration file.

When quick reload is enabled, the configuration will be updated every time you make changes to the config.json file.