$ xcaddy build --with github.com/imgk/caddy-trojan
{
order trojan before file_server
servers :443 {
listener_wrappers {
trojan
}
}
trojan {
caddy
no_proxy
users pass1234 word5678
}
}
:443, example.com {
tls [email protected] #optional,recommended
trojan {
connect_method
websocket
}
file_server {
root /var/www/html
}
}
{
"apps": {
"http": {
"servers": {
"srv0": {
"listen": [":443"],
"listener_wrappers": [{
"wrapper": "trojan"
}],
"routes": [{
"handle": [{
"handler": "trojan",
"connect_method": true,
"websocket": true
},
{
"handler": "file_server",
"root": "/var/www/html"
}]
}]
}
}
},
"trojan": {
"upstream": {
"upstream": "caddy"
},
"proxy": {
"proxy": "no_proxy"
},
"users": ["pass1234","word5678"]
},
"tls": {
"certificates": {
"automate": ["example.com"]
},
"automation": {
"policies": [{
"issuers": [{
"module": "acme",
"email": "[email protected]" //optional,recommended
},
{
"module": "zerossl",
"email": "[email protected]" //optional,recommended
}]
}]
}
}
}
}
- Add user.
curl -X POST -H "Content-Type: application/json" -d '{"password": "test1234"}' http://localhost:2019/trojan/users/add
git clone https://github.com/imgk/caddy-trojan
cd caddy-trojan/Dockerfiles
docker build -t caddy-trojan .
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