Docker Compose Installation
Docker provides the easiest deployment method with consistent environments across platforms. OCI-compliant containers provide a consistent deployment experience across many platforms, including Docker Desktop, Kubernetes, and other services. The following quick start instructions demonstrate application startup in Docker. They illustrate how to configure the applications, including environment variables, persistent storage, and networking. These notes can also serve as a template for building your own deployment in the container runtime engine of your choice, whether on-premises or in the Cloud.
This is one of three alternative installation paths. If you instead want to host the Admin App on Windows IIS or on a Unix-like server, see Windows IIS Installation or Unix-like Systems Installation.
Docker Installation Guide for Ed-Fi Admin App
This guide explains how to install and run the Ed-Fi Admin App using Docker
Compose and the provided start-services.ps1 script. It covers both building
images locally and pulling pre-built images from Docker Hub, as well as
environment variable configuration.
Docker Prerequisites
- Docker Desktop installed and running
- PowerShell (Windows)
Quick Start
-
Clone the Admin App repository:
Reference
composefolder from Admin ApptipIf you have not cloned the Admin App repository, do so and ensure you are in the correct directory.
noteAlways install from a stable release tag, not the default
mainbranch (which reflects active development). Visit the Releases page to find the latest stable release tag, then use it in the command below.# Replace the TAG value with the latest release from the Releases page$TAG = "v4.0.1"git clone --branch $TAG --depth 1 https://github.com/Ed-Fi-Alliance-OSS/Ed-Fi-AdminApp.git -
Create environment configuration:
cp .env.example .env# Edit .env file with your specific settingsThe
.env.examplefile is located in thecomposedirectory. -
Generate SSL certificates:
# On Linux/WSL/Git Bash:cd ssl && ./generate-certificate.sh && cd ..noteOnly needed if you don't already have a certificate pair to use.
-
Start core and Admin App services:
-
Using Pre-Built Images: The recommended way to run the Admin App is to use the official images from Docker Hub.
-
Frontend:
edfialliance/admin-app-fe:v4.0.1 -
API:
edfialliance/admin-app-api:v4.0.1 -
Open PowerShell in the
composedirectory:cd ./composetipIf you encounter permission issues, run PowerShell as Administrator.
-
Run the following command to start all services:
./start-services.ps1This script will pull the required images and start the containers defined in
adminapp-services.ymlandedfi-services.yml.
-
-
Building Images Locally (Advanced):
If you want to build the images from source (for development or customization), Ensure you have cloned the repository and installed all dependencies. In the
composedirectory, run:./start-services.ps1 -RebuildThis will build the
admin-app-feandadmin-app-apiimages locally before starting the containers.
Environment Variables
Deployment settings can be customized using environment variables. Define these variables in a .env file within the compose directory, or provide them directly to Docker Compose as needed.
For a complete list of available variables and their descriptions, see the Environment variables example file.
Example .env for Production
# Use strong, unique passwords
POSTGRES_PASSWORD=your-secure-password
KEYCLOAK_ADMIN_PASSWORD=your-keycloak-password
# Set production URLs
VITE_API_URL=https://yourdomain.com/adminapp-api
FE_URL=https://yourdomain.com/adminapp
MY_URL=https://yourdomain.com/adminapp-api
# This line is only necessary when you are using a self-signed certificate.
NODE_EXTRA_CA_CERTS=/app/ssl/your-production-cert.crt
# Administrator credentials
KEYCLOAK_ADMIN=admin
# Frontend UI Configuration
VITE_STARTING_GUIDE=https://docs.ed-fi.org/reference/admin-app/configuration/global-administration-tasks
VITE_CONTACT=https://community.ed-fi.org/
VITE_APPLICATION_NAME="Ed-Fi Admin App"
VITE_IDP_ACCOUNT_URL=https://yourdomain.com/auth/realms/edfi/account/
Important: The VITE_IDP_ACCOUNT_URL value may differ from your Keycloak admin console URL.
This should point to the account management interface (/auth/realms/{realm-name}/account/), not the admin console.
Ensure this matches your actual Keycloak realm configuration and domain.
- SSL Certificates: Replace self-signed certificates with production certificates in a live environment.
- Database: For reliability, consider using an external PostgreSQL instance in production.