Deploy Hi.Events | (Just Updated) Open Source Eventbrite Alternative, Ticketing with Postgres, Admin Pre-Set

Hi.Events event ticketing software: sell tickets, manage events, self-host

Deploy Hi.Events | (Just Updated) Open Source Eventbrite Alternative, Ticketing with Postgres, Admin Pre-Set

Just deployed

/var/lib/postgresql

Just deployed

/app/backend/storage/app

Deploy and Host Hi.Events on Railway

Built for an LLM agent to deploy and use. The deploy form has no fields. Hi.Events, the open-source event ticketing and management platform (an Eventbrite alternative), comes up with a Postgres database, an administrator account already created from a generated password, public registration closed, and a public HTTPS address. The contract below lists every address, variable name and one script that logs in and creates an organizer through the API.

Hi.Events here is the official daveearley/hi.events-all-in-one image, version 2.2.0 (Laravel API, Node frontend, nginx), behind a thin wrapper pinned by digest.

About Hosting Hi.Events

This template runs two services: Hi.Events (wrapper image) and Postgres 17. On every boot the wrapper binds nginx to Railway's port, derives the public address from the service domain, derives the application key from APP_KEY_SEED, waits for Postgres, runs the migrations, and creates the administrator admin@example.com with the password ADMIN_PASSWORD if no user exists yet. Redeploys keep the data: Postgres has a volume at /var/lib/postgresql and uploaded images live on a volume at /app/backend/storage/app, which is write-tested at boot. Sign-up of new accounts is closed (APP_DISABLE_REGISTRATION=true); the administrator invites others from the dashboard. Background jobs run inline (sync queue) and mail goes to the service log until you set MAIL_* variables. Stripe payments are off until you add your own STRIPE_* keys.

Agent contract

  • Public URL: https:// plus the RAILWAY_PUBLIC_DOMAIN value of the hi-events service (dashboard at /, API at /api)
  • Private URL: http://hi-events.railway.internal:8080
  • Credentials: ADMIN_PASSWORD (password of the administrator, generated, 32 characters; the login email is the fixed admin@example.com); JWT_SECRET, APP_KEY_SEED and DATABASE_URL are internal and need not be handled
  • Auth: POST /api/auth/login with JSON email and password returns a token; send it as Authorization: Bearer TOKEN on every other API call
  • Health: GET /api/ returns 200 without authentication; GET /api/users/me without a token returns 401 and POST /api/organizers without a token returns 401 (write without key: 401)
# needs: HOST (RAILWAY_PUBLIC_DOMAIN of the hi-events service) and ADMIN_PASSWORD from its variables
API="https://$HOST/api"
curl -s -o /dev/null -w "health: %{http_code}\n" "$API/"
curl -s -o /dev/null -w "read without key: %{http_code}\n" -H 'Accept: application/json' "$API/users/me"
curl -s -o /dev/null -w "write without key: %{http_code}\n" -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"name":"x","email":"x@example.com","currency":"USD","timezone":"UTC"}' "$API/organizers"
TOKEN=$(curl -s -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"email":"admin@example.com","password":"'"$ADMIN_PASSWORD"'"}' "$API/auth/login" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p')
curl -s -o /dev/null -w "read with key: %{http_code}\n" -H "Authorization: Bearer $TOKEN" -H 'Accept: application/json' "$API/users/me"
curl -s -o /dev/null -w "create organizer: %{http_code}\n" -X POST -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"name":"Agent Organizer","email":"organizer@example.com","currency":"USD","timezone":"UTC"}' "$API/organizers"

A fresh deploy prints health: 200, read without key: 401, write without key: 401, read with key: 200, create organizer: 201. Running it again adds another organizer and still returns 201.

Why Deploy Hi.Events on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Hi.Events on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

  • Agent-ready - no deployer fields, a contract block and one working login-and-create script.
  • Admin pre-set - the administrator is created at first boot from a generated password; no sign-up screen to click through.
  • Persistent - Postgres and uploads sit on volumes, and the application key is derived from a stored secret so sessions and encrypted data survive redeploys.
  • Closed by default - public registration is off, so strangers cannot open accounts on your instance.

Common Use Cases

  • Sell tickets for meetups, conferences and workshops without a per-ticket marketplace fee.
  • Run check-in with attendee lists and QR-code tickets.
  • Event pages with your own domain for community groups, clubs and venues.
  • Ticketing API for your own code - create events, products and orders from an application or an AI agent.

Dependencies for Hi.Events Hosting

  • Postgres (included as the postgres service)

Deployment Dependencies

Implementation Details

VariablePurpose
ADMIN_PASSWORDGenerated password of the administrator admin@example.com. Used only when the database has no user.
JWT_SECRETGenerated signing secret for API tokens.
APP_KEY_SEEDGenerated seed the application key is derived from. Do not change it after first boot.
DATABASE_URLConnection string to the postgres service over the private network.

The service listens on Railway's PORT (8080). Add MAIL_MAILER, MAIL_HOST and related variables to send real email, and STRIPE_* keys to take card payments.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51