# Ladill Events — deploy & cutover runbook Standalone app for the **full events suite** at `events.ladill.com` — ticketed events, contributions, free registration, attendee check-in, badge printing, and programme/itinerary outlines. Not a QR utility app; this is the events control center (Overview, Events, Programmes, Payments & Payouts). Trusts `auth.ladill.com` for SSO. Ticket/contribution money settles via Ladill Pay into the one platform UserWallet. Public scans stay at `ladill.com/q/` (blueprint decision — printed codes never migrate). --- ## 0. Prerequisites | Secret | Where | |---|---| | `LADILL_SSO_CLIENT_ID` / `LADILL_SSO_CLIENT_SECRET` | `passport:client` on platform | | `BILLING_API_KEY_EVENTS` | platform `.env` + this app | | `PAY_API_KEY_EVENTS` | platform `.env` (`PAY_API_KEY_EVENTS`) + this app — Ladill Pay checkout | | `IDENTITY_API_KEY_EVENTS` | platform `.env` + this app | ## 1. Gitea repo + CI 1. Repo: **ladill-events** (create on Gitea) 2. Push to `main` triggers `.gitea/workflows/deploy.yml`. 3. App root: `/var/www/ladill-events` ## 2. Server app-slot + database ```bash sudo install -d -o deploy -g www-data /var/www/ladill-events sudo mysql -e "CREATE DATABASE ladill_events CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" sudo mysql -e "CREATE USER 'ladill_events'@'127.0.0.1' IDENTIFIED BY '';" sudo mysql -e "GRANT ALL ON ladill_events.* TO 'ladill_events'@'127.0.0.1'; FLUSH PRIVILEGES;" ``` ## 3. Register OIDC client (platform) ```bash php artisan passport:client \ --name="Ladill Events" \ --redirect_uri="https://events.ladill.com/sso/callback" ``` ## 4. Platform integration ```env BILLING_API_KEY_EVENTS= IDENTITY_API_KEY_EVENTS= RP_EVENTS_FRONTCHANNEL_LOGOUT=https://events.ladill.com/sso/logout-frontchannel LADILL_EVENTS_APP_URL=https://events.ladill.com ``` ## 5. nginx + TLS ```bash sudo deployment/setup-service-subdomain-nginx.sh events --app /var/www/ladill-events/current ``` Public `/q/*` event landings can stay on the monolith initially; nginx can proxy event codes to this app after import. ## 6. First deploy ```bash cd /var/www/ladill-events/current php artisan migrate --force php artisan config:cache route:cache view:cache ``` ## 7. Data migration ```bash # platform php artisan events:export --out=/tmp/events-export.json # events app php artisan events:import /tmp/events-export.json \ --storage-source=/var/www/ladill/current/storage/app/private/qr \ --commit ``` ## 8. Verify - Sign in at `https://events.ladill.com` - Overview shows registrations, revenue, check-in rate - Events list + create (tickets / contributions / free) - Attendees, badges, programme share - Account portal `/qr-codes/{id}/attendees` redirects here