Files
ladill-link/DEPLOY.md
T
isaaccladandCursor 29993040bd
Deploy Ladill Link / deploy (push) Successful in 58s
Read Afia AI credentials from platform admin settings.
Link Afia now resolves provider, model, and API keys from ladilldb.platform_settings like the monolith, with .env fallbacks for local dev.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 14:34:43 +00:00

1.5 KiB

Ladill Link — deployment

Ladill Link is the platform URL shortener. Public short URLs live on ladl.link; the management app runs at link.ladill.com.

Domains

Host Purpose
ladl.link Public short-link resolution (/{slug})
link.ladill.com SSO management UI (create/edit links)

Both vhosts point at the same Laravel app. Set LINK_PUBLIC_DOMAIN=ladl.link in .env.

Pricing

GHS 0.05 per link created (LINK_PRICE_PER_LINK_GHS). Debited from the central UserWallet via the Billing API.

Platform onboarding

From the monolith:

php artisan ladill:onboard-app link --run-dns
php artisan ladill:launcher:sync --propagate --push

Register the Passport OIDC client:

php artisan passport:client \
  --name="Ladill Link" \
  --redirect_uri="https://link.ladill.com/sso/callback"

Set BILLING_API_KEY_LINK and IDENTITY_API_KEY_LINK on both monolith and this app.

Grant read access to platform AI settings:

sudo mysql -e "GRANT SELECT ON ladilldb.platform_settings TO 'ladill_link'@'127.0.0.1'; FLUSH PRIVILEGES;"

Afia reads ai_* keys from platform_settings (same as ladill.com admin). Optional AFIA_API_KEY in .env overrides for local dev.

Legacy URLs

https://ladill.com/q/{code} continues to work for existing QR and storefront codes. New links use https://ladl.link/{code}. Unknown slugs on ladl.link fall back to the legacy resolver.

Database

php artisan migrate --force

Database name: ladill_link.