Overview
This page provides information on the components used in the out-of-the-box Ed-Fi Docker Compose configuration, as well as brief descriptions and diagrams of each configuration mode supported by the Ed-Fi Docker solution.
Components
The Ed-Fi Docker solution contains images to support the following components. All images are built on the Alpine Linux distribution. Custom images are distributed via the edfialliance account on Docker Hub.
Image Name | Application | Purpose |
---|---|---|
ods-api-web-gateway | NGiNX 1.25.1 | Reverse proxy web server that provides:
"Potential" means that the container can be reconfigured to support these features. |
ods-api-web-gateway-sandbox | NGiNX 1.25.1 | Similar to ods-api-web-gateway, except serving routes for:
|
ods-api-web-api | Ed-Fi Web API | Hosts the core Ed-Fi Web API web service, configurable to support various modes in the sections below. Configured for use with PostgreSQL databases. |
ods-api-web-api:<TAG>-mssql | Ed-Fi Web API | Hosts the core Ed-Fi Web API web service, configurable to support various modes in the sections below. Configured for use with Microsoft SQL Server databases. |
ods-api-web-swaggerui | Ed-Fi SwaggerUI | Hosts a web-based user interface for documenting the API and allowing users with client credentials to interact with the API. |
ods-api-web-sandbox-admin | Ed-Fi Sandbox Admin | Hosts the Ed-Fi Sandbox web application, used for configuring new sandboxes used for client testing. Configured for use with PostgreSQL databases. |
ods-api-web-sandbox-admin:<TAG>-mssql | Ed-Fi Sandbox Admin | Hosts the Ed-Fi Sandbox web application, used for configuring new sandboxes used for client testing. Configured for use with Microsoft SQL Server databases. |
ods-api-db-ods | PostgreSQL 13.12 | Pre-configured PostgreSQL database containing the ODS database, with both the Ed-Fi core data model and the Teacher Preparation Data Model (TPDM). Loaded with the "minimal template" that provides a default set of Descriptors and no other data. |
ods-api-db-sandbox | PostgreSQL 13.12 | Like the ods-api-db-ods, but using the "populated template" that contains a small set of sample data representing the fictional Grand Bend school district. |
ods-api-db-admin | PostgreSQL 13.12 | Pre-configured PostgreSQL server with two database: EdFi_Admin and EdFi_Security. |
ods-admin-api | Ed-Fi ODS Admin Api | Hosts the Ed-Fi ODS Admin Api web application, configured for use with PostgreSQL databases, and configurable for Single Tenant and Single Tenant with ODS Contexts. |
PgBouncer | PgBouncer latest (1.20.0) | Lightweight PostgreSQL connection pooler that improves application scalability through connection pooling. |
Additional Images
These Ed-Fi Alliance maintained images are not included in the configurations described below, and therefore must be deployed separately.
Image Name | Application | Purpose |
---|---|---|
data-import | Ed-Fi Data Import | Hosts the Ed-Fi Data Import web application, configured for use with PostgreSQL as a backing database. See Docker Deployment for Data Import for usage instructions |
analytics-middle-tier | Ed-Fi Analytics Middle Tier | Distribution of the Analytics Middle Tier command line installation tool. |
Configuration Modes
The following configurations are supported out of the box. In the diagrams below, the dashed line represents the internal Docker network, and all rectangles represent separate containers. Cylinders represent data that should be stored in volumes that are mapped outside of the Docker network for permanency.
Sandbox Configuration
A Sandbox environment is generally used to support API client developers in developing client applications. It is not intended to be a staging environment for the platform host. Includes the following web applications:
- Ed-Fi Web API
- Ed-Fi Sandbox Admin
- SwaggerUI
SingleTenant Configuration
The SingleTenant configuration runs a single ODS database that serves all data going through the API. In this configuration, a single deployment can support multiple school years and multiple districts. However, the Ed-Fi Alliance recommends that implementations only store a single school year in any ODS database; see Guidance on Multi-Year Data in ODS for more information.
Includes the following web applications:
- Ed-Fi Web API
- Ed-FI ODS Admin Api
SingleTenant with ODS Context Configuration
This mode enables a single API instance to support multiple ODS databases, partitioned by year. See Context-Based Routing for Year-Specific ODS for more information on this mode.
Includes the following web applications:
- Ed-Fi Web API
- Ed-FI ODS Admin Api
MultiTenant Configuration
This mode enables a single API with multiple tenants and one ODS per tenant. See Multi-Tenant Configuration for more information on this mode.
Includes the following web applications:
- Ed-Fi Web API
MultiTenant with ODS Context Configuration
This mode enables a single API with multiple tenants and each tenant supporting multiple ODS databases, partitioned by year. See Multi-Tenant Configuration and Context-Based Routing for Year-Specific ODS for more information on this mode.
Includes the following web applications:
- Ed-Fi Web API