Skip to content
forked from qdm12/caddy-ui

UI for the Caddy proxy server

License

Notifications You must be signed in to change notification settings

rielcfb/caddy-ui

 
 

Repository files navigation

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!

Web build status Docker build status

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, arm64 and arm32v7 CPU architectures
  • Runs without root
  • Tiny Docker image of 11MB
  • Docker image tags and sizes are available here

Setup

  1. If you run Caddy in a container, make the admin api listen on 0.0.0.0:2019and ensure Caddy's port 2019 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.

  2. 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
  3. 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.

  1. Setup your environment

    Using VSCode and Docker

    1. 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
    2. With Visual Studio Code, install the remote containers extension
    3. In Visual Studio Code, press on F1 and select Remote-Containers: Open Folder in Container...
    4. Your dev environment is ready to go!... and it's running in a container 👍

    Locally

    Install Nodejs and Docker, with eventually yarn

  2. 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 .
  3. 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

About

UI for the Caddy proxy server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 79.6%
  • HTML 8.9%
  • JavaScript 7.4%
  • Dockerfile 2.1%
  • CSS 2.0%