Select the types of activity you want to include in your feed.
add docker-compose deployment with custom binary support
Simple VPS deployment: lichen + caddy with on-demand TLS. Supports overriding the binary by dropping a custom build into bin/ — entrypoint detects and uses it automatically.
···11+# Lichen Docker Compose Deployment
22+33+Deploy lichen to any VPS with Docker.
44+55+## Quick start
66+77+1. Copy this directory to your server
88+2. Create `.env` from the example:
99+ ```bash
1010+ cp .env.example .env
1111+ # edit .env — set DOMAIN and ADMIN_PASSWORD
1212+ ```
1313+3. Point your domain's DNS A record to the server IP
1414+4. Start:
1515+ ```bash
1616+ docker compose up -d
1717+ ```
1818+5. Caddy automatically obtains a TLS certificate via Let's Encrypt
1919+2020+## Connect the CLI
2121+2222+```bash
2323+lm auth login --server https://your-domain.com --password
2424+lm sites list
2525+```
2626+2727+## Custom binary (optional)
2828+2929+To run a custom-built lichen-server instead of the image default:
3030+3131+```bash
3232+mkdir -p bin
3333+# build locally and copy, or scp from your dev machine:
3434+scp your-machine:path/to/target/release/lichen-server bin/
3535+docker compose restart app
3636+```
3737+3838+The entrypoint checks for `bin/lichen-server` and uses it if present.
3939+Remove the file and restart to revert to the standard image.
4040+4141+## Files
4242+4343+- `docker-compose.yml` — service definitions (app + caddy)
4444+- `entrypoint.sh` — startup script (admin user, custom binary check)
4545+- `Caddyfile` — HTTPS with on-demand TLS via Let's Encrypt
4646+- `.env.example` — configuration template
4747+- `bin/` — drop a custom lichen-server binary here (gitignored)