{"id":15631324,"url":"https://github.com/imgk/caddy-trojan","last_synced_at":"2025-10-17T07:22:29.964Z","repository":{"id":40550501,"uuid":"304174176","full_name":"imgk/caddy-trojan","owner":"imgk","description":"Caddy module for trojan proxy","archived":false,"fork":false,"pushed_at":"2025-04-13T05:36:49.000Z","size":344,"stargazers_count":218,"open_issues_count":2,"forks_count":48,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-14T01:04:21.077Z","etag":null,"topics":["caddy","caddy-trojan","trojan-gfw"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imgk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-15T01:09:22.000Z","updated_at":"2025-04-13T05:31:15.000Z","dependencies_parsed_at":"2024-04-12T02:47:03.683Z","dependency_job_id":"6cc1c597-fb2b-451c-9259-9618929cc6be","html_url":"https://github.com/imgk/caddy-trojan","commit_stats":null,"previous_names":["imgk/caddy-trojan-go"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgk%2Fcaddy-trojan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgk%2Fcaddy-trojan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgk%2Fcaddy-trojan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgk%2Fcaddy-trojan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imgk","download_url":"https://codeload.github.com/imgk/caddy-trojan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804803,"owners_count":21164134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caddy","caddy-trojan","trojan-gfw"],"created_at":"2024-10-03T10:39:57.812Z","updated_at":"2025-10-17T07:22:29.935Z","avatar_url":"https://github.com/imgk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Caddy-Trojan -- A Caddy Module for Trojan Proxy\n\n## Build with xcaddy\n```\n$ xcaddy build --with github.com/imgk/caddy-trojan\n```\n\n##  Config (Caddyfile)\n```\n{\n\torder trojan before file_server\n\tservers :443 {\n\t\tlistener_wrappers {\n\t\t\ttrojan\n\t\t}\n\t}\n\ttrojan {\n\t\tcaddy\n\t\t# memory\n\n\t\tno_proxy\n\t\t# env_proxy\n\t\t# socks_proxy server user passwd\n\t\t# socks_proxy server\n\t\t# http_proxy server user passwd\n\t\t# http_proxy server\n\t\t# named_proxy proxy_name proxy_type args...\n\n\t\tusers pass1234 word5678\n\t}\n}\n:443, example.com {\n\ttls your@email.com #optional,recommended\n\ttrojan {\n\t\tconnect_method\n\t\twebsocket\n\t}\n\tfile_server {\n\t\troot /var/www/html\n\t}\n}\n```\n##  Config (JSON)\n```\n{\n  \"apps\": {\n    \"http\": {\n      \"servers\": {\n        \"srv0\": {\n          \"listen\": [\":443\"],\n          \"listener_wrappers\": [{\n            \"wrapper\": \"trojan\",\n            \"proxy_name\": \"proxy_2\"\n          }],\n          \"routes\": [{\n            \"handle\": [{\n              \"handler\": \"trojan\",\n              \"connect_method\": true,\n              \"websocket\": true,\n              \"proxy_name\": \"proxy_3\"\n            },\n            {\n              \"handler\": \"file_server\",\n              \"root\": \"/var/www/html\"\n            }]\n          }]\n        }\n      }\n    },\n    \"trojan\": {\n      \"named_proxy\": {\n        \"proxy_1\": {\n          \"proxy\": \"none\"\n        },\n        \"proxy_2\": {\n          \"proxy\": \"socks\",\n          \"server\": \"127.0.0.1:1080\"\n        },\n        \"proxy_3\": {\n          \"proxy\": \"http\",\n          \"server\": \"127.0.0.1:8080\"\n        }\n      },\n      \"proxy\": { //optional\n        \"proxy\": \"none\"\n      },\n      \"upstream\": { //optional\n        \"upstream\": \"caddy\"\n      },\n      \"users\": [\"pass1234\",\"word5678\"]\n    },\n    \"tls\": {\n      \"certificates\": {\n        \"automate\": [\"example.com\"]\n      },\n      \"automation\": {\n        \"policies\": [{\n          \"issuers\": [{\n            \"module\": \"acme\",\n            \"email\": \"your@email.com\" //optional,recommended\n          },\n          {\n            \"module\": \"acme\",\n            \"ca\": \"https://acme.zerossl.com/v2/DV90\",\n            \"email\": \"your@email.com\" //optional,recommended\n          }]\n        }]\n      }\n    }\n  }\n}\n```\n\n## Manage Users\n\n1. Add user.\n```\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"password\": \"test1234\"}' http://localhost:2019/trojan/users/add\n```\n\n## Docker\n\n```\ngit clone https://github.com/imgk/caddy-trojan\ncd caddy-trojan/Dockerfiles\ndocker build -t caddy-trojan .\ndocker run --env MYPASSWD=MY_PASSWORD --env MYDOMAIN=MY_DOMAIN.COM -itd --name caddy-trojan --restart always -p 80:80 -p 443:443 caddy-trojan\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgk%2Fcaddy-trojan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimgk%2Fcaddy-trojan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgk%2Fcaddy-trojan/lists"}