Installation on Docker Container Runtimes
Components
An AS2G Docker deployment contains three basic components:
- Web interface, backend
- AS2 processing component, broker
- Database
Database can be deployed either
- in-cluster (using a persistent data volume, e.g. for MySQL
/var/lib/mysql), or - run externally, e.g.
- managed service like AWS RDS or Google Cloud SQL, or
- a standalone instance/VM.
AS2G has been tested against MySQL 8.x, PostgreSQL 12.x and Microsoft SQL Server (MSSQL/T-SQL); make sure that you pick backend/broker images compatible with the expected database deployment.
Additionally, statistics can be enabled by plugging in an Elasticsearch instance. This instance must be accessible over the ES REST API as well as the transport endpoint (X protocol).
Resource Allocation
Following minimal configurations (RAM: MB, CPU: cores, disk: GB) are expected for a Docker deployment. Refer to the Configuration Reference for more details and fine-tuning.
| Component | RAM | CPU | Disk |
| backend | 256 | 0.5 | 0.1 |
| broker | 512 | 1 | 1 |
| database | 512 | 1 | 10 |
NOTE: Database resource allocation largely depends on deployment nature:
- RAM/CPU: number of files/messages expected to be processed concurrently
- Disk: data retention period and average size of a message/file; for outgoing messages, size should be counted twice. For example, a 30-day retention of 50/day incoming (2MB avg.) and 75/day outgoing (1.5MB avg.) messages, will consume:
30 * (50 * 2 + 75 * 2 * 1.5) = 9.75GB(at least)
Startup
During the first run, system will auto-initialize the database schema. For this:
- backend should be launched before broker.
- backend needs a small additional time (usually < 1min) to initialize the database schema.
- after backend becomes accessible, it is safe to launch broker.
When launch is complete, backend (configuration web/browser interface) will be available via http://{backend pod host}:8080, and broker (AS2 receiving endpoint) via http://{broker pod host}:8280 by default.
Configuration / Customization
Settings can be applied via environment variables (replacing dots . on property keys with underscores _), or added to backend application.properties and broker default.properties.
Changes take effect after application restart.