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 startAnd 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:- First, start the master server to generate API keys
docker compose up masterCopy the volume token logged
- Then, update environment variables with the new volume token
For example:
compose.yaml
volume:
image: ultravioletasdf/warehouse_volume
environment:
VOLUME_AUTH_TOKEN: TFT7ISASNXW6GZOYJUN3565LOG- Start all services
After updating the VOLUME_AUTH_TOKEN, you are ready to start all the other services:
docker compose up- 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 |