graph TB
subgraph "Client Devices"
Browser[Web Browser]
Mobile[Mobile Device]
AdminDevice[Admin Workstation]
end
subgraph "Load Balancer/CDN"
LB[Nginx Load Balancer<br/>SSL Termination]
end
subgraph "Docker Host Server"
subgraph "Application Containers"
APIContainer[heyhomie-api<br/>Rails 7.0<br/>Port: 3000]
AdminContainer[heyhomie-admin<br/>Rails 7.0<br/>Port: 3001]
RecoveryContainer[heyhomie-payment-recovery<br/>Ruby Service<br/>Port: 3002]
ClientContainer[heyhomie-client<br/>React.js 3<br/>Port: 8080]
end
subgraph "Database Containers"
PostgreSQLContainer[PostgreSQL 13<br/>with PostGIS<br/>Port: 5432]
RedisContainer[Redis 6<br/>Port: 6379]
end
subgraph "Shared Volumes"
DBVolume[Database Volume]
LogsVolume[Logs Volume]
UploadsVolume[File Uploads Volume]
end
end
subgraph "External Services"
StripeAPI[Stripe API<br/>payments.stripe.com]
EmailService[Email Provider<br/>SMTP/API]
SMSService[SMS Gateway<br/>API]
end
%% Client connections
Browser -->|HTTPS:443| LB
Mobile -->|HTTPS:443| LB
AdminDevice -->|HTTPS:443| LB
%% Load balancer routing
LB -->|/api/*| APIContainer
LB -->|/admin/*| AdminContainer
LB -->|/recovery/*| RecoveryContainer
LB -->|/*| ClientContainer
%% Internal service connections
APIContainer <-->|TCP:5432| PostgreSQLContainer
AdminContainer <-->|TCP:5432| PostgreSQLContainer
RecoveryContainer <-->|TCP:5432| PostgreSQLContainer
APIContainer <-->|TCP:6379| RedisContainer
AdminContainer <-->|TCP:6379| RedisContainer
APIContainer <-->|HTTP API| RecoveryContainer
%% External API connections
APIContainer -->|HTTPS API| StripeAPI
RecoveryContainer -->|HTTPS API| StripeAPI
APIContainer -->|SMTP/API| EmailService
RecoveryContainer -->|SMTP/API| EmailService
APIContainer -->|HTTP API| SMSService
%% Volume mounts
PostgreSQLContainer -.->|mount| DBVolume
APIContainer -.->|mount| LogsVolume
AdminContainer -.->|mount| LogsVolume
RecoveryContainer -.->|mount| LogsVolume
APIContainer -.->|mount| UploadsVolume
classDef client fill:#e3f2fd
classDef infrastructure fill:#f3e5f5
classDef application fill:#e8f5e8
classDef database fill:#fff3e0
classDef external fill:#ffebee
classDef storage fill:#f5f5f5
class Browser,Mobile,AdminDevice client
class LB infrastructure
class APIContainer,AdminContainer,RecoveryContainer,ClientContainer application
class PostgreSQLContainer,RedisContainer database
class StripeAPI,EmailService,SMSService external
class DBVolume,LogsVolume,UploadsVolume storage
Created
June 12, 2025 00:54
-
-
Save untainsYD/b8783dc0615a4fd0b56e48a0fc5b0fff to your computer and use it in GitHub Desktop.
Deployment and infrastructure
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment