The Problem

Event organizers often rely on SaaS ticketing services that charge per‑ticket fees, lock data behind proprietary APIs, and limit branding. Migrating away from those services requires a self‑hosted stack that can handle ticket sales, attendee check‑in, and reporting without rebuilding core commerce logic.

What This Does

Hi.Events is a full‑stack, PHP‑based ticketing platform. The backend lives under the backend/ directory (≈ 160 PHP files) and follows a Laravel‑style architecture – see backend/app/Console/Kernel.php for the command line entry point and backend/app/DomainObjects/ for the data model (e.g., EventDomainObject.php, OrderDomainObject.php). The repository ships an all‑in‑one Docker image (Dockerfile.all-in-one) that bundles the web server, PHP runtime, and required extensions, letting you run the platform without a separate web server or database container.

How To Use It

Setup – Build and run the provided Docker image. # Build the monolithic image docker build -f Dockerfile.all-in-one -t hi-events:latest .

Create a runtime environment (replace <host‑port> as needed)

docker run -d \ -p 8080:80 \ --name hi-events \ -v $(pwd)/backend/.env.example:/app/.env \ hi-events:latest

The image contains the PHP runtime and an Apache/Nginx front‑end (as defined in Dockerfile.all-in-one). Configuration – Copy the example env file and supply the required variables. cp backend/.env.example backend/.env # Edit backend/.env: set DB connection, STRIPE keys, APPURL, etc.

The platform reads configuration from the .env file at runtime (standard Laravel behaviour). Running the Application – The container starts the web server automatically. Access the UI at http://localhost:8080. Artisan commands are available via docker exec, e.g. to create a super‑admin: docker exec hi-events php artisan hi:assign-super-admin <email>

(see backend/app/Console/Commands/AssignSuperAdminCommand.php). CI/CD – GitHub Actions are defined in .github/workflows/ (unit‑tests, deployment, image push). The test suite lives in tests/ (single test file detected) and runs on each push.

Real‑World Use

A midsize conference organizer can deploy the stack on a single VPS, point the DNS to the container, and use the built‑in Stripe Connect integration (see backend/app/DomainObjects/Enums/StripePlatform.php) to route payouts directly to speakers. Attendee data stays on‑premise, and custom branding is applied through the theme files under backend/app/DomainObjects/Enums/ColorTheme.php.

Code Health & Issues

Low – Missing comprehensive test coverage – only one test file present; many domain objects lack unit tests (backend/app/DomainObjects/). Medium – Potential secret leakage – example env file is present, but no .env is committed; developers must ensure production secrets are injected securely. Low – License present – AGPL‑3.0 listed in LICENCE. Low – CI configured – Workflows for unit tests, Docker image push, and CLA checks are in place (.github/workflows/unit-tests.yml). Medium – Database migration scripts not obvious – No explicit migrations/ directory; if Laravel migrations are used they may be hidden or generated at runtime, which could hinder automated provisioning. Low – Documentation – 15 Markdown files, including multilingual READMEs and INSTALLWITHOUTDOCKER.md, provide clear installation guidance.

The Bottom Line

Hi.Events delivers a self‑hosted ticketing solution with a solid PHP codebase and Docker‑first deployment, making it a viable alternative for organizations that need full data control and branding flexibility. The primary trade‑off is limited automated testing and unclear migration tooling, so teams should allocate effort for test expansion and verify database setup before production rollout. Suitable for mid‑size event operations with in‑house PHP expertise.