├── heroku.yml ├── app.json ├── Dockerfile ├── README.md └── entrypoint.sh /heroku.yml: -------------------------------------------------------------------------------- 1 | build: 2 | docker: 3 | web: Dockerfile 4 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "V2Ray", 3 | "description": "Deploy V2Ray to Heroku.", 4 | "keywords": ["V2Ray"], 5 | "env": { 6 | "UUID": { 7 | "description": "VMess client UUID", 8 | "value": "91cb66ba-a373-43a0-8169-33d4eeaeb857" 9 | } 10 | }, 11 | "stack": "container", 12 | "website": "https://github.com/xiaokaixuan/v2ray-heroku", 13 | "repository": "https://github.com/xiaokaixuan/v2ray-heroku" 14 | } 15 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.6 2 | 3 | ENV VER=4.40.1 4 | ENV PORT=8080 5 | ENV DOMAIN= 6 | ENV UUID=91cb66ba-a373-43a0-8169-33d4eeaeb857 7 | 8 | RUN apk add --no-cache curl \ 9 | && cd /root && mkdir /v2ray \ 10 | && curl -OsL https://github.com/xiaokaixuan/v2ray-heroku/releases/download/v$VER/v2ray-linux-64.zip \ 11 | && unzip v2ray-linux-64.zip -d /v2ray \ 12 | && cd /v2ray && chmod a+x v2ray v2ctl \ 13 | && rm -rf /root/v2ray-linux-64.zip 14 | 15 | COPY entrypoint.sh /root/ 16 | RUN chmod a+x /root/entrypoint.sh 17 | 18 | CMD exec /root/entrypoint.sh 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 一键部署 V2Ray 到 Heroku [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) 2 | 3 | > 1. 部署时VLess协议的`UUID`默认`91cb66ba-a373-43a0-8169-33d4eeaeb857`。 4 | 5 | > 2. 服务端部署后,应`open app`,显示`Bad Request`,表示部署成功。 6 | 7 | > 3. 客户端可使用`Websocket`端口`80`,或`Websocket+TLS`端口`443`传输。 8 | 9 | > 4. 部署到VPS时,域名变量`DOMAIN`和`docker cp`拷入证书即可开启TLS。 10 | > ```sh 11 | > /v2ray/cert.pem 12 | > /v2ray/key.pem 13 | > ``` 14 | 15 | [V2ray-core下载](https://github.com/coko8023/v2ray-heroku/releases/tag/v4.40.1) 16 | 17 | ### 参考 18 | *https://github.com/v2fly/v2ray-core* 19 | 20 | *https://github.com/onplus/v2hero* 21 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd /v2ray 4 | 5 | CONFIG_TLS=${DOMAIN:+,\"security\":\"tls\",\"tlsSettings\":{\"serverName\":\"${DOMAIN}\",\"certificates\":[{\"certificateFile\":\"cert.pem\",\"keyFile\":\"key.pem\"\}]\}} 6 | CONFIG_JSON1={\"log\":{\"access\":\"\",\"error\":\"\",\"loglevel\":\"warning\"},\"inbounds\":[{\"protocol\":\"vless\",\"port\": 7 | CONFIG_JSON2=,\"settings\":{\"clients\":[{\"id\":\" 8 | [ ${CONFIG_TLS} ] && [ ! -e cert.pem -o ! -e key.pem ] && CONFIG_TLS= 9 | CONFIG_JSON3=\"}],\"decryption\":\"none\"},\"streamSettings\":{\"network\":\"ws\"${CONFIG_TLS}}}],\"outbounds\":[{\"protocol\":\"freedom\",\"settings\":{}}]} 10 | 11 | echo -e -n "$CONFIG_JSON1" > config.json 12 | echo -e -n "$PORT" >> config.json 13 | echo -e -n "$CONFIG_JSON2" >> config.json 14 | echo -e -n "$UUID" >> config.json 15 | echo -e -n "$CONFIG_JSON3" >> config.json 16 | 17 | exec /v2ray/v2ray -config config.json 18 | 19 | --------------------------------------------------------------------------------