github.com/imgk/caddy-trojan@v0.0.0-20221206043256-2631719e16c8/README.md (about) 1 # Caddy-Trojan 2 3 ## Build with xcaddy 4 ``` 5 $ xcaddy build --with github.com/imgk/caddy-trojan 6 ``` 7 8 ## Config (Caddyfile) 9 ``` 10 { 11 order trojan before file_server 12 servers :443 { 13 listener_wrappers { 14 trojan 15 } 16 } 17 trojan { 18 caddy 19 no_proxy 20 users pass1234 word5678 21 } 22 } 23 :443, example.com { 24 tls your@email.com #optional,recommended 25 trojan { 26 connect_method 27 websocket 28 } 29 file_server { 30 root /var/www/html 31 } 32 } 33 ``` 34 ## Config (JSON) 35 ``` 36 { 37 "apps": { 38 "http": { 39 "servers": { 40 "srv0": { 41 "listen": [":443"], 42 "listener_wrappers": [{ 43 "wrapper": "trojan" 44 }], 45 "routes": [{ 46 "handle": [{ 47 "handler": "trojan", 48 "connect_method": true, 49 "websocket": true 50 }, 51 { 52 "handler": "file_server", 53 "root": "/var/www/html" 54 }] 55 }] 56 } 57 } 58 }, 59 "trojan": { 60 "upstream": { 61 "upstream": "caddy" 62 }, 63 "proxy": { 64 "proxy": "no_proxy" 65 }, 66 "users": ["pass1234","word5678"] 67 }, 68 "tls": { 69 "certificates": { 70 "automate": ["example.com"] 71 }, 72 "automation": { 73 "policies": [{ 74 "issuers": [{ 75 "module": "acme", 76 "email": "your@email.com" //optional,recommended 77 }, 78 { 79 "module": "zerossl", 80 "email": "your@email.com" //optional,recommended 81 }] 82 }] 83 } 84 } 85 } 86 } 87 ``` 88 89 ## Manage Users 90 91 1. Add user. 92 ``` 93 curl -X POST -H "Content-Type: application/json" -d '{"password": "test1234"}' http://localhost:2019/trojan/users/add 94 ``` 95 96 ## Docker 97 98 ``` 99 git clone https://github.com/imgk/caddy-trojan 100 cd caddy-trojan/Dockerfiles 101 docker build -t caddy-trojan . 102 docker run --env MYPASSWD=MY_PASSWORD --env MYDOMAIN=MY_DOMAIN.COM -itd --name caddy-trojan --restart always -p 80:80 -p 443:443 caddy-trojan 103 ```