Stalwart support portal
This commit is contained in:
158
.github/DISCUSSION_TEMPLATE/issue-triage.yml
vendored
158
.github/DISCUSSION_TEMPLATE/issue-triage.yml
vendored
@@ -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.
|
||||
|
||||
16
.github/ISSUE_TEMPLATE/config.yml
vendored
16
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -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.
|
||||
|
||||
12
.github/ISSUE_TEMPLATE/confirmed_issue.yml
vendored
12
.github/ISSUE_TEMPLATE/confirmed_issue.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/auto-close-issues.yml
vendored
4
.github/workflows/auto-close-issues.yml
vendored
@@ -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');
|
||||
|
||||
47
.github/workflows/auto-redirect-discussions.yml
vendored
Normal file
47
.github/workflows/auto-redirect-discussions.yml
vendored
Normal 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,
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user