Caddy UI
Caddy UI is a web frontend to interact with the Caddy server
⚠️ This is under heavy development, expect some breaking changes or non functional images!
Features
- Edit your Caddy server configuration in JSON or YML
- Works with Caddy v2.0.0 (you can use this Docker image)
- Compatible with
amd64,386,arm64andarm32v7CPU architectures - Runs without root
- Tiny Docker image of 11MB
- Docker image tags and sizes are available here
Setup
-
If you run Caddy in a container, make the admin api listen on
0.0.0.0:2019and ensure Caddy's port2019is reachable somehow (i.e. with-p 2019:2019/tcp). You should also run caddy with--resumeso that it uses its auto saved json configuration when it is restarted. -
Run this container:
docker run -d -p 8000:8000/tcp -e CADDY_API_ENDPOINT="http://somehost:2019" qmcgaw/caddy-uiYou can also use docker-compose with
docker-compose up -dand the following docker-compose.yml:version: "3.7" services: caddy: image: qmcgaw/caddy-scratch container_name: caddy command: --resume expose: - 2019:2019/tcp ports: - 8080:8080/tcp - 8443:8443/tcp environment: - TZ= caddy-ui: image: qmcgaw/caddy-ui ports: - 8000:8000/tcp environment: - CADDY_API_ENDPOINT=http://caddy:2019 -
Access the web app at http://localhost:8000.
Environment variables
| Environment variable | Default | Description |
|---|---|---|
CADDY_API_ENDPOINT | http://localhost:2019 | Caddy API endpoint address |
LOG_ENCODING | console | Logging format, can be json or console |
LOG_LEVEL | info | Logging level, can be debug, info, warning, error |
NODE_ID | -1 | Node ID for logger (-1 to disable) |
LISTENING_PORT | 8000 | Internal listening TCP port |
ROOT_URL | / | URL path, used if behind a reverse proxy |
TZ | America/Montreal | Timezone string |
CORS_WHITELIST | Comma separated list of hosts to whitelist for CORS, use only for development |
Update
You can update the image with docker pull qmcgaw/caddy-ui or use one of tags available
Development
You might want to first refer to the Caddy UI Server repository which contains more architectural information and contains this repository as a Git submodule.
-
Setup your environment
Using VSCode and Docker
- Install Docker
- On Windows, share a drive with Docker Desktop and have the project on that partition
- On OSX, share your project directory with Docker Desktop
- With Visual Studio Code, install the remote containers extension
- In Visual Studio Code, press on
F1and selectRemote-Containers: Open Folder in Container... - Your dev environment is ready to go!... and it's running in a container :+1:
- Install Docker
-
Commands available:
# Starts the development server with ts-node yarn start # Test the code yarn test # Lint the code yarn lint # Build the app for production yarn build # Build the Docker image docker build -t qmcgaw/caddy-ui . -
See Contributing for more information on how to contribute to this repository.
TODOs
- Check editor content on upload click
- Change public icons and logos
- Unit tests
- Refresh modal
License
This repository is under an MIT license unless otherwise indicated
UI for the Caddy proxy server