Skip to content

reddec/caddy-page

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caddy Page

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

image

Screencastfrom2024-06-2122-39-06-ezgif com-video-to-gif-converter

Features

  • 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.

Deploy

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

Configuration

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 page
  • links (array): array of links

Each link:

  • name (string): visible name of entry
  • href (string): remote link
  • tags (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.

TLS

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

Contribution

Contributions are welcome! If you have ideas for improvements or new features, feel free to fork the repository and submit a pull request.

License

This project is licensed under the MIT License.