Installation 🚀

Before you start

Before installing FerrisKey, make sure you have the following prerequisites:

  • Docker installed on your system
  • Basic familiarity with command-line operations
  • At least 512MB of free RAM for running the container

API environment variables

PORT=3333
ENV=development
DATABASE_URL=postgres://postgres:postgres@postgres:5432/ferriskey

ADMIN_PASSWORD=super
ADMIN_USERNAME=super
ADMIN_EMAIL=super@ferriskey.fr

ALLOWED_ORIGINS=http://localhost:5555,http://localhost:5556

PORTAL_URL=http://localhost:5555

With Docker

The simplest way to get started with FerrisKey is using Docker:

Launching the FerrisKey API

FerrisKey can be quickly launched using our official Docker image. This approach requires minimal setup and ensures you’re running the latest stable version.

Run the following command in your terminal to pull and start the FerrisKey API server:

docker run -p 3333:3333 \
  -e PORT=3333 -e ENV=development \
  -e DATABASE_URL=postgres://postgres:postgres@localhost:5432/ferriskey \
  -e ADMIN_USERNAME=admin -e ADMIN_PASSWORD=admin \
  -e ADMIN_EMAIL=admin@example.com \
  -e ALLOWED_ORIGINS=http://localhost:5555,http://localhost:5554 \
  -e PORTAL_URL=http://localhost:5555 \
  ghcr.io/ferriskey/ferriskey-api

Launching the FerrisKey Frontend

Once the API is running, you can start the FerrisKey frontend. This will allow you to interact with the API through a web interface.

docker run -p 5555:80 \
  -e APP_API_URL=http://localhost:3333 \
  ghcr.io/ferriskey/ferriskey-front

With Docker Compose

If you prefer to use Docker Compose, you can set up both the API and frontend with a single command. This method is more convenient for managing multiple services.

version: "3.8"

services:
  postgres:
    image: postgres:17
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=ferriskey
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
  api-migration:
    image: ghcr.io/ferriskey/ferriskey-api:latest
    env_file:
      - api.env
    depends_on:
      - postgres
    command: >
      bash -c "
        sqlx migrate run &&
        echo 'Database migrations completed!'
      "
    restart: "no"
  api:
    image: ghcr.io/ferriskey/ferriskey-api:latest
    env_file:
      - api.env
    depends_on:
      api-migration:
        condition: service_completed_successfully
    ports:
      - "3333:3333"
    restart: unless-stopped
  frontend:
    image: ghcr.io/ferriskey/ferriskey-front:latest
    ports:
      - "5555:80"
    environment:
      - APP_API_URL=http://localhost:3333
    depends_on:
      - api

volumes:
  postgres_data: