Skip to content

Develop#1

Merged
findias merged 13 commits intomainfrom
develop
Mar 20, 2026
Merged

Develop#1
findias merged 13 commits intomainfrom
develop

Conversation

@findias
Copy link
Copy Markdown
Contributor

@findias findias commented Mar 20, 2026

No description provided.

findias and others added 13 commits March 20, 2026 15:02
- 050-api: remove duplicate "stats":{} — already defined in 010-stats.json.j2,
  duplicate top-level key causes Xray to reject split config
- 400-routing: move blocked domains rule before freedom catch-all — previously
  all inbound traffic matched the first rule (freedom) so ad blocking never fired;
  correct order: blocked → api → freedom
- 210-in-xhttp: add routeOnly:true to sniffing, consistent with VLESS-reality inbound

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- defaults: add xray_vless_decryption variable ("none" by default)
  supports postquantum cipher string (mlkem768x25519plus.native.0rtt.*)
- defaults: document xray_reality.mldsa65_seed and mldsa65_verify
  in secrets.yml example with generation command (xray mldsa65)
- 200-in-vless-reality, 210-in-xhttp: dynamic decryption field via
  xray_vless_decryption; conditional mldsa65Seed/mldsa65Verify in
  realitySettings when variables are defined
- 240-in-vless-users: fix hardcoded flow "" -> user.flow with default
  fallback; fix decryption to use xray_vless_decryption; remove
  incorrect "security" field from settings block
- 230-in-xhttp-users: dynamic decryption field
- README: document MLDSA65 + new encryption setup, key variables table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- defaults: trim MLDSA65 comment block and vless_decryption
  comments to < 80 chars per line
- templates: replace long {% if ... is defined and ... %} conditions
  with {% set _seed / _verify %} + {% if %} (max 72 chars per line)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When xray_vless_decryption is set to a non-none cipher string,
xtls-rprx-vision is required. All four inbound/user templates now
auto-set flow to xtls-rprx-vision if _pq is true.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds xray_vless_encryption default variable (default: "none").
Each client entry now includes an encryption field that auto-syncs
with xray_vless_decryption when PQ mode is active, or falls back
to per-user user.encryption / xray_vless_encryption otherwise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Xray rejects "encryption" in inbound settings — it is only valid
in outbound (client-side) configs. Removed from all 4 templates
and cleaned up the unused xray_vless_encryption default var.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New validate.yml runs before any config is deployed (tags: always).
Fails immediately with a clear message if xray_vless_decryption is
not "none", xray_users is empty, or xray_reality keys are missing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DoH servers (https://) route through the Xray proxy chain and fail
with "io: read/write on closed pipe" when the connection is reused
after being closed. Switch to tcp+local://8.8.8.8 and tcp+local://1.1.1.1
which bypass the proxy. Added validation assert to catch DoH in user vars.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Templates 210 and 230 were ignoring user.flow and always outputting "".
Now they read user.flow (default '') so xtls-rprx-vision is set
when defined per user, consistent with templates 200 and 240.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ncryption

Xray role:
- defaults/main.yml: add xray_vless_decryption/xray_vless_client_encryption vars,
  full raven_subscribe_* vars block, remove mldsa65 references
- validate.yml: assert xray_vless_decryption format and client encryption consistency
- inbounds: remove mldsa65 blocks, use decryption/flow logic for VLESS Encryption
- handlers/main.yml: fix handler order (Validate before Restart to catch invalid configs)
- tasks/main.yml: import raven_subscribe.yml task

Raven-subscribe deploy (new):
- tasks/raven_subscribe.yml: download binary, deploy config, install systemd service
- templates/raven-subscribe/config.json.j2: config template with vless_client_encryption
- templates/raven-subscribe/xray-subscription.service.j2: hardened systemd unit

Cleanup:
- Remove obsolete config.json.j2 and main.yml.bak

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…_domains

- render_overrides.yml: xray_blocked_domains: [] to avoid geosite.dat lookup in CI
- 400-routing.json.j2: wrap blocked domains rule in length > 0 guard to prevent
  invalid empty domain array; clean up comma handling with inline trailing commas
@findias findias merged commit adecf27 into main Mar 20, 2026
1 check passed
findias added a commit that referenced this pull request Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant