Authgear is available as a Docker image. It depends on PostgreSQL and Redis. To run it locally, the simplest way is to use docker-compose.
Let's get started with creating a new directory.
mkdir myappcd myapp
First, we need to create authgear.yaml and authgear.secrets.yaml. Authgear itself is a CLI program capable of generating a minimal configuration file.
Run the following command to generate a minimal authgear.yaml:
docker run --rm -it -w "/work" -v "$PWD:/work" quay.io/theauthgear/authgear-server authgear init config
authgear.yaml is generated in your working directory.
Run the following command to generate a minimal authgear.secrets.yaml:
docker run --rm -it -w "/work" -v "$PWD:/work" quay.io/theauthgear/authgear-server authgear init secrets
authgear.secrets.yaml is now generated in your working directory.
The next step is to create docker-compose.yaml to setup PostgreSQL, Redis, and Authgear.
You can start with the following docker-compose.yaml:
version: "3"services:db:image: postgres:12.3volumes:- db_data:/var/lib/postgresql/dataenvironment:POSTGRES_USER: "postgres"POSTGRES_PASSWORD: "postgres"ports:- "5432:5432"​redis:image: redis:5.0volumes:- redis_data:/dataports:- "6379:6379"​authgear:# Remember to replace the latest tag with the exact version you would like to use!image: quay.io/theauthgear/authgear-server:latestvolumes:- ./authgear.yaml:/app/authgear.yaml- ./authgear.secrets.yaml:/app/authgear.secrets.yamlenvironment:DEV_MODE: "true"LOG_LEVEL: "debug"ports:- "3000:3000"​volumes:redis_data:driver: localdb_data:driver: local
The three services run in the same network. We have to ensure Authgear can connect to PostgreSQL and Redis.
Check authgear.secrets.yaml and see if it looks like the following:
secrets:- key: dbdata:database_schema: publicdatabase_url: postgres://postgres:postgres@db:5432/postgres?sslmode=disable- key: redisdata:host: redisport: 6379# Other entries that are randomly generated.# They are not listed here because they will be different.
Authgear depends on them so they have to be started first.
docker-compose up -d db redis
Run the database migration:
docker-compose run --rm authgear authgear migrate up
Run everything with:
docker-compose up
Visit http://localhost:3000 and try signing up as a new user!