Squads
A squad is a group the panel uses to lay out settings. Internal squads answer the question "which inbounds is there access to"; external ones answer "in what form is the subscription served".
Internal squadsâ
An internal squad is a named set of inbounds. A user is added to one or more squads and gets access only to those hosts whose inbound is part of his squads.
- Internal Squads â Create: a name (2â30 characters) and a list of inbounds;
- one inbound can belong to several squads;
- users are added to a squad one by one or in bulk;
- deleting a squad takes access away from all its members.
A squad does not create inbounds. The inbound must first exist in the config profile, then a node must enable it, and only then can it be added to a squad.
External squadsâ
An external squad is a group of users with shared overrides. A user can belong to only one external squad. The following is configurable:
| Setting | What it overrides |
|---|---|
templates | subscription templates by type (XRAY_JSON, MIHOMO, SINGBOX, and others) |
subscriptionSettings | serveJsonAtBaseSubscription, isShowCustomRemarks, randomizeHosts |
hostOverrides | the serverDescription and vlessRouteId of hosts |
responseHeadersAdd / responseHeadersRemove | add or remove HTTP response headers |
hwidSettings | the default device limit |
customRemarks | placeholder texts for user statuses |
subpageConfigUuid | subscription page configuration |
Binding users and hostsâ
| What we bind | Where | Field |
|---|---|---|
| user â internal squads | user card, Bulk actions | activeInternalSquads |
| user â external squad | user card | externalSquadUuid |
| host â nodes | host form | nodes |
| host â squad restriction | host form | internalSquads.mode |
The host mode ALLOW_ONLY means "show only to members of the selected squads",
EXCLUDE means "hide from members of the selected squads".
Order of applicationâ
Settings are layered on top of each other, and whatever is applied later wins:
- global subscription settings;
- the settings of the user's external squad;
- host overrides and
xrayJsonTemplateUuid; - routing rules â they override the external squad, including the template name and headers.
If you want to check what exactly a user receives, open his subscription in the client after clearing the cache: the panel assembles the response anew every time, and clients like to show stale data.
An external squad does not grant access. If an inbound is not part of the user's internal squad, no overrides will make the host visible.
What's nextâ
- Users â binding to squads.
- Hosts â the
EXCLUDEandALLOW_ONLYmodes. - Routing rules â priority over external squads.
- Templates â what is inserted into the subscription.