banatie-strategy/execution/18-production-infrastructur...

5.1 KiB

Production Infrastructure

Date: December 21, 2025 Purpose: Document production deployment configuration and external services Status: Live Related docs: 12-the-current-tech-state.md


1. Production URLs

URL Purpose Status
https://banatie.app/ Landing page Live
https://www.banatie.app/ Redirects to non-www Configured
https://api.banatie.app/ API service Not deployed
https://cdn.banatie.app/ Image CDN 🔮 Future

Canonical URL: https://banatie.app/ (non-www, with trailing slash)


2. Hosting Infrastructure

VPS Provider

  • Provider: Contabo
  • Location: Singapore
  • Plan: Minimum tier
  • Shared with: Family Nextcloud, Gitea

Server Stack

  • Reverse Proxy: Caddy (auto SSL via Let's Encrypt)
  • Container Runtime: Docker Compose
  • Landing App: Next.js 15 (standalone output)

Docker Services (Landing)

banatie-landing:
  - Next.js standalone server
  - Port: 3000 (internal)
  - Volume: ./waitlist-logs (email collection)

3. Domain & DNS

Domain Registration

  • Registrar: GoDaddy
  • Domain: banatie.app

DNS Management

  • Provider: Cloudflare (migrated from GoDaddy)
  • Nameservers: cosmin.ns.cloudflare.com, ursula.ns.cloudflare.com

DNS Records

Type Name Value Proxy
A banatie.app [VPS IP] Proxied
CNAME www banatie.app Proxied
CNAME api banatie.app Proxied
CNAME cdn banatie.app Proxied
TXT @ google-site-verification=... DNS only
TXT _dmarc v=DMARC1;... DNS only

4. Cloudflare Configuration

SSL/TLS

  • Mode: Full (strict)
  • Certificate: Cloudflare Edge + Caddy (Let's Encrypt) on origin

Cache Rules

Rule: "Cache Next.js static"

Match: 
  - URI Path starts with /_next/static
  - URI Path ends with .png
  - URI Path starts with /_next/image

Then:
  - Browser TTL: 1 month
  - Edge TTL: 1 month
  - Cache Key: Include all query string parameters

Redirect Rules

Rule: "Add trailing slash"

Match: http.request.full_uri eq "https://banatie.app"
Then: 301 redirect to https://banatie.app/

AI Crawl Control

  • Managed robots.txt: Disabled (self-managed)
  • AI bot access: Allowed for all crawlers

5. SEO Configuration

Meta Tags

  • Title: AI Image Generation Inside Your Workflow | Banatie
  • Description: Generate production-ready images via API, SDK, CLI, or live URLs...
  • Keywords: API-first image generation, AI image API, image generation for developers...
  • Author: Banatie
  • Robots: index, follow

Open Graph

Technical SEO

  • Canonical: <link rel="canonical" href="https://banatie.app/"/>
  • Alternate hreflang: en (self-referencing)
  • robots.txt: /robots.txt (self-managed)
  • Sitemap: https://banatie.app/sitemap.xml

Google Search Console

  • Status: Verified (TXT record)
  • Indexed pages: 1 (banatie.app/)
  • Last crawl: December 19, 2025

6. Analytics

Umami Analytics

  • Plan: Cloud (free tier)
  • Dashboard: cloud.umami.is
  • Website ID: 5af6a122-ca2e-4a48-9bfd-9cfd4d7b5174
  • Future: Self-hosted planned

7. Performance

PageSpeed Scores (December 19, 2025)

Metric Mobile Desktop
Performance 95 99
Accessibility 100 100
Best Practices 100 100
SEO 100 100

Core Web Vitals (Mobile)

  • FCP: 1.7s
  • LCP: 2.9s
  • TBT: 10ms
  • CLS: 0

Image Optimization

  • Optimizer: Next.js built-in
  • Formats: AVIF (primary), WebP (fallback)
  • Logo size: 376KB → 7.5KB (50x reduction)

8. Email Collection

Current Implementation

  • Storage: File-based (volume on VPS)
  • Location: ./waitlist-logs/
  • Format: JSON files per submission
  • Email sending: Not implemented

Data Captured

  • Email address
  • Selected options from popup
  • Timestamp

Future Plans

  • Email service integration (TBD)
  • Welcome email automation
  • Newsletter setup

9. Next.js Configuration

// next.config.ts
const nextConfig: NextConfig = {
  output: 'standalone',
  trailingSlash: true,
  images: {
    formats: ['image/avif', 'image/webp'],
  },
  eslint: {
    ignoreDuringBuilds: true,
  },
};

10. Deployment Checklist

Completed

  • Landing page deployed (~December 15, 2025)
  • Domain connected via Cloudflare
  • SSL configured (Full strict)
  • Google Search Console verified
  • Umami analytics connected
  • Meta tags and OG image configured
  • Cache rules for static assets
  • Trailing slash redirect
  • Image optimization (AVIF)
  • PageSpeed 95+ mobile

Pending

  • API service deployment
  • CDN service setup (Imageflow + MinIO)
  • Email service integration
  • Self-hosted Umami migration

Document Owner: Oleg Last Updated: December 21, 2025 Next Review: After API deployment