Extract Ladill Events as a standalone events suite at events.ladill.com.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Full control center for ticketed events, contributions, attendees, badges, and programmes — not a QR utility clone. Includes SSO shell, import command, and platform cutover runbook. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# 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 |
|
||||
| `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 '<pw>';"
|
||||
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=<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
|
||||
|
||||
```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
|
||||
Reference in New Issue
Block a user