Security
Security at Melyx
Security is built into every layer of Melyx. From authentication to billing,
we design our systems to protect user data, prevent abuse, and keep 17+ live
apps running reliably.
Infrastructure
Cloudflare-frontedEvery request passes Cloudflare's WAF, DDoS protection, and TLS termination before reaching origin.
Two regions: EU + TokyoOrigin servers in Dublin (EU) and Tokyo. EU data stays in EU when possible.
Encrypted in transitHTTPS / TLS 1.2+ enforced everywhere. HSTS preload on every domain.
Isolated servicesEach app runs as its own service unit with scoped credentials.
Authentication & Identity
OAuth2 + JWTStandard session model. Short-lived access tokens, HTTP-only refresh cookies.
Magic link & social loginSingle-use, expiring, signed magic links. Google & GitHub OAuth.
Argon2id password hashingModern memory-hard hash. Per-user salt.
Forward-auth at the edgeCaddy forward_auth protects internal apps centrally — no per-app auth code to get wrong.
Payments & Billing
All payments are processed by Stripe.
Card numbers never touch Melyx servers — we receive Stripe-issued tokens, not PANs.
PCI-DSS via StripeStripe Elements / Checkout handle the card flow in the browser. PCI scope stays with Stripe.
Signed webhooksEvery Stripe event is signature-verified before it can mutate state.
Subscription controlCreate / upgrade / cancel are webhook-driven and idempotent.
Data Protection
Encryption in transitTLS everywhere. No plaintext traffic between services.
Minimal data principleWe collect what we need to run the product, and nothing more.
Access-controlled internalsAdmin surfaces gated by SSO + per-app role. No shared credentials.
BackupsDaily encrypted database snapshots, retained 30 days.
Abuse & Threat Protection
Rate limitingPer-IP and per-account, tunable per endpoint.
Suspicious-login detectionNew IP, new device, impossible travel — all surfaced and optionally blocked.
Email verificationRequired on every account. Disposable / abuse-domain filtering on signup.
Bot preventionCloudflare bot management + heuristics on signup and checkout.
Responsible Disclosure
If you discover a security issue, please report it responsibly. We acknowledge
reports within 48 hours and will keep you informed through resolution.
We don't run a paid bug-bounty programme, but we credit researchers who help us
ship safer products.
Contact: [email protected]
System Status
Live operational status is available on the status page.
For incident notifications, write to [email protected]
and we'll add you to the operator list.