Squads
Manage user access with Squads — group users and control which nodes and protocols they can reach.
What Are Squads?
Squads are access-control groups that determine which nodes and protocol inbounds a user can connect to. Every user belongs to exactly one squad, and every squad defines which hosts (config profiles) are included in its members' subscriptions.
Default-Squad
Every V2RayTun installation comes with a built-in Default-Squad. It has special behavior:
- Auto-sync — whenever a new node or inbound is created, Default-Squad automatically includes it. You never need to manually update it.
- All new users are assigned to Default-Squad unless you specify otherwise.
- Default-Squad cannot be deleted.
This makes the zero-config experience seamless: add a node, and every user in Default-Squad immediately gets access.
Creating a Custom Squad
- Navigate to Squads → Add Squad.
- Enter a name (e.g., "Premium", "Staff", "Region-EU").
- Select which hosts (config profiles) this squad should include.
- Save.
Custom squads do not auto-sync. You manually choose which hosts are available.
Assigning Users to a Squad
During User Creation
Select the squad from the dropdown when creating a new user.
Changing an Existing User's Squad
- Go to Users and click the user.
- Change the Squad field.
- Save.
The user's subscription updates immediately to reflect the new squad's host list.
Host Exclusions
Within a squad you can exclude specific hosts, giving you fine-grained control:
- Include all hosts from a node except a specific protocol.
- Offer different server sets to different user tiers.
Example Setup
| Squad | Hosts Included | Use Case |
|---|---|---|
| Default-Squad | All (auto-sync) | Free-tier / general users |
| Premium | All nodes, all protocols | Paid users with full access |
| EU-Only | EU node hosts only | Region-locked users |
| Staff | All + internal nodes | Internal team |
Impact on Subscriptions
A user's subscription URL always returns only the configs permitted by their squad. If a host is removed from a squad, it disappears from every member's subscription on the next fetch.
See Subscriptions for details on how subscription output is generated.