io7m | single-page | multi-page | epub | Idstore User Manual 1.0.0-beta0002
1. Introduction
Previous
Front Matter
Up
3. Configuration
Next

# 2. Installation

- 2.1. Overview
- 2.2. PostgreSQL
- 2.3. Maven Central
- 2.4. Quay.io
- 2.5. Running The Server
  - 2.5.1. Initialization
  - 2.5.2. Running
- 2.6. Running The Shell

## 2.1. Overview

1
The idstore server package is available from the following sources:

### 2.1.2. Sources

- Maven Central
- Quay.io

3
Regardless of the distribution method, the idstore package will contain a command named idstore that acts as the main entrypoint to all of the server and client functionality.

## 2.2. PostgreSQL

1
The idstore server requires a PostgreSQL server. The idstore server will create the required tables and database objects on first startup, given the name of a running PostgreSQL database, and a PostgreSQL role and password.

## 2.3. Maven Central

1
A distribution package can be found at Maven Central.
2
The idstore command requires that a Java 17+ compatible JVM be accessible via /usr/bin/env java.
3
Verify the integrity of the distribution zip file:

### 2.3.4. Verify

    $ gpg --verify com.io7m.idstore.main-1.0.0-beta0002-distribution.zip.asc
    gpg: assuming signed data in 'com.io7m.idstore.main-1.0.0-beta0002-distribution.zip.asc'
    gpg: Signature made Tue 28 Jun 2022 15:01:56 GMT
    gpg:                using RSA key 3CCE59428B30462D10459909C5607DA146E128B8
    gpg:                issuer "contact@io7m.com"
    gpg: using pgp trust model
    gpg: Good signature from "io7m.com (2022 maven-rsa-key) <contact@io7m.com>" [unknown]

5
Unzip the zip file, and set up the environment appropriately. The idstore command expects an environment variable named IDSTORE_HOME to be defined that points to the installation directory.

### 2.3.6. Extract

    $ unzip com.io7m.idstore.main-1.0.0-beta0002-distribution.zip
    $ export IDSTORE_HOME=$(realpath idstore)
    $ ./idstore/bin/idstore
    idstore: usage: idstore [command] [arguments ...]
    ...

## 2.4. Quay.io

1
OCI images are available from Quay.io for use with podman or docker.

### 2.4.2. Podman/Docker

    $ podman pull quay.io/io7mcom/idstore
    $ podman run quay.io/io7mcom/idstore
    idstore: usage: idstore [command] [arguments ...]
    ...

## 2.5. Running The Server

## 2.5.1. Initialization

1
Given an appropriate configuration file in server.conf, it's necessary to tell idstore to configure the database and create an initial administrator:

### 2.5.1.2. Initialize

    $ idstore initialize \
      --admin-email 'someone@example.com' \
      --admin-realname 'Someone Else' \
      --admin-username 'someone' \
      --admin-password 12345678 \
      --configuration server.conf

## 2.5.2. Running

1
The server can now be run with idstore server:

### 2.5.2.2. Run

    $ idstore server --configuration server.conf
    info: [localhost/<unresolved>:50000] User API server started
    info: [localhost/<unresolved>:50001] User view server started
    info: [localhost/<unresolved>:51000] Admin API server started

3
The server does not fork into the background and is designed to be run under process supervision.

## 2.6. Running The Shell

1
Run idstore shell.

### 2.6.2. Shell

    $ idstore shell
    [idstore]# version
    com.io7m.idstore 0.0.15-SNAPSHOT 20af71248a7784b0e5247eab4b1ebd28de284739

1. Introduction
Previous
Front Matter
Up
3. Configuration
Next
io7m | single-page | multi-page | epub | Idstore User Manual 1.0.0-beta0002