开源活动管理、票务和会员平台,面向社区、俱乐部、独立场地和独立艺术家。
AI 翻译
Open-source event management, ticketing and membership platform for communities, clubs, independent venues and independent artists.
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Revel is an open-source event management, ticketing and membership platform for communities, clubs, independent venues and independent artists.
Buyers pay the ticket price with no service fee on top. Ticket money goes straight to the organizer's own Stripe account, and the code is MIT-licensed, so you can use the hosted version or run it on your own server.查看完整 README ↗Revel is an open-source event management, ticketing and membership platform for communities, clubs, independent venues and independent artists.
Buyers pay the ticket price with no service fee on top. Ticket money goes straight to the organizer's own Stripe account, and the code is MIT-licensed, so you can use the hosted version or run it on your own server.
This repository is the API and the main project page. The web app lives in revel-frontend and the deployment in infra. If you find Revel useful, a star on this repo helps other people find it.
Demo: demo.letsrevel.io. Pick a test account on the login page (password password123). Data resets every night at midnight CET. No real email is sent; outgoing mail shows up at mailpit.letsrevel.io. The demo API is browsable at demo-api.letsrevel.io/api/docs.
Hosted: letsrevel.io.
Self-host:
git clone https://github.com/letsrevel/infra && cd infra && ./setup.sh
You need a Linux x86-64 server, run as root or as a user in the docker group, with ports 80 and 443 open and DNS A records for two hostnames: one for the web app and one for the API, which defaults to api.<your domain>. Add a third for Grafana if you enable observability. The wizard offers to install Docker if it is missing, asks for your domains, email settings and which optional services to run, writes .env with generated secrets, pulls the prebuilt images and starts the stack. The slim tier needs 2 vCPU and 4 GB RAM, about €20/month (Hetzner CPX22, September 2026). The full tier, with observability and malware scanning, needs 8 vCPU and 32 GB RAM. Full guide: docs.letsrevel.io/self-hosting.
| What the organizer pays | |
|---|---|
| Free events, RSVPs and offline payments | Nothing |
| Online payment on letsrevel.io | 3% + €0.50 per order for standard EEA cards: Stripe's 1.5% + €0.25 plus Revel's 1.5% + €0.25 (plus VAT where Revel has to charge it). Non-EEA cards cost more on Stripe's side. Membership subscriptions: 1.5% to Revel with no fixed part, plus Stripe. |
| Self-hosted | Nothing to Revel. The code is MIT-licensed; you pay only your payment provider. |
The fixed part is charged once per order, not per ticket: four €20 tickets bought together cost €2.90 in total fees (3% of €80 plus €0.50).
Ticket money goes straight to the organizer's own Stripe account (Stripe Connect, direct charges), so Revel never holds it. The web app loads no third-party analytics or tracking scripts.
For comparison, from each vendor's published pricing (September 2026): Eventbrite's US pricing page lists 3.7% + $1.79 per ticket plus 2.9% payment processing per order. DICE's UK self-serve terms list 8.5% + VAT (minimum £1) plus a 2.5% + VAT transaction fee. Ticket Tailor charges €0.70 per ticket + VAT, plus payment processing. DICE's terms (clause 12.3) make it an independent data controller of the attendee data alongside the organizer; Eventbrite's privacy policy says it may act as controller or processor.
Both are open source and self-hostable. Checked against each project's default branch, docs and pricing page on 2026-09-22:
| Revel | pretix | Hi.Events | |
|---|---|---|---|
| License | MIT | AGPL-3.0 with additional terms; "built using pretix" footer required | AGPL-3.0 with additional terms; "Powered by Hi.Events" footer required unless you buy a license |
| Recurring membership billing | Monthly or yearly plans through Stripe; offline and lifetime plans recorded by staff | Fixed-duration memberships; no recurring billing in core | None in the codebase |
| Screening before a ticket is issued | Questionnaires with automatic, manual or hybrid review | Manual approval per product | No approval step |
| Buyer-side EU VAT | VIES check of buyer VAT IDs, reverse charge where it applies, optional automatic attendee invoices | VIES check, reverse charge, automatic invoices | Invoices and manual tax rates; VIES and reverse charge apply only to Hi.Events' own fee |
| Seat maps in the free edition | Yes | Paid proprietary plugin | No |
| Apple Wallet | Built in | Official open-source plugin | No |
| Google Wallet | Built in | No (planned, not yet available) | No |
| Hosted platform fee | 1.5% + €0.25 per order, paid by the organizer | 2.5% of the net ticket price (max €15) per ticket | 1.25% + $0.60 per ticket, added to the buyer's price by default |
Platform fees are as each vendor publishes them. Payment processing (Stripe or another provider) comes on top for all three. Revel's fixed €0.25 is charged once per order however many tickets it holds; a per-ticket fixed fee grows with the order, so Hi.Events' $0.60 becomes $2.40 on four tickets.
Sources: pretix license, hosted pricing, self-hosted plugin pricing (seating), memberships, Apple Wallet plugin, Google Wallet status. Hi.Events license, attribution licensing, pricing.
Everything below is on main and has a UI in the web app.
The web app and the API are translated into English, German, Italian, French, Spanish and Portuguese. Invoice and report PDFs are English only.
Potluck coordination with dietary restrictions, polls and event discovery with distance sorting and a calendar view. A referral program shares platform fees with referrers.
The infra repo holds the Docker Compose stack and the setup.sh wizard shown above. You do not need to clone this repo or the frontend; the images come from ghcr.io/letsrevel and are built for linux/amd64 only. The infra README lists what each tier runs and every Compose profile and feature flag.
Stripe, SMTP, Telegram, LLM screening, OpenID Connect login, Eventbrite and the wallet passes are all optional. Without SMTP the instance runs, but nobody receives verification or ticket emails. DNS, tiers, upgrades and troubleshooting: docs.letsrevel.io/self-hosting.
Prerequisites: make, Docker with Compose v2, uv (it installs Python 3.14 if you do not have it) plus native libraries for GeoDjango (GDAL, GEOS), PDF rendering (Pango), translations (gettext) and MIME detection (libmagic):
brew install gdal pango gettext libmagic # macOS
sudo apt install build-essential gdal-bin libgdal-dev libpango-1.0-0 libpangoft2-1.0-0 gettext libmagic1 # Debian/Ubuntu
git clone https://github.com/letsrevel/revel-backend.git
cd revel-backend
make setup # first time only
make run # every time after
make setup installs dependencies, copies .env.example to .env (overwriting any existing one), recreates the Docker services with docker compose down -v, migrates, seeds demo data and starts the server. Use make run after that. The dev database runs on tmpfs and is empty after a container restart; make bootstrap reseeds it. The services use ports 5432, 6379, 3310, 1025 and 8025, so stop any local PostgreSQL or Redis first.
Once running:
[email protected] / passwordsrc/, one Django app per domain (events, accounts, questionnaires, notifications, wallet, telegram and others)The stack is Django 5.2 LTS, Django Ninja, PostgreSQL with PostGIS, Celery and Redis. Everything else (commands, project structure, Docker Compose files, observability, architecture, ADRs) is at docs.letsrevel.io. On macOS, if startup fails with Could not find the GDAL library, see troubleshooting.
Read CONTRIBUTING.md. Revel is built with AI assistance under a human-review workflow; if you contribute with AI, follow AI_USAGE.md.
Report vulnerabilities privately through GitHub security advisories, not in a public issue. CI runs bandit, pip-audit, license checks, mypy --strict and a 90% branch-coverage gate. Details in SECURITY.md.
MIT. See LICENSE.
Revel uses the IP2Location LITE database for IP geolocation and the World Cities Database from SimpleMaps under CC BY 4.0.
setup.sh wizard