Deploy Ladill Events / deploy (push) Successful in 29s
Ticket and contribution checkouts use platform Pay for fees and wallet settlement, with legacy QREP-* fallback via Billing. Co-authored-by: Cursor <cursoragent@cursor.com>
2.7 KiB
2.7 KiB
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/<code>
(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
- Repo: ladill-events (create on Gitea)
- Push to
maintriggers.gitea/workflows/deploy.yml. - App root:
/var/www/ladill-events
2. Server app-slot + database
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 '<pw>';"
sudo mysql -e "GRANT ALL ON ladill_events.* TO 'ladill_events'@'127.0.0.1'; FLUSH PRIVILEGES;"
3. Register OIDC client (platform)
php artisan passport:client \
--name="Ladill Events" \
--redirect_uri="https://events.ladill.com/sso/callback"
4. Platform integration
BILLING_API_KEY_EVENTS=<same>
IDENTITY_API_KEY_EVENTS=<same>
RP_EVENTS_FRONTCHANNEL_LOGOUT=https://events.ladill.com/sso/logout-frontchannel
LADILL_EVENTS_APP_URL=https://events.ladill.com
5. nginx + TLS
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
cd /var/www/ladill-events/current
php artisan migrate --force
php artisan config:cache route:cache view:cache
7. Data migration
# 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}/attendeesredirects here