5.1 KiB
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
- og:url: https://banatie.app/
- og:image: https://banatie.app/og-image.png
- og:type: website
- og:locale: en_US
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