You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This change removes the old /config YAML upload/download/update flow in favor of the dashboard, auto-provisions a default config when a guild joins, and updates onboarding/error messaging to send users to /config. Docs and metadata were refreshed to reflect the dashboard-first setup model and default-config behavior.
Copy file name to clipboardExpand all lines: README.md
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Dreamliner
2
2
3
-
Moderation and ops for large Discord communities: YAML config, staff permissions, logging, automod, and a web dashboard.
3
+
Moderation and ops for large Discord communities: web-dashboard config, staff permissions, logging, automod, and stats.
4
4
5
5
Dreamliner is a Discord moderation and server-operations bot built for communities that outgrow one-size-fits-all tools. It is designed for staff teams that need clear permission boundaries, auditable configuration, and features that stay reliable as membership and moderation load grow.
6
6
7
-
Configure your server with versionable YAML: download a template, edit channels, plugins, and access levels, then upload. Day-to-day work can also run through the web dashboard for live config, logs, stats, and custom commands, without giving up file-based control. Dreamliner does not require Administrator; invite with least privilege and grant only what your staff need.
7
+
Configure your server entirely from the web dashboard: channels, plugins, and access levels, saved live with no restart. A new server gets a working default config the moment Dreamliner joins, so every command works immediately — the dashboard is only for customizing it. Dreamliner does not require Administrator; invite with least privilege and grant only what your staff need.
8
8
9
9
Core capabilities include infractions and case management, automod and raid tooling, content filters, structured logging, role and onboarding systems, multilingual translation, activity stats, and visually built custom slash commands. Enable only the plugins your community uses so the bot stays focused and predictable for operators.
10
10
@@ -24,21 +24,20 @@ Recommended permissions are pre-selected. Dreamliner does **not** require Admini
24
24
25
25
## Why operators choose it
26
26
27
-
-**Config as source of truth:**Guild YAML is portable, reviewable, and easy to back up or hand off between staff.
28
-
-**Least privilege by design:**Level-based access plus per-command `can_*`overrides so senior mods, trial staff, and helpers stay in their lane.
27
+
-**Works on invite:**A default config is provisioned the instant Dreamliner joins — no setup step blocks day-one use.
28
+
-**Least privilege by design:**Dreamliner Roles plus per-command `can_*`grants so senior mods, trial staff, and helpers stay in their lane.
29
29
-**Ops without noise:** Enable only the plugins your community needs; leave the rest off.
30
30
-**Slash-first management:** Staff workflows and custom commands stay in Discord’s command surface.
31
-
-**Dashboard when you want it:** Live config, logs, stats, and building custom commands without abandoning file-based control.
31
+
-**Dashboard-first config:** Live config, logs, stats, and building custom commands, all from one web dashboard.
32
32
33
33
---
34
34
35
35
## Quick start
36
36
37
37
1. Invite Dreamliner with the link above.
38
-
2. Run `/config template` (requires **Manage Server**).
39
-
3. Edit the YAML: channels, plugins, and permission levels (levels can also be adjusted later with `/permissions`).
40
-
4. Run `/config upload` with your file.
41
-
5. Use `/permissions` for incremental access changes and `/help` for command discovery.
38
+
2. Run `/config` (requires **Manage Server**) to get a link to this server's dashboard.
39
+
3. Sign in with Discord, then edit channels, plugins, and Dreamliner Roles. Click **Save** — changes apply immediately.
40
+
4. Use `/permissions` for incremental access changes in Discord, and `/help` for command discovery.
Copy file name to clipboardExpand all lines: docs/configuration.md
+18-25Lines changed: 18 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,8 @@
1
1
# Configuration
2
2
3
-
Dreamliner server configuration is written in YAML. Each server has its own config stored in the database after upload.
3
+
Dreamliner server configuration is edited entirely from the **web dashboard** and stored as YAML in the database
4
+
under the hood — there is no in-Discord upload/download workflow anymore. The YAML shape below documents that
5
+
underlying format (and what a fork's `config/default.server.yaml` looks like), not something you write by hand.
4
6
5
7
## File format
6
8
@@ -32,7 +34,7 @@ Dreamliner Role instead. See [Permissions](permissions.md).
32
34
33
35
The icons used on command response embed titles (success, error, neutral, warning, unchecked) and on log card
34
36
titles (`logging.emojis`) are **fixed bot-wide and not configurable** — every server sees the same set, and
35
-
neither the dashboard nor a `/config upload` can change them. The `emojis`/`logging.emojis` keys are no longer
37
+
the dashboard cannot change them. The `emojis`/`logging.emojis` keys are no longer
36
38
part of guild config; an uploaded YAML with either block simply has it ignored (they fail schema validation and
37
39
get repaired away). See `src/core/embeds.ts` (`DEFAULT_EMOJIS`) and `src/core/logging/emojis.ts` (`LOG_EMOJI`) if
38
40
you're maintaining a fork and want to change the defaults in code.
@@ -97,37 +99,28 @@ Each plugin is configured under `plugins.<name>`:
97
99
98
100
## Merge behavior
99
101
100
-
On upload, your YAML is **deep-merged** with `config/default.server.yaml`. You only need to include keys you want to change.
102
+
Whatever you save on the dashboard is **deep-merged** with `config/default.server.yaml` — you only ever customize the fields you touch, and new Dreamliner defaults apply automatically to anything you haven't.
101
103
102
104
See also: [Autorole](plugins/autorole.md), [Member identity](plugins/member_identity.md), [Translation](plugins/translation.md), [Logs](plugins/logs.md), [Starboard](plugins/starboard.md).
| `/config` | Posts a link to open this server's dashboard |
111
+
| `/permissions role ...` | Manage Dreamliner Roles without leaving Discord |
112
+
| `/plugin toggle` | Enable or disable a plugin (`plugin` + `state`: Enable / Disable) |
113
+
| `/plugin list` | Show which plugins are enabled or disabled |
116
114
117
115
### Workflow
118
116
119
-
1. Run `/config template` (new server) or `/config download` (existing server).
120
-
2. Edit the YAML file locally, or use the website **config editor** (loads the schema from this repo).
121
-
3. Run `/config validate` to check for errors (optional).
122
-
4. Run `/config upload` to apply.
117
+
1. Run `/config` (or open the dashboard link from the join message) and sign in with Discord.
118
+
2. Pick this server, edit plugins and fields (channels/roles/members have search autocomplete).
119
+
3. Click **Save** — Dreamliner applies the config immediately, no restart or re-upload needed.
123
120
124
-
Machine-readable schema for the editor is generated with `npm run schema:export` into `schema/guild-config.schema.json` (also run during `prebuild`).
125
-
126
-
### `/config update`
127
-
128
-
When Dreamliner ships new default settings, run `/config update` to pick up changes you did not customize. Your overrides are preserved using the raw YAML from your last upload.
129
-
130
-
If your config was saved before this feature existed, the bot uses diff detection against the stored defaults snapshot. Re-uploading via `/config upload` improves future updates.
121
+
A new server already has a working default config the moment Dreamliner joins, so every command works
122
+
immediately; the dashboard is only for customizing it. Machine-readable schema for the editor is generated with
123
+
`npm run schema:export`into `schema/guild-config.schema.json` (also run during `prebuild`).
131
124
132
125
## Reloading
133
126
@@ -151,4 +144,4 @@ Dreamliner is organized into plugins under the `plugins:` key. Each plugin has i
See [Documentation index](/broken/pages/ScBf0pRjbQl3XDFHSAMa) for setup guides per plugin. The default template (`/config template`) includes all configurable fields.
147
+
See [Documentation index](/broken/pages/ScBf0pRjbQl3XDFHSAMa) for setup guides per plugin. The dashboard exposes every configurable field for every plugin.
Dreamliner uses a **download → edit → upload** workflow for server configuration. After the first upload, you can also manage Dreamliner Roles and command access in Discord with `/permissions role ...` (no re-upload needed).
3
+
Dreamliner is configured entirely from the **web dashboard** — there is no download/upload YAML workflow. You can
4
+
also manage Dreamliner Roles and command access in Discord with `/permissions role ...` without ever opening the
5
+
dashboard.
4
6
5
7
## 1. Invite the bot
6
8
@@ -19,23 +21,23 @@ At minimum you will need:
19
21
20
22
The bot also needs standard read/send message permissions in channels where commands are used.
21
23
22
-
## 2. Download the template
24
+
As soon as Dreamliner joins, it provisions a working default config for the server — every command works
25
+
immediately, before anyone touches the dashboard.
26
+
27
+
## 2. Open the dashboard
23
28
24
29
A server administrator runs:
25
30
26
31
```
27
-
/config template
32
+
/config
28
33
```
29
34
30
-
This sends `dreamliner-template.yaml` - the default configuration maintained by the bot operator. It includes emoji settings and utility plugin defaults.
31
-
32
-
## 3. Edit the configuration
35
+
This posts a link to this server's dashboard. Open it and sign in with Discord — this server is already selected.
33
36
34
-
Open the YAML file in any text editor. Common first steps:
37
+
## 3. Configure
35
38
36
39
1. Set up Dreamliner Roles - assign your mod/admin Discord roles or users to the built-in **Moderator**/**Admin** roles (dashboard **Roles** page, or `/permissions role assign`).
37
-
2. Adjust `emojis` if you want custom success/error/neutral/warning/unchecked prefixes.
38
-
3. Enable and configure plugins under `plugins` - see [plugin documentation](/broken/pages/ScBf0pRjbQl3XDFHSAMa#plugins) for categories:
40
+
2. Enable and configure plugins - see [plugin documentation](/broken/pages/ScBf0pRjbQl3XDFHSAMa#plugins) for categories:
4. Grant `plugins.utility`'s `can_*` permissions to your Dreamliner Roles.
51
-
52
-
See [Permissions setup](permissions.md) for a full walkthrough and examples. See [Configuration](configuration.md) for the full YAML format.
53
-
54
-
## 4. Upload your configuration
55
-
56
-
```
57
-
/config upload file:<your-edited.yaml>
58
-
```
59
-
60
-
Dreamliner validates the file, merges it with defaults, saves it to the database, and applies it immediately.
61
-
62
-
Use `/config validate` to check a file without saving.
63
-
64
-
## 5. Download your current config
65
-
66
-
To edit an existing setup:
67
-
68
-
```
69
-
/config download
70
-
```
52
+
3. Grant `plugins.utility`'s `can_*` permissions to your Dreamliner Roles.
53
+
4. Click **Save**. Dreamliner applies the config immediately - no restart, no re-upload.
71
54
72
-
This returns the effective configuration currently stored for your server.
55
+
See [Permissions setup](permissions.md) for a full walkthrough and examples. See [Configuration](configuration.md)for the underlying config format.
73
56
74
-
## 6. Use utility commands
57
+
## 4. Use utility commands
75
58
76
-
Once a configuration is uploaded, moderators can use commands like `/search`, `/user`, `/clean`, and `/help`. Permission is controlled by Dreamliner Roles, not just Discord roles.
59
+
Moderators can use commands like `/search`, `/user`, `/clean`, and `/help` right away. Permission is controlled by Dreamliner Roles, not just Discord roles.
@@ -208,17 +205,16 @@ Use `/permissions role ...` (requires **Manage Server**) instead of the dashboar
208
205
209
206
`role` and `command` options support autocomplete. Changes are saved immediately (same store the dashboard's Roles page uses).
210
207
211
-
`/config download` → edit → `/config upload` still covers everything else in the config, but `can_*` grants are not among them anymore — always use Dreamliner Roles for those.
208
+
The dashboard still covers everything else in the config, but `can_*` grants are not among them anymore — always use Dreamliner Roles for those.
| "No configuration yet" | No YAML uploaded |`/config template` → edit → `/config upload`|
220
216
| "You do not have permission" | No Dreamliner Role the member belongs to grants that flag | Assign them to a role that has it, or grant it on their existing role |
221
-
| "You need Manage Server" | User lacks Discord perm | Grant Manage Server or have an admin upload config |
217
+
| "You need Manage Server" | User lacks Discord perm | Grant Manage Server or have an admin configure it on the dashboard|
222
218
| "You need Manage Messages" |`can_clean` ok but Discord perm missing | Add Manage Messages to mod role |
223
219
| Command works for admins but not mods | Mod's Discord role/user isn't assigned to a Dreamliner Role with that flag | Assign it on the dashboard **Roles** page or `/permissions role assign` + `role grant`|
224
220
| Bot does not respond in a channel | Channel overwrite | Allow bot View Channel + Send Messages |
0 commit comments