Note: you can adjust the ports below, the default is to listen on 443 with a self-signed cert.  Note: there are different sections for v4 vs v5

Quick start with docker (not docker-compose)

Install postgres

docker run --name postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=pass -d -p 5432:5432 postgres:14

v4: Install grouper.  Note, get your IP address and substitute that in the database connect string (w.x.y.z)

docker run --name grouper -e GROUPERSYSTEM_QUICKSTART_PASS=pass -e GROUPER_MORPHSTRING_ENCRYPT_KEY=abc123 \
    -e GROUPER_DATABASE_PASSWORD=pass -e GROUPER_DATABASE_USERNAME=postgres \
    -e GROUPER_DATABASE_URL=jdbc:postgresql://w.x.y.z:5432/postgres -e GROUPER_AUTO_DDL_UPTOVERSION='v4.*.*' \
    -d -p 443:443 i2incommon/grouper:4.8.0 quickstart

v5.7+: Install grouper.  Note, get your IP address and substitute that in the database connect string (w.x.y.z)

docker run --name grouper -e GROUPERSYSTEM_QUICKSTART_PASS=pass -e GROUPER_MORPHSTRING_ENCRYPT_KEY=abc123 \
    -e GROUPER_DATABASE_PASSWORD=pass -e GROUPER_DATABASE_USERNAME=postgres \
    -e GROUPER_DATABASE_URL=jdbc:postgresql://w.x.y.z:5432/postgres -e GROUPER_AUTO_DDL_UPTOVERSION='v4.*.*' \
    -d -p 443:8443 i2incommon/grouper:5.7.0 quickstart


Quick start with docker-compose

You need to have the "docker" and "docker-compose" commands available (e.g. in linux, mac, or windows)

Make a directory with a docker compose yaml inside

$ mkdir quickstart
$ cd quickstart
$ vi docker-compose.yml

type 'i' for insert, then paste the following

v4

version: '3'
services:
  postgres:
    image: "postgres:14"
    restart: always
    ports:
      - '5432:5432'
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=pass
  grouper:
    image: "i2incommon/grouper:4.8.0"
    restart: always
    ports:
      - '443:443'
    command:
      - quickstart
    environment:
      - GROUPERSYSTEM_QUICKSTART_PASS=pass
      - GROUPER_MORPHSTRING_ENCRYPT_KEY=abc123
      - GROUPER_DATABASE_PASSWORD=pass
      - GROUPER_DATABASE_USERNAME=postgres
      - GROUPER_DATABASE_URL=jdbc:postgresql://postgres:5432/postgres
      - GROUPER_AUTO_DDL_UPTOVERSION=v4.*.*
      - GROUPER_RUN_HSQLDB=false

v5.7+

version: '3'
services:
  postgres:
    image: "postgres:14"
    restart: always
    ports:
      - '5432:5432'
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=pass
  grouper:
    image: "i2incommon/grouper:5.7.0"
    restart: always
    ports:
      - '443:8443'
    command:
      - quickstart
    environment:
      - GROUPERSYSTEM_QUICKSTART_PASS=pass
      - GROUPER_MORPHSTRING_ENCRYPT_KEY=abc123
      - GROUPER_DATABASE_PASSWORD=pass
      - GROUPER_DATABASE_USERNAME=postgres
      - GROUPER_DATABASE_URL=jdbc:postgresql://postgres:5432/postgres
      - GROUPER_AUTO_DDL_UPTOVERSION=v4.*.*
      - GROUPER_RUN_HSQLDB=false

Type this to save and exit

<esc> :wq



Start the quickstart

$ docker compose up -d

Or might be

$ docker-compose up -d

Login:

https://localhost

User: GrouperSystem

Pass: pass

Run individual docker or podman commands if you dont have docker-compose

Start and init database

$ docker run --name postgres -e POSTGRES_PASSWORD=pass -d -p 5432:5432 postgres:14
$ docker exec -it -u postgres postgres psql
# CREATE USER grouper PASSWORD 'pass';
# CREATE DATABASE grouper;
# GRANT ALL PRIVILEGES ON DATABASE grouper TO grouper;
# \q

Get your IP address

$ ifconfig

Database url: jdbc:postgresql://a.b.c.d:5432/grouper (sub in ip address)

Run grouper (put in right database url, and the correct mount point for slashRoot on host if applicable)

docker run --detach --restart always --name grouper-ui \
  --mount type=bind,src=/opt/grouper/slashRoot,dst=/opt/grouper/slashRoot \
  --publish 443:443 -e GROUPER_MORPHSTRING_ENCRYPT_KEY=abc123 \
  -e GROUPER_DATABASE_URL=jdbc:postgresql://192.168.13.33:5432/postgres \
  -e GROUPER_DATABASE_USERNAME=grouper \
  -e GROUPER_DATABASE_PASSWORD=pass \
  -e GROUPER_AUTO_DDL_UPTOVERSION='v2.6.*' \
  -e GROUPER_RUN_SHIB_SP=false \
  -e GROUPER_UI_GROUPER_AUTH=true \
  -e GROUPERSYSTEM_QUICKSTART_PASS=pass i2incommon/grouper:2.6.9 ui
  • No labels

1 Comment

  1. If you are not using Docker Desktop and using something like minikube which also enables docker capabilities then you will need to change the ports section to 30443:443 and docker-compose up.  Then grab the IP address of minikube using "minikube ip" and connect to "https://{minikube ip}:30443/grouper" in your browser.