Skip to content

jc-universe87/moimio

Moimio CE logo

Moimio CE (Community Edition)

Gather · Organise

"Let all things be done decently and in order." — 1 Corinthians 14:40

Moimio is an open-source participant allocation platform for small churches, mission conferences, and retreat organisers. This repository is Moimio CE (Community Edition) — the self-hostable build. A managed hosted version is available at moimio.app.

License: MIT Self-hostable Languages: 6


What Moimio does

Most retreat and conference organisers run on spreadsheets — registrations in one tab, room lists in another, hand-edited cells turning a 200-person event into a weekend of copy-paste.

Moimio replaces that workflow:

  • Registrations come in through a public form with the fields you choose.
  • Allocations come out through an engine that proposes who sleeps where, who's on which team, who's in which workshop — respecting families, friend groups, gender restrictions, and your own custom tags ("leaders", "first-timers", "needs ground floor").
  • Everything stays on your server. No third party processes participant data. You self-host, you control the data.

Designed for small and mid-sized events. Not enterprise tooling. Free to run forever.

Integrations. Moimio can fire signed HTTP webhooks to external services when system events occur — connect Slack, Zapier, n8n, your own scripts, or any other system that accepts inbound webhooks. The subsystem is optional and disabled by default unless you configure an endpoint. See the webhooks guide.

Allocation board with engine settings open


Quick start

git clone https://github.com/jc-universe87/moimio.git
cd moimio
cp .env.example .env
docker compose up -d --build
Service URL
Frontend http://localhost:6120
Backend http://localhost:6121
API Docs http://localhost:6121/docs
Health http://localhost:6121/health

First-run setup (creating the initial admin account, configuring email, creating your first event) is covered in the Installation Guide.

Upgrading

Once you've installed Moimio, upgrading to a newer version is a single command from the repo root:

./upgrade.sh           # pull the latest commit on your current branch and rebuild
./upgrade.sh v1.0.0n   # check out a specific version tag and rebuild

The script automatically backs up .env and takes a pg_dump snapshot of your database before any changes, verifies the new version starts up healthy, and prints rollback instructions if anything goes wrong. Backups live in the parent directory as pgdata-pre-upgrade-<timestamp>.sql.gz — keep them until you're confident the new version is stable, then delete them.


Documentation

Where to look What you'll find
Installation Guide Choose your install path: quick guide for sysadmins, step-by-step for non-technical users.
User Manual How to set up and run an event — registration, allocation, check-in, exports.
FAQ Common questions about features, scale, hosting, GDPR.
Glossary Moimio-specific terms: clusters, marks, group codes, allocation categories.
GDPR Compliance Privacy posture, data flow, Article 20 / Article 17 fulfilment.
Architecture The why behind the product and code: invariants, the allocation engine, the three-phase lifecycle, design principles.
Data Model Schema overview for developers and integrators.
Webhooks Wiring Moimio into Slack, Zapier, n8n, or your own systems via outbound HTTP webhooks.
Translation Rule How the i18n system works; how to add a language.

Tech stack

Layer Technology
Backend Python 3.12 / FastAPI
Database PostgreSQL 16
ORM SQLAlchemy (async)
Migrations Alembic
Frontend React + Vite + Tailwind CSS
Web server Caddy (frontend), uvicorn (backend)
Containers Docker Compose
Auth JWT + role-based access

Moimio CE vs Moimio (hosted)

Moimio CE (this repo). Free forever. MIT-licensed. Self-hostable on anything that runs Docker — a laptop, a Raspberry Pi, a small VPS, your church's office mini-PC. You're the data controller; nothing leaves your machine.

Moimio (hosted). A managed hosted version of the same product, available at moimio.app, for organisations that want the platform without running infrastructure. Same code, same features. The two editions are kept in sync.


Languages

The UI is available in 6 languages with full string parity:

English · Deutsch · 한국어 · Español · Português (Brasil) · Français

The tagline Gather · Organise is intentionally hardcoded in English across all locales — it's the brand mark.

To add another language, see TRANSLATION_RULE.md.


Contributing

Issues, suggestions, and pull requests are welcome.

This project follows a Code of Conduct. Conduct concerns: contact@moimio.app.

Security disclosures: please use GitHub's private vulnerability reporting (see SECURITY.md) rather than public issues.


Sponsor the project

Moimio CE is built and maintained by one person in spare time. Sponsorship keeps the lights on.

Thank you.


Links


Licence

MIT — free to self-host forever.

The name "Moimio" comes from the Korean phrase 모임이오 ("It is a gathering!").


Moimio CE's code and documentation were substantially developed with Claude Opus 4.7 Adaptive.

About

Gather · Organise — event and retreat management for churches. Self-hostable, GDPR-first.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors