Skip to content

Latest commit

 

History

801 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meith

Meith is open-source community forum software designed to run on a server you control. It provides threaded discussions, search, permissions, moderation, memberships, themes, plugins, and an operator CLI without per-member pricing.

Choose how you want to start

Run a board

For most installations, follow the Quickstart. It uses Coolify to deploy Meith on an Ubuntu server and configure HTTPS.

If you already operate Docker Compose and a reverse proxy, use Deploying by hand.

A production board runs four services:

  • PostgreSQL stores board data.
  • A one-shot migration service updates the schema before startup.
  • The web service handles browser and API requests.
  • The worker runs scheduled and queued work once a minute.

After deployment, open /install to create the board and its first administrator.

Work on Meith

You need Node.js 22 or newer and pnpm 10.

pnpm install
pnpm dev

pnpm dev starts the community app at http://localhost:3000 in fixture mode, so you can browse the interface without PostgreSQL. See Development before changing data or opening a pull request.

The main workspace applications are:

Path Package Purpose
apps/community @meith/web The forum application
apps/worker @meith/worker Background and scheduled work
apps/cli @meith/cli Operator commands
apps/web @meith/site meith.dev and the documentation site

Business capabilities live in packages/. Themes, plugins, examples, deployment files, and documentation have their own top-level directories. Architecture explains the boundaries and request flow.

Documentation

Start with the task you need to complete:

Task Guide
Install a board Quickstart
Administer forums and members Organiser guide
Moderate content Moderator guide
Manage paid memberships Memberships guide
Operate the server Operations
Upgrade or recover a board Upgrading · Disaster recovery
Build a theme or plugin Theme API · Plugin API
Contribute to Meith Development

The complete index is in docs/README.md. The website renders these Markdown files directly; there is no separate copy.

The table below is generated from apps/web/content/docs.manifest.json by pnpm site:docs.

Section Document What it answers
Getting started quickstart.md From a rented server to a board on your own domain, with Coolify, in about twenty minutes. Written for whichever volunteer drew the short straw.
Getting started self-hosting.md The advanced route: Docker Compose, a .env you write, and a reverse proxy you run. Most boards should take the Quickstart instead.
Getting started vercel.md The board on functions: the driver set, the build command that carries the migration, the cron job that replaces the worker, what previews and rollbacks do to your schema — and how to leave again.
Using your board organiser-guide.md Running the board from a browser: forums and the organisers' room, the community's name and colours, announcements, members — and handing it all over.
Using your board moderation-guide.md For the volunteers who keep it civil: the approval queue, reports, tidying threads, warnings and bans — and where each screen lives.
Using your board formatting.md The composer's toolbar and the syntax behind it: highlighted code, spoilers, mention suggestions, link previews, and placing an attachment inline.
Using your board membership-guide.md Taking memberships through the board: plans, discount codes, gifting, the memberships desk and the ledger — Dues end to end, without a terminal.
Running the server operating.md Routine checks, configuration, maintenance commands, backups, recovery, and troubleshooting for a running board.
Running the server monitoring.md Liveness versus readiness, the optional Prometheus metrics endpoint and what to alert on, distributed tracing, and shipping logs.
Running the server upgrading.md Moving a board between versions: the upgrade command, how far you can jump, and the behaviour changes each release brings.
Running the server disaster-recovery.md The runbook for the day the server is gone: what recovery consumes, the order of operations from provisioning to DNS, and the rehearsal that turns it from a hope into a plan.
Running the server single-sign-on.md Two-factor authentication, federated sign-in and passkeys: what each means for your members, how to configure them, and the record of what has opened an account.
Running the server internationalisation.md How a page picks its language, how to add one, and how a theme or plugin ships its own words.
Running the server web-push.md Notifications that reach a member who does not have the board open, and the manifest that makes the board installable — what it costs their privacy, and how to turn it on.
Running the server performance.md The p95 budgets for the hot pages, and what the last recorded run measured against a full-scale board. (generated)
Running the server demo-mode.md The self-resetting public demo board that runs at demo.meith.dev — what it changes, and how to run one yourself.
Scaling out scaling.md Running more than one web container: the Redis cache that keeps them coherent, what already scales, and the step-by-step migration from a single-instance board.
Themes, plugins and the API theme-api.md How to write a theme, what a theme may do, and what the API freeze covers.
Themes, plugins and the API theme-slots.md Every slot and every view model, generated from the slot registry. (generated)
Themes, plugins and the API plugin-api.md What a plugin is, what it may and may not do, and how a failure is contained.
Themes, plugins and the API plugin-hooks.md Every hook and payload, generated from the hook registry. (generated)
Themes, plugins and the API marketplace.md The curated, reviewed feed of plugins and themes: the listing schema, the review bar, the trust it does and does not extend, and how to submit or remove one.
Themes, plugins and the API rest-api.md Every endpoint, scope and rate limit, generated from the route registry. (generated)
Moving from MyBB or phpBB migrating.md The full procedure: what to check first, the import command for each source, what does and does not come across, and what to do after it finishes.
Moving from MyBB or phpBB mybb-parity.md Every place Meith deliberately behaves differently from MyBB, with the reasoning and the cost. Read it before promising anyone a like-for-like move.
Moving from MyBB or phpBB phpbb-parity.md Where a Meith board imported from phpBB behaves differently from the one it came from — the ACL, warnings, bans, announcements and polls, and a couple of places phpBB's own model already matches Meith's.
Working on Meith development.md Running the board on your own machine, the workspace layout, the commands, and what to do before opening a pull request.
Working on Meith architecture.md How Meith fits together: the processes, the layers, the path a request takes, and the extension seams.
Working on Meith nextjs-conventions.md Server components, Server Actions, caching, forms and errors — the decisions that would otherwise be re-litigated in every pull request.
Working on Meith release.md How a version is cut, what each release publishes — the image, the branch, the npm packages — and the version policy behind the numbers.

Checks

Run the full repository gate before opening a pull request:

pnpm verify

It checks workspace invariants, generated references, formatting, dependency boundaries, types, and tests. Do not edit generated references directly; the documentation index identifies them and names their generators.

Licence

Meith is distributed under the MIT licence. Use it, modify it, and ship it — including in closed-source and commercial work — provided the copyright notice and permission notice travel with it.

Copyright © 2026 Jordan Harrison and the Meith contributors.

About

A forum software for clubs and communities, on a server of your own.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages