Skip to content
Self Host

Self Host

Recommended: Warehouse Manager

Warehouse Manager Is a CLI that I built to make running Warehouse easier. It automatically loads the generated tokens from the logs and passes it to the volume server.

Once you have installed Warehouse Manager, all you have to do is run:

warehouse_manager mini init

warehouse_manager mini start

And access the web ui at localhost:3002

Docker compose

If for whatever reason docker compose does not work for you, you can try Running the binaries. Also Create an issue please!

compose.yaml
services:

  master:

    image: ultravioletasdf/warehouse_master

    command: ["--migrate"]

    environment:

      DATABASE_FILE: /db/app.db

    volumes:

      - db:/db

    network_mode: "host"

  volume:

    image: ultravioletasdf/warehouse_volume

    environment:

      VOLUME_AUTH_TOKEN: changeme

      STORAGE_LOCATION: /data/persist

      MASTER_ADDRESS: localhost:3000

      # REQUIRED: Avoids invalid cross-device link error

      TEMP_DIR: /data/tmp

    volumes:

      - volume_data:/data

    network_mode: "host"

  web:

    image: ultravioletasdf/warehouse_web

    environment:

      MASTER_ADDRESS: localhost:3000

      WEB_ADDRESS: :3002

    network_mode: "host"



volumes:

  db:

  volume_data:

  tmp:
  1. First, start the master server to generate API keys
docker compose up master

Copy the volume token logged

  1. Then, update environment variables with the new volume token

For example:

compose.yaml
  volume:

    image: ultravioletasdf/warehouse_volume

    environment:

      VOLUME_AUTH_TOKEN: TFT7ISASNXW6GZOYJUN3565LOG
  1. Start all services

After updating the VOLUME_AUTH_TOKEN, you are ready to start all the other services:

docker compose up
  1. To login to the Web UI, copy the admin token logged, and paste into the input

You should now have:

  • A gRPC server running at localhost:3000
  • A volume server running at localhost:3001
  • A web server running at localhost:3002

Advanced configuration

These options are available by modifying environment variables

Master

Name Description Default
DATABASE_FILE The location of the SQLite file to use app.db
SERVER_PORT Port to run gRPC server on 3000

Volume

Name Description Default
VOLUME_AUTH_TOKEN The refresh token which has permissions to act as a volume server None (Required)
MASTER_ADDRESS The address of the gRPC server to connect to localhost:3000
VOLUME_ADDRESS The address to start the volume REST server on :3001
PUBLIC_URL The publicly accesible address of the volume server http://localhost:3001
STORAGE_LOCATION The location to place volume data files + indexes ./persist
SIZE_PER_VOLUME The maximum capacity, in GiB, for each volume file 16
MAX_VOLUMES The maximum number volumes to create As many as possible

Web

Name Description Default
MASTER_ADDRESS The address of the gRPC server to connect to localhost:3000
WEB_ADDRESS The address to start the web server on :3002