Multiforum Documentation

website·Indexed 30 days ago

https://docs.multiforum.net

Comprehensive guides for Multiforum, covering user onboarding, content creation with tags and collections, moderation tools, and administrator responsibilities. Includes detailed technical documentation for self-hosting via Docker Compose and Terraform, server configuration, plugin pipeline diagnostics, and integrations with Auth0 and Google Cloud Storage.

Tokens
41.5K
Snippets
151
Records
349
Agent score
49%

What's inside Multiforum

  1. Overview of Multiforum Issues

    Issues are moderation tickets used to track reported or problematic content, record moderation actions, and provide an audit trail. They enable discussion among moderators and provide transparency to affected users regarding why specific actions were taken.
  2. Overview of Multiforum platform capabilities

    Multiforum is an open-source platform for community discussions, events, and knowledge sharing. Key features include:

    • Cross-Posted Discussions: A single discussion can be published across multiple channels while maintaining independent conversation and moderation contexts for each channel.
    • Rich Discussions: Supports threaded conversations, markdown, upvoting, and emoji reactions.
    • Event Management: Includes Google Maps integration, recurring event series, and calendar views.
    • Knowledge Sharing: Collaborative wikis with version history and edit tracking.
    • File Management: File sharing with version tracking and virus scanning.
    • Moderation: Issue-centric moderation with audit trails and granular permissions.
    • Extensibility: A plugin system for custom functionality and pipelines.
  3. Manage your Multiforum user profile

    Users can configure their public identity through profile settings. Available fields include:

    • Username: Your permanent public identity.
    • Display Name: An optional friendly name.
    • Bio: A short description about yourself.
    • Profile Picture: Your account avatar.
    • Pronouns: Optional display of pronouns.
    • Location: Optional geographic location.
    • Time Zone: Used to ensure events are displayed in your local time.
  4. Understand the Multiforum download scanner architecture

    Multiforum's download scanner is split into two independently deployed components:

    1. security-attachment-scan: A TypeScript plugin running in the Multiforum backend that integrates into download pipelines.
    2. multiforum-plugin-security-scan-service: A Python service that performs the actual inspection of untrusted bytes (VirusTotal reputation, static ZIP checks for dangerous extensions, path traversal, and excessive compression) outside the main application process.
  5. Understand the Feedback moderation tool

    Feedback is a moderation tool used to communicate with content authors to provide constructive guidance without archiving their content. Unlike regular comments, Feedback is sent from a moderation profile (not a personal username), is visually distinct, notifies the author, and remains visible to the community and other moderators.
  6. Verify instance capabilities using the Setup Checklist

    The Setup Checklist provides a high-level overview of which server features are ready on a self-hosted instance. It monitors capabilities for authentication, email, maps, geocoding, file uploads, downloads, events, and plugins. It identifies missing environment variables and links to relevant setup documentation. If environment variables are changed, the affected container must be recreated before the status updates on this page.
    Navigate to: Admin → Instance Setup
  7. Understand Multiforum's issue-centric moderation philosophy

    Multiforum uses an issue-centric moderation system to ensure transparency and accountability. Every moderation action is linked to an 'Issue', which creates an audit trail. This allows users to understand why actions were taken against their content and enables moderators to review the history of any specific decision.
  8. Subscribe to issue notifications

    Moderators can stay notified about updates to a specific issue by clicking the Subscribe button within the issue. Subscriptions trigger notifications for:

    • New comments
    • Status changes
    • Moderation actions taken

    To stop receiving these notifications, click Unsubscribe.

  9. Manage plugins and pipelines with the declarative manifest

    The Multiforum manifest API (multiforum.gennit.dev/v1alpha1) allows server operators to define the desired state of plugins and pipelines in source control.

    Ownership Rules:

    • Plugins: Reconciliation is additive. Omitting a plugin from the manifest does not uninstall it. For listed plugins, the manifest manages the specific version; settings and secret references are optional.
    • Pipelines: Ownership is strict.
      • Omit the pipelines key to leave existing server pipelines unmanaged.
      • Use pipelines: [] to ensure the server pipeline list is empty.
      • Provide a list to manage the complete server pipeline list (authoritative).
    • Metadata: effectiveAt and policyId remain server-owned unless explicitly provided in the manifest.
  10. Understand Multiforum's cross-posting architecture

    Unlike systems that duplicate posts, Multiforum uses a DiscussionChannel model to connect a single shared Discussion to multiple channels.

    • Shared Discussion: Contains the canonical content (title, body, author, tags, attachments, and edit history) that remains consistent across all channels.
    • DiscussionChannel: Contains channel-specific context, including comments, votes, ranking, flair, subscriptions, and moderation state.

    This architecture ensures that edits to the main post propagate to all channels, while replies and moderation actions (like locking or archiving) remain local to the specific community.

                        ┌─ DiscussionChannel A ─ Channel A
    Shared Discussion ──┤
                        └─ DiscussionChannel B ─ Channel B
  11. Multiforum self-hosting architecture

    The image-based stack consists of four production services in the following flow: Internet → Caddy (HTTPS) → Nuxt frontend → GraphQL backend → Neo4j.

    Key architectural details:

    • The browser accesses the GraphQL API via the frontend's same-origin /api/graphql proxy.
    • Only Caddy publishes public production ports; frontend, backend, and Neo4j ports remain bound to loopback for diagnostics.
    • Local quick-start omits Caddy and uses local-development authentication.
    • Production environments use Auth0 and automatic HTTPS.
    Internet → Caddy (HTTPS) → Nuxt frontend → GraphQL backend → Neo4j
  12. Understand the Multiforum upload flow and security

    Multiforum uses Signed URLs to secure uploads. The flow is as follows:

    1. Frontend requests a signed URL from the backend.
    2. Backend validates authentication, file type, and channel permissions.
    3. Backend generates a signed URL that expires after 15 minutes.
    4. Frontend uploads the file directly to GCS using the signed URL.
    5. Frontend notifies the backend of success, and the backend creates the database record.

    Direct bucket access is prohibited; all uploads must go through this signed URL process.