Getting Started
Open Events is an open-source event management and ticketing platform. It provides a complete solution for creating events, selling tickets online, and managing attendees — with Stripe for payment processing and built-in role-based access control for organizers and administrators.
Prerequisites
- An Eyevinn OSC account. If you have not already signed up, the free trial gives you 15 days of access.
- A Stripe account for payment processing. Free to create; you need both secret and publishable API keys plus a webhook endpoint secret.
- A MinIO or S3-compatible bucket for storing event images and media.
Step 1: Create a PostgreSQL database
Open Events stores all event, order, and user data in PostgreSQL. Navigate to the PostgreSQL service and click Create psql-db. Give it a name (for example events) and choose a password.
When the instance is running, click on its card to find the host and port. The connection URL format is:
postgres://postgres:<password>@<host>:<port>/postgres
Step 2: Create a MinIO instance for media storage
Event cover images and speaker photos are stored in S3-compatible object storage. Navigate to the MinIO service and create an instance. Note the endpoint URL, access key, and secret key — you will need these in Step 4.
Create a bucket in MinIO (for example events-media) to store uploaded files.
Step 3: Configure Stripe
In your Stripe dashboard:
- Copy your Secret key and Publishable key from the API Keys section.
- Create a webhook endpoint pointing to
https://<your-instance-url>/api/webhooks/stripe. Copy the Webhook signing secret.
Step 4: Store secrets
Navigate to the Open Events service and open the Service Secrets tab. Create the following secrets:
| Secret name | Value |
|---|---|
dburl |
PostgreSQL connection URL from Step 1 |
nextauthsecret |
Random string — generate with openssl rand -base64 32 |
stripesk |
Stripe secret key |
stripewebhook |
Stripe webhook signing secret |
s3key |
MinIO access key ID |
s3secret |
MinIO secret access key |
Step 5: Create an Open Events instance
Go to the My openevents tab and click Create openevents.
| Field | Value |
|---|---|
| Name | A name for your instance |
| databaseUrl | {{secrets.dburl}} |
| nextauthSecret | {{secrets.nextauthsecret}} |
| stripeSecretKey | {{secrets.stripesk}} |
| stripePublishableKey | Your Stripe publishable key (not sensitive) |
| stripeWebhookSecret | {{secrets.stripewebhook}} |
| s3Endpoint | MinIO instance URL from Step 2 |
| s3Region | us-east-1 (or your MinIO region) |
| s3BucketName | events-media (bucket you created) |
| s3AccessKeyId | {{secrets.s3key}} |
| s3SecretAccessKey | {{secrets.s3secret}} |
| siteUrl | The URL of this instance (fill in after the instance starts) |
Optional fields for email notifications:
| Field | Value |
|---|---|
| smtpHost | Your SMTP server (e.g. SendGrid, Postmark, AWS SES) |
| smtpPort | SMTP port (typically 587) |
| smtpUser | SMTP username |
| smtpPassword | SMTP password (store as a secret) |
| fromEmail | Sender address for order confirmations and tickets |
Note: Without SMTP configured, order confirmation emails will not be sent to attendees.
Step 6: Log in and create your first organizer
When the instance is running, click on its card to open the platform. Register your first account — the first account created gets Super Admin privileges, which lets you manage all events and create additional organizer accounts.
CLI Usage
osc create eyevinn-openevents myevents \
-o databaseUrl="{{secrets.dburl}}" \
-o nextauthSecret="{{secrets.nextauthsecret}}" \
-o stripeSecretKey="{{secrets.stripesk}}" \
-o stripePublishableKey="pk_live_..." \
-o stripeWebhookSecret="{{secrets.stripewebhook}}" \
-o s3Endpoint="https://myminio.minio-minio.auto.prod.osaas.io" \
-o s3Region="us-east-1" \
-o s3BucketName="events-media" \
-o s3AccessKeyId="{{secrets.s3key}}" \
-o s3SecretAccessKey="{{secrets.s3secret}}"