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.21.6
Reverse proxy web server that provides:
Single point of entry for HTTPS traffic into the Docker network, serving routes for:
Web API
Admin App
SSL termination
(Potential) load balancing for multiple Web API instances
(Potential) traffic logging
"Potential" means that the container can be reconfigured to support these features.
ods-api-web-gateway-sandbox
NGiNX 1.21.6
Similar to ods-api-web-gateway, except serving routes for:
Web API
Sandbox Admin Web
Swagger UI
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-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-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
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
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
Pre-configured PostgreSQL server with two database: EdFi_Admin and EdFi_Security.
ods-admin-app
Ed-Fi ODS Admin App
Hosts the Ed-Fi ODS Admin App web application, configured for use with PostgreSQL databases, and configurable for any of the supported modes: Shared Instance, Year Specific, or District Specific.
ods-admin-app-mssql
Ed-Fi ODS Admin App
Hosts the Ed-Fi ODS Admin App web application, configured for use with Microsoft SQL Server databases.
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:
...
Deck
history
false
id
sandox config
Card
id
PostgreSQLSandboxConfiguration
label
PostgreSQL
Card
id
SQLServerSandboxConfiguration
label
SQL Server
Shared Instance Configuration
The Shared Instance configuration runs a single ODS database that serves all data going through the API, as contrasted with the Year Specific and District Specific configurations described below. 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.
...
Deck
history
false
id
shared config
Card
id
PostgreSQLSharedConfiguration
label
PostgreSQL
Card
id
SQLServerSharedConfiguration
label
SQL Server
Year Specific Configuration
This mode enables a single API instance to support multiple ODS databases, partitioned by year. See Year-Specific ODS Configuration for more information on this mode.
...
Deck
history
false
id
year config
Card
label
PostgreSQL
Card
label
SQL Server
Card
label
SQL Server (multi-server)
District Specific Configuration
District Specific mode is like the Year Specific mode, except that the partitioning is by a school district / local education agency name or code instead of by year. See District-Specific ODS Configuration for more information on this mode.