Introduction
Grai consists of multiple different independent services including
Server
- Postgres + Django
- Redis
- Celery + Celery Beat
- flower
For more information about the server see Grai Server.
Web App
For more information about the web app see Grai Web App
Container Registry
We maintain up to date docker images for all of the Grai services on GitHub's Container Registry ghcr
Service | Image | Tags |
---|---|---|
Server | ghcr.io/grai-io/grai-core/grai-server | latest, semver |
Web App | ghcr.io/grai-io/grai-core/grai-frontend | latest, semver |
Deployment
Dependencies
Before you begin, make sure have access to both docker
and docker-compose
on your machine.
If you haven't used Docker before, we recommend you check out the Docker Getting Started Guide (opens in a new tab). For more installation about Docker Compose, see the Docker Compose Installation Guide (opens in a new tab). If you are on Windows, you may need to install WSL2 (opens in a new tab) to run Docker.
Running the Server and frontend
We maintain a variety of up to date docker-compose deployment scripts in version control here (opens in a new tab). Which you can always use for reference.
Minimal
The minimal configuration is a good starting point for testing out Grai. It's composed of only the bare minimum number of services required to run the server and frontend. You can find a reference to the minimal configuration here (opens in a new tab).
This will provide a fully functional instance of the Grai application although some of the features like scheduled tasks may operate with reduced functionality.
Complete
The complete configuration contains all of the services required to run the full Grai application. You can find a reference to the complete configuration here (opens in a new tab)
Deploying
Once you've decided which configuration you want to use you can deploy it by running the following steps.
Copy the docker-compose.yml
file
Open a terminal and navigate to whichever directory you intend to work from.
Then copy your intended docker-compose.yml
file into the work directory of your terminal
e.g. if you want to use the minimal configuration you would copy the following content into your compose file.
version: "3.7"
services:
db:
image: postgres:14.3-alpine
environment:
- POSTGRES_USER=grai
- POSTGRES_PASSWORD=grai
- POSTGRES_DB=grai
ports:
- 5432:5432
healthcheck:
test: "pg_isready -U grai"
interval: 2s
timeout: 2s
retries: 15
the_guide:
image: ghcr.io/grai-io/grai-core/grai-server:latest
ports:
- 8000:8000
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=grai
- DB_USER=grai
- DB_PASSWORD=grai
depends_on:
- db
- redis
healthcheck:
test: "curl -f -v -H 'Accept: application/json' http://localhost:8000/health/"
interval: 2s
timeout: 5s
retries: 10
start_period: 20s
frontend:
image: ghcr.io/grai-io/grai-core/grai-frontend:latest
ports:
- 3000:80
environment:
- REACT_APP_API_URL=http://localhost:8000
depends_on:
- the_guide
redis:
image: redis/redis-stack:6.2.6-v9
environment:
- REDISGRAPH_ARGS=RESULTSET_SIZE 100000
restart: always
ports:
- 6379:6379
- 8001:8001
docker compose up
Once you've copied the compose file into your work directory you can run docker-compose up
to start the services.
docker-compose up
It may take a few minutes for the services to start up but once they are running you should be able to access the frontend at http://localhost:3000
and the server at http://localhost:8000
.
Under the default configuration, an admin user will be created with the following credentials.
Username | Password |
---|---|
null@grai.io | super_secret |