···2233A dead-simple index page for your homeserver, protected via OpenID Connect.
4455+## Deployment
66+77+### Configuration
88+99+#### KDL config for links
1010+1111+Ladon relies on a single KDL file for displaying your links. Here's an example:
1212+1313+```kdl
1414+group "Media" {
1515+ link "Plex" url="https://plex.mydomain.com"
1616+ link "Calibre CWA" url="https://calibre.mydomain.com"
1717+ link "Neko" url="https://<Tailscale IP>:8000"
1818+}
1919+2020+group "Collaboration" {
2121+ link "Jira" url="https://jira.myworkdomain.com"
2222+ link "Confluence" url="https://docs.myworkdomain.com"
2323+}
2424+```
2525+2626+The container image expects this file to be at `/data/links.kdl`, so you'll
2727+need to perform a volume binding at deploy time to ensure that file is
2828+available.
2929+3030+#### Environment Variables
3131+3232+After your config file, you'll need to set some environment variables for
3333+OpenID Connect. Bog-standard OAuth2 is not currently supported, since Ladon was
3434+mainly built with Pocket ID in mind.
3535+3636+**All value are required.**
3737+3838+| Variable Name | Description |
3939+| `SESSION_SECRET` | 16 character string used to encrypt and sign session cookies. Make sure this is a randomly-generated value. |
4040+| `OIDC_CLIENT_ID` | OAuth2 client ID from your OIDC provider. |
4141+| `OIDC_CLIENT_SECRET` | OAuth2 client secret from your OIDC provider. |
4242+| `OIDC_ISSUER` | Issuer of your OIDC provider. In the case of Pocket ID, this will be simply your root domain with protocol. For other OpenID providers, this should be the start of your discovery URL, i.e. your domain minus the `/.well-known/openid-configuriation` at the end. |
4343+| `LADON_DOMAIN` | Domain where you are hosting Ladon. This is required for informing your OpenID provider of the correct callback URL. |
4444+4545+### Starting Ladon
4646+4747+With the config out of the way, you can deploy Ladon with your container
4848+runtime of choice.
4949+5050+#### Docker Compose
5151+5252+```yaml
5353+# docker-compose.yml
5454+5555+services:
5656+ ladon:
5757+ image: ghcr.io/puregarlic/ladon
5858+ environment:
5959+ SESSION_SECRET: changemechangeme
6060+ OIDC_CLIENT_ID: changeme
6161+ OIDC_CLIENT_SECRET: qwfpjljujehnneharst
6262+ OIDC_ISSUER: https://oid.mydomain.com
6363+ LADON_DOMAIN: https://mydomain.com
6464+6565+ # If you'd rather use a dotenv file, comment the above and uncomment below:
6666+ # env_file: ".env"
6767+6868+ ports:
6969+ - "4000:4000"
7070+ volumes:
7171+ # In your data directory, make sure you've made `links.kdl`
7272+ - ./data:/data
7373+```
7474+7575+#### Quadlet
7676+7777+The below example assumes you want Ladon to start at boot, and that your
7878+environment variables are stored in a `.env` file located at `/my/environment/.env`.
7979+8080+```ini
8181+[Unit]
8282+Description="Links index"
8383+8484+[Container]
8585+AutoUpdate=registry
8686+Image=ghcr.io/puregarlic/ladon
8787+PublishPort=4000:4000tcp
8888+8989+# Update these values for your deployment
9090+Volume=/my/data/path:/data
9191+EnvironmentFile=/my/environment/.env
9292+9393+[Install]
9494+WantedBy=default.target
9595+```
9696+9797+## Potentially-Asked Questions
9898+9999+> Can I theme my page?
100100+101101+Not at this time, but potentially in the future. The current theme is Rose Pine,
102102+if you want to look it up.
103103+104104+> Can I add extra data to my links, e.g. descriptions?
105105+106106+Not at this time again, but maybe in the future. If you really want, you can
107107+nest groups, but there's really no significant difference in the formatting as
108108+a result of doing such.
109109+110110+> Can I show certain links to certain users?
111111+112112+Nope, but maybe--you guessed it--in the future. Contributions are welcome!
113113+114114+> Why Ladon?
115115+116116+According to [Wikipedia](https://en.wikipedia.org/wiki/Ladon_(mythology)),
117117+_Ladon was the serpent-like dragon that twined and twisted around the tree in
118118+the Garden of the Hesperides and guarded the golden apples._ The apps on
119119+your homeserver are kind of like golden apples (for hackers), so maybe this
120120+program can be the serpent-like dragon to guard them for you.
121121+122122+At least on the surface, anyway. It's worth noting that Ladon is not a
123123+replacement for safely and securely configuring your applications. Ladon was
124124+only designed to make the lives of your friends and family easier without
125125+broadcasting an itemized list of potential vulnerabilities.