feat(admin,api): restrict community creation on self-hosted (#3055)

This commit is contained in:
omster
2026-09-30 16:32:45 +02:00
committed by GitHub
parent ab4069ed0e
commit ca719e7b5e
95 changed files with 508 additions and 13 deletions
@@ -298,6 +298,7 @@ Community, direct message, premium and gating policy for the whole deployment.
| single_community_guild_id | ?string | Guild used as that community, or null before one has been created |
| direct_messages_disabled | boolean | Whether direct messages are disabled |
| direct_messages_locked<sup>1</sup> | boolean | Whether the direct message setting is locked against further change |
| guild_create_access | boolean | Whether every account can create communities, or only admins and holders of the `feature_guild_create` limit |
| premium_mode | string | [Premium mode](#premium-modes) |
| services | object | Operator overrides for `gif_enabled`, `youtube_enabled`, and `bluesky_enabled`. Each is nullable, and null means no override |
| services_resolved<sup>2</sup> | object | The same keys as concrete booleans, resolved from the override and the provider's own availability |
@@ -630,6 +631,7 @@ Fluxer skips URL validation while the merged configuration leaves single sign-on
| single_community_name?<sup>1</sup> | string | Name used only when the community has to be created (1-100 characters) |
| direct_messages_disabled?<sup>2</sup> | boolean | Whether direct messages are disabled |
| direct_messages_locked?<sup>2</sup> | boolean | Whether the direct message setting stays locked |
| guild_create_access? | boolean | Whether every account can create communities |
| premium_mode? | string | [Premium mode](#premium-modes) |
| services? | object | Nullable `gif_enabled`, `youtube_enabled`, and `bluesky_enabled` overrides |
@@ -448,6 +448,10 @@ One or more selected users can't be added to this group DM
Email verification is required for this action
### `GUILD_CREATION_PERMISSION_REQUIRED`
You don't have permission to create communities on this instance
### `GUILD_EMAIL_VERIFICATION_REQUIRED`
Email verification is required for this action
@@ -197,6 +197,7 @@ Whether this deployment runs as one community, and whether direct messages exist
| single_community | boolean | Whether this deployment runs as one community that every account joins |
| single_community_guild_id<sup>1</sup> | ?snowflake | The ID of the guild every account joins in single-community mode, or null |
| direct_messages_disabled | boolean | Whether direct messages and friend requests are disabled for the whole deployment |
| guild_create_access | boolean | Whether every account can create communities, or only admins and holders of the `feature_guild_create` limit |
<sup>1</sup> The identifier is published only while `single_community` is true and the deployment has designated a community guild
@@ -319,6 +320,7 @@ Each key names one limit. A key whose name begins with `feature_` is a feature g
| feature_custom_notification_sounds | Allow custom notification sounds, in user scope |
| feature_early_access | Access to beta features, in user scope |
| feature_global_expressions | Use expressions across all guilds, in user scope |
| feature_guild_create | Create communities while the instance restricts community creation, in user scope |
| feature_higher_video_quality | Access to higher video streaming quality, in user scope |
| feature_per_guild_profiles | Different profile per guild, in user scope |
| feature_voice_entrance_sounds | Play a sound when joining voice, in user scope |