VPS Specifications

Recommended single-VPS setup for MVP launch. Containerized for easy future migration.

Core Software Stack

SoftwarePurposeStatus
Ubuntu Server 24.04Operating SystemRequired
Docker + Docker ComposeContainerizationRequired
NginxReverse proxy, SSL terminationRequired
Node.js (LTS)Backend API runtimeRequired
PostgreSQLPrimary databaseRequired
RedisCaching, slot holds, sessionsRecommended
PM2Process managerRequired
CertbotSSL certificate managementRequired

Security Hardening Checklist

Naked VPS means full security responsibility. These are mandatory before launch.

External Services & Accounts

All third-party services are paid directly by the client. Development partner handles technical integration only.

Domain Registration

Domain name for the platform (e.g., footsol.co.uk)

namecheap.com →

VPS — Contabo

Best price/performance ratio for EU hosting

contabo.com →

VPS — Hetzner

Excellent price, reliable EU infrastructure

hetzner.com →

Stripe (Payments)

Card payments, Apple Pay, Google Pay, Connect for marketplace

stripe.com →

Apple Developer

Required for iOS App Store distribution ($99/year)

developer.apple.com →

Google Play Console

Required for Android app publishing ($25 one-time)

play.google.com/console →

Firebase

Push notifications via FCM (Android + iOS)

firebase.google.com →

Google Maps API

Venue discovery, distance calculation, map views

Google Cloud Console →

Cloudflare

DNS management, CDN, DDoS protection

cloudflare.com →

SendGrid (Email)

Transactional emails: confirmations, receipts, notifications

sendgrid.com →

Twilio (SMS)

Optional SMS notifications and verification

twilio.com →

Deployment Structure

/apps/ backend/ # Node.js API source admin/ # React admin panel build /data/ postgres/ # PostgreSQL data directory /nginx/ config/ # Nginx site configurations Docker Compose Services: ┌─────────────┐ │ nginx │ ← SSL termination, reverse proxy └──────┬──────┘ │ ┌──────▼──────┐ │ node-api │ ← Express API (port 3000) └──────┬──────┘ │ ┌──────▼──────┐ ┌───────────┐ │ postgresql │ │ redis │ └─────────────┘ └───────────┘

Domain & DNS Setup

SubdomainPoints ToPurpose
api.domain.comVPS IPBackend API
admin.domain.comVPS IPAdmin panel

DNS managed via Cloudflare (strongly recommended for DDoS protection and caching).

Risks & Mitigations

Single Point of Failure

If the VPS crashes, everything goes down. Mitigation: automated daily backups, monitoring with Uptime Kuma, documented recovery procedure.

No Auto-Scaling

High traffic requires manual VPS upgrade. Mitigation: containerized architecture allows easy migration to cloud with auto-scaling when needed.

Manual Backups

Backups must be configured manually. Mitigation: automated pg_dump cron job to external object storage (e.g., Backblaze B2).

Full Security Responsibility

No cloud-layer protection. Mitigation: UFW firewall, Fail2Ban, SSH hardening, Cloudflare proxy, regular security updates.

Booking Concurrency

The biggest technical challenge — double-booking prevention. Mitigation: DB UNIQUE constraint + atomic slot hold lock (belt + suspenders approach).

Senior Architect Recommendation

For MVP: Yes, use naked VPS. But design so migration is easy later.