Stalwart support portal

This commit is contained in:
Maurus Decimus
2026-05-07 07:53:57 +02:00
parent 015d437027
commit 83def69389
6 changed files with 69 additions and 170 deletions

View File

@@ -4,156 +4,10 @@ body:
attributes:
value: |
> [!IMPORTANT]
> Please review the [documentation](https://stalw.art/docs/), check the [FAQ](https://stalw.art/docs/faq), and search existing [Discussions](https://github.com/stalwartlabs/stalwart/discussions) and [Issues](https://github.com/stalwartlabs/stalwart/issues?q=sort%3Areactions-desc) before opening a new Discussion.
> **Stalwart support has moved to [support.stalw.art](https://support.stalw.art).**
>
> Most reported issues turn out to be configuration problems rather than actual bugs. Starting here helps us triage effectively—if this is confirmed as a bug, we'll create an Issue for tracking.
- type: markdown
attributes:
value: "# Issue Details"
- type: textarea
attributes:
label: Issue Description
description: |
Provide a detailed description of the issue. Include relevant context such as your configuration, environment, and any recent changes that might have led to the issue.
placeholder: |
When trying to send an email via SMTP, the connection is accepted but the message is rejected with error 550.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: |
Describe how you expect Stalwart to behave in this situation. Include any relevant documentation links.
placeholder: |
The email should be accepted and delivered to the recipient's mailbox.
validations:
required: false
- type: textarea
attributes:
label: Actual Behavior
description: |
Describe how Stalwart actually behaves in this situation. If it is not immediately obvious how the actual behavior differs from the expected behavior described above, please mention the deviation specifically.
placeholder: |
The email is rejected with error: "550 5.7.1 Relay access denied"
validations:
required: false
- type: textarea
attributes:
label: Reproduction Steps
description: |
Provide a detailed set of step-by-step instructions for reproducing this issue.
placeholder: |
1. Configure Stalwart with the attached configuration.
2. Attempt to send an email from user@example.com to external@domain.com.
3. Observe the 550 error in the SMTP session.
validations:
required: false
- type: textarea
attributes:
label: Relevant Log Output
description: |
Please copy and paste any relevant log output. Set logging level to `trace` if you can't find any relevant errors in the log.
render: shell
- type: dropdown
attributes:
label: Stalwart Version
description: What version of Stalwart are you running?
options:
- v0.16.x
- v0.15.x
- v0.14.x
- v0.13.x or lower
validations:
required: true
- type: dropdown
attributes:
label: Installation Method
description: How did you install Stalwart?
options:
- Docker
- Binary (Linux)
- Binary (macOS)
- Binary (FreeBSD)
- Binary (Windows)
- NixOS
- Built from source
validations:
required: true
- type: dropdown
attributes:
label: Database Backend
description: What database are you using for the data store?
options:
- RocksDB
- FoundationDB
- PostgreSQL
- MySQL
- SQLite
validations:
required: true
- type: dropdown
attributes:
label: Blob Storage
description: What blob storage are you using?
options:
- RocksDB
- FoundationDB
- PostgreSQL
- MySQL
- SQLite
- Filesystem
- S3-compatible
- Azure
validations:
required: true
- type: dropdown
attributes:
label: Search Engine
description: What search engine are you using?
options:
- Internal
- Meilisearch
- Elasticsearch
- PostgreSQL
- MySQL
validations:
required: true
- type: dropdown
attributes:
label: Directory Backend
description: Where is your directory/user database located?
options:
- Internal
- SQL
- LDAP
- OIDC
validations:
required: true
- type: textarea
attributes:
label: Additional Context
description: |
Add any other context about the problem here. This could include:
- Client software and versions (Thunderbird, Apple Mail, K-9, etc.)
- Proxy or reverse proxy configuration (nginx, Traefik, etc.)
- Network setup (NAT, firewall rules, etc.)
validations:
required: false
- type: markdown
attributes:
value: |
# Acknowledgements
> [!TIP]
> Use these links to review existing [Discussions](https://github.com/stalwartlabs/stalwart/discussions) and [Issues](https://github.com/stalwartlabs/stalwart/issues?q=sort%3Areactions-desc).
- type: checkboxes
attributes:
label: "I acknowledge that:"
options:
- label: I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
required: true
- label: I have searched the Stalwart repository (both open and closed Discussions and Issues) and confirm this is not a duplicate.
required: true
- label: I have set the logging level to `trace` and included relevant log output if applicable.
required: false
- label: I agree to follow the project's [Code of Conduct](https://github.com/stalwartlabs/.github/blob/main/CODE_OF_CONDUCT.md).
required: true
> For an official response from the Stalwart maintainers, please post your question on the support portal. You can sign in there with your existing GitHub account; no separate registration is required.
>
> You are welcome to start a discussion here and other community members may still reply, but the maintainers no longer answer support questions through GitHub Discussions, so your question may go unanswered unless you also post it at [support.stalw.art](https://support.stalw.art).
>
> Before opening a new report, please review the [documentation](https://stalw.art/docs/) and the [FAQ](https://stalw.art/docs/faq). Most reported issues turn out to be configuration problems rather than actual bugs.

View File

@@ -1,17 +1,17 @@
blank_issues_enabled: false
contact_links:
- name: Report an Issue
url: https://github.com/stalwartlabs/stalwart/discussions/new?category=issue-triage
about: Report a potential bug. Confirmed bugs will be converted to Issues.
url: https://support.stalw.art
about: Report a potential bug at support.stalw.art. Confirmed bugs will be converted to Issues. Sign in with your GitHub account.
- name: Questions & Support
url: https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a
about: Get help with configuration, troubleshooting, or general questions.
url: https://support.stalw.art
about: Get help with configuration, troubleshooting, or general questions at support.stalw.art. Sign in with your GitHub account.
- name: Feature Requests
url: https://github.com/stalwartlabs/stalwart/discussions/new?category=feature-requests-and-ideas
about: Suggest new features or improvements.
url: https://support.stalw.art
about: Suggest new features or improvements at support.stalw.art. Sign in with your GitHub account.
- name: Join Stalwart's Reddit
url: https://www.reddit.com/r/stalwartlabs
about: Join our subreddit for help, discussions and release announcements.
about: Join our subreddit for community discussions and release announcements.
- name: Join Stalwart's Discord
url: https://discord.com/servers/stalwart-923615863037390889
about: Join our Discord server for help, discussions and release announcements.
about: Join our Discord server for community chat and release announcements.

View File

@@ -1,5 +1,5 @@
name: Bug Report (auto-closed)
description: Issues opened here are automatically closed. Please start a Discussion instead.
description: Issues opened here are automatically closed. Please report bugs at support.stalw.art instead.
labels: ["bug"]
title: "🪲: "
body:
@@ -9,19 +9,17 @@ body:
> [!CAUTION]
> **Issues opened directly in this repository are automatically closed and locked.**
>
> All bug reports must first be triaged in the [Discussions](https://github.com/stalwartlabs/stalwart/discussions/new?category=issue-triage) section. If a maintainer confirms that your report is a genuine bug, **they will create an Issue on your behalf** — you do not need to (and should not) open one yourself.
> All bug reports must first be triaged at our support portal: **[support.stalw.art](https://support.stalw.art)**. If a maintainer confirms that your report is a genuine bug, they will create an Issue on your behalf; you do not need to (and should not) open one yourself.
>
> This policy exists because a large volume of unverified, AI-generated bug reports has been consuming maintainer time that would otherwise be spent fixing real problems. Triaging in Discussions first ensures that every Issue tracked here represents a confirmed bug worth investigating.
> You can sign in to support.stalw.art with your existing GitHub account, so no separate registration is required.
>
> **What to do instead:**
> - Suspected bug? → [Start a Discussion in *Issue Triage*](https://github.com/stalwartlabs/stalwart/discussions/new?category=issue-triage)
> - Question or support? → [Start a Discussion in *Q&A*](https://github.com/stalwartlabs/stalwart/discussions/new?category=q-a)
> - Feature request? → [Start a Discussion in *Feature Requests & Ideas*](https://github.com/stalwartlabs/stalwart/discussions/new?category=feature-requests-and-ideas)
> - Suspected bug, question, or feature request? Post it at [support.stalw.art](https://support.stalw.art).
>
> If you proceed and submit this form anyway, your issue will be closed automatically and a comment will be posted explaining this policy.
- type: checkboxes
attributes:
label: Acknowledgement
options:
- label: I understand that this issue will be automatically closed and that I should open a Discussion instead.
- label: I understand that this issue will be automatically closed and that I should post my report at [support.stalw.art](https://support.stalw.art) instead.
required: true

View File

@@ -33,9 +33,9 @@ jobs:
const comment = [
`Hi @${author}, thanks for taking the time to file this report.`,
``,
`This issue is being **automatically closed** because all bug reports in this repository must first be triaged in a [Discussion](https://github.com/stalwartlabs/stalwart/discussions/new?category=issue-triage). Once a maintainer has confirmed the report as a bug, an Issue will be created on your behalf. This process is described in the issue template and in [CONTRIBUTING](https://github.com/stalwartlabs/stalwart/blob/main/.github/ISSUE_TEMPLATE/config.yml), but it appears the instructions were ignored, most likely because this report was generated by an AI coding agent.`,
`This issue is being **automatically closed** because all bug reports must first be triaged at our support portal: **[support.stalw.art](https://support.stalw.art)**. Please re-post this report there so that a maintainer can review it; once confirmed as a bug, an Issue will be created on your behalf.`,
``,
`Please be aware that **AI-generated bug reports that have not been verified by a human consume a significant amount of maintainer time**: they are frequently inaccurate, fabricate symptoms or code paths that do not exist, and pull attention away from genuine issues affecting real users. If you are using an agent to interact with this project, please review its output and reproduce the problem yourself before reporting it, and always start in [Discussions](https://github.com/stalwartlabs/stalwart/discussions/new?category=issue-triage) rather than filing an Issue directly.`,
`You can sign in to support.stalw.art with your existing GitHub account, so no separate registration is required.`,
``,
`Thank you for understanding.`,
].join('\n');

View File

@@ -0,0 +1,47 @@
name: Redirect new discussions to the support portal
on:
discussion:
types: [created]
permissions:
discussions: write
jobs:
redirect:
runs-on: ubuntu-latest
steps:
- name: Post support portal redirect
uses: actions/github-script@v7
with:
script: |
const discussion = context.payload.discussion;
const author = (discussion.user && discussion.user.login) || '';
const body = [
`Hi @${author}, thanks for posting!`,
``,
`Stalwart support has moved to **[support.stalw.art](https://support.stalw.art)**. The support portal is now the canonical place to ask questions, request help, and report issues for triage. Other community members may still reply here, but the maintainers no longer answer support questions through GitHub Discussions, so your question may go unanswered unless you also post it on the portal.`,
``,
`You can sign in to support.stalw.art with your existing GitHub account, so no separate registration is required. Google, Discord, LinkedIn, and email/password sign-in are also available.`,
``,
`**Why we are unifying our support channels**`,
``,
`Until now, Stalwart support has been spread across GitHub Discussions, Discord, Matrix, and Reddit. As the project has grown, tracking parallel inboxes and deduplicating threads has become unsustainable; the result has been slower answers, repeated work for the people helping out, and good information buried in chat scrollback where the next person with the same question would never find it.`,
``,
`[support.stalw.art](https://support.stalw.art) is a Discourse instance that we operate ourselves, hosted at Hetzner in Germany and GDPR-compliant.`,
``,
`Thank you for helping us keep the conversation in one place.`,
].join('\n');
await github.graphql(
`mutation($discussionId: ID!, $body: String!) {
addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
comment { id }
}
}`,
{
discussionId: discussion.node_id,
body,
}
);