Caddy Page is a minimalist start page designed for simplicity and speed. This project aims to provide a clean and efficient browsing experience, focusing on performance and configurability.
There are dozens (maybe hundreds) of them, this is just yet another one.
See demo site (please be gently!) https://demo-page.reddec.net
- Minimalistic Design: straightforward interface that emphasizes usability and aesthetics.
- No JavaScript: rhe start page can function without JavaScript, though the search feature requires it.
- Powered by Caddy Server
- Easy to extend and configure: nothing else then just plain JS, CSS, and server-side templates.
- Multi-Term Search: supports advanced search functionality where each term (word, separated by space) sequentially enhances the filter, providing more precise results. Keyboard friendly (
/
to open search,enter
to open link,esc
to close) - Fast and lightweight: designed to be quick and responsive, keeping in mind a smooth user experience even on slower connections.
docker run --rm -p 8080:80 -v $(pwd)/config.json:/usr/share/caddy/config/config.json:ro ghcr.io/reddec/caddy-page
Demo mode
docker run --rm -p 8080:80 ghcr.io/reddec/caddy-page
Simple
Sample config.json
{
"title": "Start page",
"links": [
{
"name": "Google",
"href": "https://google.com",
"tags": [
"search",
"find"
]
},
{
"name": "DuckDuckGo",
"href": "https://ddg.gg",
"tags": [
"search",
"find",
"free",
"ddg",
"privacy"
]
},
{
"name": "GitHub",
"href": "https://github.com",
"tags": [
"git"
]
},
{
"name": "Codeberg",
"href": "https://codeberg.org/",
"tags": [
"git",
"open-source",
"free"
]
}
]
}
title
(string): title and name of pagelinks
(array): array of links
Each link:
name
(string): visible name of entryhref
(string): remote linktags
(array of string): optional tags which can be used during search. First tag will be shown under pill.
Deep dive
To customize the start page, you can modify the HTML and CSS files according to your preferences. The structure is simple and well-documented to facilitate easy changes.
Caddy supports TLS by default. Just update Caddyfile. For example:
Caddyfile
example.com {
root * /usr/share/caddy/
handle_path /static/* {
root * /usr/share/caddy/static
file_server
}
handle / {
root * /usr/share/caddy/templates
file_server
templates {
root /usr/share/caddy/config
}
}
}
and run it as
docker run --rm -p 80:80 -p 443:443 -v $(pwd)/Caddyfile:/etc/caddy/Caddyfile:ro -v $(pwd)/data:/data -v $(pwd)/config.json:/usr/share/caddy/config/config.json:ro ghcr.io/reddec/caddy-page
$(pwd)/data:/data
needed for TLS cache
Contributions are welcome! If you have ideas for improvements or new features, feel free to fork the repository and submit a pull request.
This project is licensed under the MIT License.