Getting started
What’s NewRoadmapOcteth Training ProgramInstallation & Setup
RequirementsArchitectureServer SetupOempro InstallationCommunity Edition InstallSSL CertificatesVersion UpgradeTroubleshootingVideo Tutorials
Video TutorialsAdministration
Quick WalkthroughSecuritySub Admin AccountsSettingsDelivery ServersGlobal SegmentsGlobal Custom FieldsBounce ProcessingSpam ComplaintsSuppression ListPlug-InsDelivery ReportUser ManagementMaintenanceAudience Management
IntroductionSubscriber ListsCustom FieldsSegmentsSubscribersWebhooksWebsite Event TrackingEmail Marketing
IntroductionAuto RespondersEmail CampaignsSender Domain Man.Journeys (Automation)Bounce ProcessingEmail PersonalizationFBL ProcessingEmail Builder IntegrationsEmail DeliverabilitySender Domain ManagementPlug-Ins & Add-Ons
AI Plug-InRSS Plug-InBounce Catcher Add-OnLink Proxy Add-OnDevelopers
IntroductionSingle Sign OnAPIPlug-In DevelopmentDatabaseAdvanced
Reverse ProxyCookbookHelp
TroubleshootingContact UsArchitecture
Infrastructure Overview
In this article, we will provide an overview of the infrastructure used in Octeth. This includes details about each container, its purpose, and port allocations. Our infrastructure is designed to be robust, scalable, and easy to manage using Docker Compose.
Containers and Their Roles
Our Docker infrastructure consists of several containers, each serving a specific role. Below is a detailed description of each container:
- HAProxy (
oempro_haproxy
) - IP Address: 192.168.99.100
- Ports: 80, 81, 443, 25, 587, 5601, 11111, 8025, 15672
- Description: HAProxy is used for load balancing and proxying requests to the appropriate services within the infrastructure.
- Application (
oempro_app
) - IP Address: 192.168.99.101
- Description: This container runs the main application, handling user requests and core business logic.
- MailHog (
oempro_mailhog
) - IP Address: 192.168.99.102
- Description: MailHog is used for email testing by capturing emails sent by the application.
- RabbitMQ (
oempro_rmq
) - IP Address: 192.168.99.103
- Description: RabbitMQ is a message broker used for managing and routing messages between different services.
- System (
oempro_system
) - IP Address: 192.168.99.105
- Description: This container manages system-level tasks and dependencies.
- Elasticsearch (
oempro_elasticsearch
) - IP Address: 192.168.99.106
- Description: Elasticsearch is used for indexing and searching application data.
- Redis (
oempro_redis
) - IP Address: 192.168.99.107
- Description: Redis is used for caching and fast data retrieval.
- MySQL (
oempro_mysql
) - IP Address: 192.168.99.108
- Ports: 3306
- Description: MySQL is the primary relational database for the application.
- Email Gateway Inbound SMTP (
oempro_emailgateway_inbound_smtp
) - IP Address: 192.168.99.109
- Description: This container handles inbound SMTP traffic for the email gateway.
- Kibana (
oempro_kibana
) - IP Address: 192.168.99.110
- Description: Kibana is used for visualizing data stored in Elasticsearch.
- Cron (
oempro_cron
) - IP Address: 192.168.99.111
- Description: This container runs scheduled tasks and cron jobs.
- Supervisor (
oempro_supervisor
) - IP Address: 192.168.99.112
- Description: Supervisor is used for managing processes within the infrastructure.
- Vector (
oempro_vector
) - IP Address: 192.168.99.113
- Ports: 8888
- Description: Vector is used for collecting and processing logs.
- ClickHouse (
oempro_clickhouse
) - IP Address: 192.168.99.114
- Ports: 8123
- Description: ClickHouse is used for analytics and fast data processing.
Network Configuration
All containers are connected to a single network named public_net
, which ensures that they can communicate with each other seamlessly. The public_net
network is configured with the following settings:
- Subnet: 192.168.99.0/24
- Driver: bridge
Port Allocation
The ports used by each container are carefully allocated to avoid conflicts and ensure smooth operation. Below is a summary of the port allocations:
- HAProxy (
oempro_haproxy
): - Public Ports: 80, 81, 443, 25, 587, 5601, 11111, 8025, 15672
- MySQL (
oempro_mysql
): - Port: 3306
- ClickHouse (
oempro_clickhouse
): - Port: 8123
- Vector (
oempro_vector
): - Port: 8888
Dependencies
Some containers depend on others to function correctly. For example, oempro_system
depends on rabbitmq
, redis
, elasticsearch
, mysql
, and clickhouse
. Similarly, oempro_app
depends on multiple services, including rabbitmq
, redis
, elasticsearch
, mysql
, clickhouse
, and oempro_system
.
Conclusion
This infrastructure setup ensures high availability, scalability, and efficient resource management. Each container plays a vital role in the overall system, and careful port allocation and network configuration help maintain seamless operation.
If you have any questions or need further assistance, please feel free to contact our support team.