Skip to main content

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.
note

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:

SettingWhat it overrides
templatessubscription templates by type (XRAY_JSON, MIHOMO, SINGBOX, and others)
subscriptionSettingsserveJsonAtBaseSubscription, isShowCustomRemarks, randomizeHosts
hostOverridesthe serverDescription and vlessRouteId of hosts
responseHeadersAdd / responseHeadersRemoveadd or remove HTTP response headers
hwidSettingsthe default device limit
customRemarksplaceholder texts for user statuses
subpageConfigUuidsubscription page configuration

Binding users and hosts​

What we bindWhereField
user → internal squadsuser card, Bulk actionsactiveInternalSquads
user → external squaduser cardexternalSquadUuid
host → nodeshost formnodes
host → squad restrictionhost forminternalSquads.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:

  1. global subscription settings;
  2. the settings of the user's external squad;
  3. host overrides and xrayJsonTemplateUuid;
  4. routing rules — they override the external squad, including the template name and headers.
tip

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.

warning

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 EXCLUDE and ALLOW_ONLY modes.
  • Routing rules — priority over external squads.
  • Templates — what is inserted into the subscription.