A simple, lightweight static page that also provides a reverse proxy service.
Find a file
maxim 64d0e449f8
All checks were successful
Build Docker image / push-backend-image (push) Successful in 3m50s
Added support for custom headers
2025-12-13 21:26:54 +01: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 support for custom headers 2025-12-13 21:26:54 +01: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 Changed the wait configuration works 2025-11-20 16:38:21 +01: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 Merge branch 'main' of ssh://git-ssh.ctrlalt.cat:16384/maxim/kitty-pages 2025-11-20 16:39:04 +01: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 support for custom headers 2025-12-13 21:26:54 +01: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.