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:

  1. Copy your Secret key and Publishable key from the API Keys section.
  2. 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}}"

Resources