From 1c8243dbaa188ba9d0243769a6898386bfeec299 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Sun, 16 Aug 2026 18:03:40 +0800 Subject: [PATCH] =?UTF-8?q?docker:=20docker=20=E7=9B=B8=E5=85=B3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=94=BE=E5=88=B0=20docker=20=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/README.org | 16 +++++++ .../V2RayA-RoutingA.conf | 0 docker/xray-config.json | 44 ++++++++++++++++++ docker/y480.yaml | 30 ++++++++++++ note/account.org.gpg | Bin 4712 -> 4934 bytes 5 files changed, 90 insertions(+) create mode 100644 docker/README.org rename V2RayA-RoutingA.conf => docker/V2RayA-RoutingA.conf (100%) create mode 100644 docker/xray-config.json create mode 100644 docker/y480.yaml diff --git a/docker/README.org b/docker/README.org new file mode 100644 index 0000000..eaca0d2 --- /dev/null +++ b/docker/README.org @@ -0,0 +1,16 @@ +#+title: docker 配置说明 + +每个及其需要用到的 docker 都通过 =docker-compose.yaml= 配置,避免每次升级都自己手动写命令行。 + +* 文件用途 + +| 文件 | 说明 | +|----------------------+--------------------------------| +| y480.yaml | 家用服务器 docker compose 配置 | +| xray-config.json | xray 服务器配置 | +| V2RayA-RoutingA.conf | V2rayA 路由配置 | + +* docker 镜像对应的 git 仓库 + +- https://github.com/ronggang/OWSS +- https://github.com/v2rayA/v2rayA diff --git a/V2RayA-RoutingA.conf b/docker/V2RayA-RoutingA.conf similarity index 100% rename from V2RayA-RoutingA.conf rename to docker/V2RayA-RoutingA.conf diff --git a/docker/xray-config.json b/docker/xray-config.json new file mode 100644 index 0000000..421dfac --- /dev/null +++ b/docker/xray-config.json @@ -0,0 +1,44 @@ +{ + "log": { + "loglevel": "warning", + "access": "/var/log/xray/access.log", + "error": "/var/log/xray/error.log" + }, + "inbounds": [ + { + "listen": "0.0.0.0", + "port": 443, + "protocol": "vless", + "settings": { + "clients": [ + { + "id": "817a867d-7bcf-48d1-b30e-5c6794852e13", + "flow": "xtls-rprx-vision" + } + ], + "decryption": "none", + "udp": true + }, + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "dest": "dl.google.com:443", + "serverNames": ["www.cloudflare.com"], + "privateKey": "uJQs7FOMjafiU-7kxOUpfJut8ocj5kpr_p-zH7RTt1g", + "shortIds": ["1e21014957dfc7a9"] + } + }, + "sniffing": { + "enabled": true, + "destOverride": ["http", "tls", "quic"] + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "tag": "direct" + } + ] +} diff --git a/docker/y480.yaml b/docker/y480.yaml new file mode 100644 index 0000000..0d89629 --- /dev/null +++ b/docker/y480.yaml @@ -0,0 +1,30 @@ +services: + owss: + image: ronggang/owss:latest + container_name: owss + restart: always + privileged: true + # host 模式和 bridge 模式二选一 + network_mode: host + # ports: + # - "8088:8088" + volumes: + - /OWSS/storage:/app/storage + - /OWSS/config:/app/config + + v2raya: + image: mzz2017/v2raya:latest + container_name: v2raya + restart: always + privileged: true + network_mode: host + volumes: + - /lib/modules:/lib/modules:ro + - /etc/resolv.conf:/etc/resolv.conf + - /etc/v2raya:/etc/v2raya + environment: + # V2RAYA_V2RAY_BIN: /usr/local/bin/v2ray # 老版本用这个,要开 xray 不设置这个环境变量 + # V2RAYA_V2RAY_BIN: /usr/bin/v2raya_core # 新版本用这个,或者不设置这个环境变量 + V2RAYA_LOG_FILE: /tmp/v2raya.log + V2RAYA_NFTABLES_SUPPORT: off + IPTABLES_MODE: legacy diff --git a/note/account.org.gpg b/note/account.org.gpg index 969a1fcb66923b88cd76758eb82796476cc06585..5f234c41048d5253b73ed3b12696ce3ba8d961fc 100644 GIT binary patch literal 4934 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 EdXVmxOaK4? literal 4712 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 qyn|ac|oKxj+0|XYp#iwK*G9jfGv|SlpHZarx