Caddy UI is a web frontend to interact with the Caddy server
- 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
,arm64
andarm32v7
CPU architectures - Runs without root
- Tiny Docker image of 11MB
- Docker image tags and sizes are available here
-
If you run Caddy in a container, make the admin api listen on
0.0.0.0:2019
and ensure Caddy's port2019
is reachable somehow (i.e. with-p 2019:2019/tcp
). You should also run caddy with--resume
so 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-ui
You can also use docker-compose with
docker-compose up -d
and 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 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 |
You can update the image with docker pull qmcgaw/caddy-ui
or use one of tags available
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
F1
and selectRemote-Containers: Open Folder in Container...
- Your dev environment is ready to go!... and it's running in a container 👍
- 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.
- Check editor content on upload click
- Change public icons and logos
- Unit tests
- Refresh modal
This repository is under an MIT license unless otherwise indicated