feat: multi-role architecture, public release preparation#5
Merged
Conversation
…ides - Add nginx_frontend and relay roles to What you get list - Update Quick Start: separate secrets files per role, separate deploy commands - Update Secrets section: document raven_subscribe/defaults/secrets.yml with inbound_hosts/inbound_ports example - Update Configuration: add xray_dns_query_strategy, raven_subscribe_inbound_hosts/ports - Update Architecture: show full EU+RU server topology and client connection flow - roles/xray/README.md: remove xray_vless_default_flow (removed from templates)
findias
added a commit
that referenced
this pull request
Apr 4, 2026
docs: update README for multi-role architecture and per-inbound overr…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full refactor of the repository into separate Ansible roles with dual-server support (EU + RU VPS), plus preparation for public release.
New roles
raven_subscribe— standalone subscription server deployment, decoupled from xray/sing-box. Supports per-inboundinbound_hosts/inbound_portsoverrides so all VLESS protocols route through a single domain.nginx_frontend— TLS reverse proxy on EU VPS. Listens on port 8443 (port 443 reserved by Xray Reality). Adds nginx stream TCP passthrough on port 8445 → 127.0.0.1:443 for Reality clients.relay— nginx reverse proxy on RU VPS. TCP stream relay 8444 → EU:8445 routes VLESS Reality through the RU server. Serves a static stub site as camouflage.xray role changes
UseIP → UseIPv4to prevent IPv6network is unreachableerrors on servers without global IPv6sing-box
Public release preparation
roles/hosts.yml.example(safe template, no real IPs/usernames)example.comin defaults, templates, inventory, and playbook commentsroles/xray/exampl/directoryroles/xray/tasks/raven_subscribe.ymlArchitecture after this PR
Test plan
./tests/run.shpasses (Ansible render + xray -test)role_xray.yml— Xray starts, inbounds on 443/2053role_nginx_frontend.yml— nginx on 8443, stream on 8445role_raven_subscribe.yml— subscription returns correct addressesrole_relay.yml— relay proxies to EU correctly