Giter Club home page Giter Club logo

caddy-ui's Introduction

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

caddy-ui's People

Contributors

qdm12 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.