LGPL-3.0 · Self-hosted · Postgres
Open-source community software where your people gather.
The internet used to feel like a neighbourhood. Today it more often feels like a fragmented crowd. Meith is community software for putting the neighbourhood back — open source, self-hostable, and built for communities that have work to do together.
No hosted captcha, and no third-party script between your members and your board.
Own the place
Your board lives on your server, at your domain. No platform to change the rules under you, rank the feed, or shut down and take the archive with it.
Your members are nobody's product
No ads, no trackers, no third-party scripts. What your members write stays on your machine, and nothing about reading it is sold to anybody.
Nothing said here gets lost
Conversations live in threads, threads stay where they were put, and search reaches back through all of it — this year's question finds an answer from years ago.
Free, and staying that way
Free software under the LGPL. Whatever anybody decides later, the version you run stays free, forkable, and yours to keep.
What you get
Everything a community needs to feel at home.
Six things your members and moderators will actually notice, and how each one is done. Each is also a link, because the page asserts and the document argues.
01
A place for every kind of member
Open forums for everyone, a members-only floor, a staff room nobody else sees. Who can read, post, search or reply is decided per member, per forum — and every way into the board, search and feeds included, respects the same rules.
How permissions work →
02
A board that looks like your community
Colours, layout, light and dark — restyle the whole board or install a different theme entirely. A theme can only change how things look, never whether they work, so a new coat of paint never costs you the board.
How themes work →
03
Add features without fear
Plugins add what your community is missing — and stay in their lane. One that misbehaves fails alone: the page renders, the thread posts, the board carries on as if it had never been installed.
What plugins can do →
04
Years of answers, still findable
Search that understands a thread about your question beats a passing mention of it, and stays quick however deep the archive goes. The answer somebody wrote years ago keeps earning its keep.
How search holds up →
05
Bots stay out, people get in
A trap only bots fall into, questions you write about your own community, and first posts held for a quick look. No puzzle grids, and no third-party gatekeeper deciding who is human enough to join.
How the spam controls work →
06
The chores run themselves
Backups, migrations, member admin, scheduled tasks — everything you should not need to click through a browser for is a command or an API call, safe to script because it obeys the same permissions you do.
The API and the CLI →
Where it runs
Your own server. Guided, or by hand.
Your community lives on a machine you control — which is the whole point, and less work than it sounds. Four containers either way: Postgres, a one-shot migration the others wait on, the web server, and the worker that runs the background tick.
The hand route, in full. The guided one is the same four containers, with the panel typing the secrets for you.
Guided, with Coolify
A panel you install on the same server — still your machine, not a service. Point it at the repository and it generates both secrets and the database password, issues the certificate, tells the board its own URL, and redeploys on push. Nothing is typed in.
About twenty minutes, start to finish.
Or by hand, if you would rather
The same four containers without the panel: a clone, an .env with three generated secrets, one command, and a reverse proxy you already run. The advanced route, and the one the transcript above is running.
Postgres and nothing else — no Redis, no broker, no search cluster.
Built to stay quick
Reading never drags.
Long threads, deep pages, a search across everything ever written — pages come back before anyone wonders whether the board is busy. And because it stays quick as the archive grows, a decade of history is a feature of your board rather than a weight on it.
Measured, not asserted: against a board of 2.3M posts, a thread page renders in 3.3 ms at the 95th percentile — and a run over its 50 ms budget fails the build.
Coming from MyBB
A way out that does not lose the archive.
The importer is resumable, so a board with a decade of history can be moved across several sessions rather than one long night. Old URLs redirect, so every link anybody ever posted to your board still lands.
And every place a Meith board behaves differently from the one you are leaving is written down, with the reason — read it before you promise anyone a like-for-like move.
The licence
Yours to keep.
Meith is free software under the GNU Lesser General Public License v3. Run a board on it for anything, commercially included, without publishing a line of your configuration or a word your members wrote.
- Themes and plugins are yours
- Both fill an interface this software provides, which is the case the Lesser GPL exists to allow. License yours however you like — it is not obliged to be LGPL because the board it runs in is.
- Changes to Meith come back
- Modify the board itself and those changes carry the same licence to whoever you hand the modified version to. That is the copyleft, and it is the whole of what is asked.
Which is the point of choosing it: the version you are running stays free software whatever anybody decides later, and anybody can carry it on.
Read the licence — GNU Lesser General Public License v3
LGPLv3 is additional permissions on top of the GNU GPL, which it incorporates. Both texts are in the repository, and both travel with any copy you pass on.
Documentation
Organised by what you are trying to do.
Four of the references are generated from the code they describe, and one that disagrees with your board fails the build rather than misleading you. Every page is rendered from the Markdown in the repository — there is no second copy to fall behind.
Running a board
From a bare server to a board that has been up long enough to go wrong.
Start with Quickstart →
Advanced deployment
The same board without the panel: the compose file, a reverse proxy you run, and what you take on for it.
Start with Deploying by hand →
Themes
The frozen v1 slot contract, and every slot a theme may fill.
Start with The theme API, v1 →
Plugins
What a plugin may do, how its failures are contained, and every hook it can listen to.
Start with The plugin API, v1 →
The API
Every endpoint, scope and rate limit, generated from the route registry.
Start with REST API v1 →
Migrating from MyBB
Where a Meith board behaves differently from the one you are leaving, and why.
Start with MyBB parity decisions →
Development
Running it on your own machine, the workspace, and the conventions this codebase holds to.
Start with Development →
Start a board this afternoon.
A board of your own, on a machine of your own, in about half an hour. Read the source before you run it — all of it is there.
- A machine
- Your own, with Docker
- A domain
- Pointed at it
- Everything else
- Comes up beside it