POSITIONING FIX — PNPL is NOT just 'QR codes at events': - Charities collecting at events (QR per table) - High-net-worth donor outreach (personal links via WhatsApp/email) - Org-to-org pledges (multi-charity projects) - Personal fundraisers (LaunchGood/Enthuse redirect) TERMINOLOGY (throughout app): - Events → Campaigns (sidebar, pages, create dialogs, onboarding) - QR Codes page → Pledge Links (sharing-first, QR is one option) - Scans → Clicks (not just QR scans) - 'New Event' → 'New Campaign' - 'Create QR Code' → 'Create Pledge Link' - Source label: 'Table Name' → 'Source / Channel' SHARING (pledge links page): - 4-button share row: Copy · WhatsApp · Email · More (native share) - Each link shows its full URL - Create dialog suggests: 'WhatsApp Family Group, Table 5, Instagram Bio' - QR code is still shown but as one option, not the hero LANDING PAGE (complete rewrite): - Hero: 'Collect pledges. Convert them into donations.' - 4 use case cards: Events, HNW Donors, Org-to-Org, Personal Fundraisers - 'Share anywhere' section: WhatsApp, QR, Email, Instagram, Twitter, 1-on-1 - Platform support: Bank Transfer, LaunchGood, Enthuse, JustGiving, GoFundMe, Any URL - Islamic fund types section: Zakat, Sadaqah, Sadaqah Jariyah, Lillah, Fitrana ZAKAT & FUND TYPES: - Organization.zakatEnabled toggle in Settings - Pledge.fundType: general, zakat, sadaqah, lillah, fitrana - Identity step: fund type picker (5 options) when org has zakatEnabled - Zakat note: Quran 9:60 categories reference - Settings: toggle card with fund type descriptions FUND ALLOCATION: - Event.fundAllocation: 'Mosque Building Fund', 'Orphan Sponsorship' etc. - Charities can also add external URL for reference/allocation (not just fundraisers) - Shows on campaign cards and pledge flow
3.1 KiB
3.1 KiB
Infrastructure Access
All values live in .env (gitignored). This file maps the topology.
Servers
| Var | Purpose |
|---|---|
SSH_USER, SSH_HOST, SSH_PORT |
Primary server SSH (159.195.60.33) |
CR_LIVE_HOST, CR_LIVE_USER, CR_LIVE_SSH_KEY |
CR owned live server (161.35.173.174) — Laravel app |
MARKETING_HOST, MARKETING_USER, MARKETING_SSH_KEY |
Marketing site (178.128.169.175) — not yet accessible |
WP_HOST |
WordPress production (157.245.43.50) — www.charityright.org.uk |
SSH Commands
# Primary server
ssh root@159.195.60.33
# CR owned live server
ssh -i ~/.ssh/id_ed25519_charity root@161.35.173.174
# Marketing site (not yet accessible)
ssh -i ~/.ssh/id_ed25519_charity root@178.128.169.175
# WordPress production (www.charityright.org.uk)
ssh root@157.245.43.50
Incus Containers (on primary server)
| Container | Internal IP | Status | Purpose |
|---|---|---|---|
| cr-server-new | 10.213.16.224 | RUNNING | CharityRight |
| qc-server-new | 10.213.16.234 | RUNNING | QuikCue |
| qc-server | — | STOPPED | legacy |
HAProxy (on primary server)
| Domain pattern | Backend |
|---|---|
| charityright domains | → cr-server-new:443/80 |
| quikcue domains | → qc-server-new:443/80 |
| antivirus.quikcue.com | → localhost:8877 |
| SSH (gitea) | → qc-server-new:2224 |
Databases
| Var | Type | Purpose |
|---|---|---|
DATABASE_URL |
Postgres | donation_warehouse (port 5000 on primary) |
MYSQL_HOST, MYSQL_PORT, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD |
MySQL | CharityRight legacy (DigitalOcean managed) |
REDIS_HOST, REDIS_PASSWORD, REDIS_PORT |
Redis | CharityRight sessions/cache |
Services on Server
| Path | Service | Key Vars |
|---|---|---|
/opt/ayn-antivirus |
AYN Antivirus scanner + dashboard | ANTHROPIC_API_KEY |
/opt/enthuse-db-sync-v2 |
Enthuse donation sync | ENTHUSE_EMAIL, TOTP_SECRET, GOOGLE_CLIENT_* |
/opt/launchgood-sync |
LaunchGood donation sync | LG_EMAIL, LG_PASSWORD |
/root/legacy-donation-system-laravel |
CharityRight Laravel app | STRIPE_*, PAYPAL_*, GOCARDLESS_*, POSTMARK_TOKEN |
/root/redis-v2 |
Redis instance | REDIS_PASSWORD |
Payment Providers
| Var prefix | Provider |
|---|---|
STRIPE_* |
Stripe (live) |
PAYPAL_* |
PayPal (live) |
GOCARDLESS_* |
GoCardless (live) |
| Var | Provider |
|---|---|
SENDGRID_TX_API_KEY |
SendGrid |
POSTMARK_TOKEN |
Postmark (active mailer) |
Third-party Integrations
| Var | Service |
|---|---|
N3O_*_ENDPOINT |
N3O/Engage donation import hooks |
ZAPIER_WEBHOOK_ENDPOINT |
Zapier automation |
GOOGLE_PLACES_API_KEY |
Google Places autocomplete |
CT_STRAVA_* |
Strava challenge tracker |
WORDPRESS_URL, WORDPRESS_KEY |
WordPress (Cloudways) |
CharityRight n8n
- URL: https://n8n.charityright.org.uk
- API Key: stored in .env as N8N_CR_API_KEY