Skip to content
Trojan server and Caddy integration with docker compose
HTML Dockerfile Shell
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
caddy init Jan 10, 2020
trojan Merge branch 'master' of… Jan 10, 2020
wwwroot init Jan 10, 2020 Merge branch 'master' of… Jan 10, 2020
docker-compose.yml init Jan 10, 2020



Trojan server and Caddy integration with Docker compose。

Trojan server listens port 443. For https requests from normal sources, Trojan server will forward them to Caddy server for processing and return to the Web page while requests from Trojan client will be proxied by Trojan server which like V2ray+Websocket+TLS avoid GFW detection by disguising requests.

How to deploy:


Git clone this repo then change directory to this project.

  1. Modify ./caddy/Caddyfile: {
        root /usr/src/trojan
        log /usr/src/caddy.log
        index index.html
    } {
        root /usr/src/trojan
        log /usr/src/caddy.log
        index index.html

    Replace with your own domain name.

  2. Modify ./trojan/config/config.json:

    Change your_password to your own password on config:json:8 , this is your trojan password just safekeeping.

    Change your_domain_name to your own domain name on config:json:12-13, this is your domain ssl certification path, Caddy server generate certs automatically on the path /ssl/your_domain_name/your_domain_name.crt

  3. Run docker-compose up or docker-compose up -d with Daemon mode

  4. When each container is successfully built, it means that your Trojan and Caddy servers are working well.


If you encounter any problems during the deployment process, you can raise them in' issue' considering various unknown situations.

You can’t perform that action at this time.