CLI app to automatically start a Warehouse server
2026-05-06 12:21:08 +02:00
.gitignore remove warehouse.yaml 2026-04-28 21:45:56 +01:00
.goreleaser.yaml fix: update goreleaser 2026-04-28 20:57:32 +01:00
demo.mp4 chore: demo video 2026-04-29 17:39:37 +01:00
download.go feat: download command 2026-04-29 16:03:33 +01:00
go.mod chore: update README.md 2026-04-29 17:18:07 +01:00
go.sum chore: update README.md 2026-04-29 17:18:07 +01:00
init.go feat: upload command 2026-04-29 15:44:33 +01:00
LICENSE feat: mini init command 2026-04-28 20:55:34 +01:00
list.go feat: list command 2026-04-29 16:32:03 +01:00
main.go feat: list command 2026-04-29 16:32:03 +01:00
README.md Update README.md 2026-05-06 12:21:08 +02:00
start.go feat: upload command 2026-04-29 15:44:33 +01:00
upload.go feat: upload command 2026-04-29 15:44:33 +01:00

Warehouse Manager CLI app to automatically start a Warehouse server, and manage files.

Warehouse is my distributed object storage system written in go.

I wrote this utility to make starting a Warehouse easier, so you don't have to worry about configuring Docker/a Docker-Compose file.

Dependencies

Docker must be installed.

Warning

To use Warehouse with Docker for Windows

  1. Ensure Docker Desktop is running before starting
  2. In Docker Desktop, Open Settings -> Resources -> Network -> Enable host networking

Install Warehouse Manager

With go installed:

go install codeberg.org/ultravioletasdf/warehouse_manager@latest

Without go installed (Linux only):

Warning

This installs the binary from a third part source. If you do not trust this, you can use the binaries instead.

curl -sf http://goblin.run/codeberg.org/ultravioletasdf/warehouse_manager | sh

From binaries:

  1. Download the latest release for your platform from Codeberg
  2. Extract
  3. To run, open your terminal and navigate to the folder you extracted to. Run ./warehouse for usage options

Usage

Note

If you have installed via go or the curl command, the binary is called warehouse_manager If you have installed via binaries, you must be in the same folder as the extracted binaries, and call ./warehouse

Initialization

Before you can run anything, you must initialize the Warehouse server

warehouse_manager mini init

This will setup a new warehouse server in the current folder, read the generated tokens from logs and save it in warehouse.yaml

Start Warehouse

Next, you must start Warehouse.

warehouse_manager mini start

This starts:

  1. A master gRPC server at localhost:3000
  2. A volume server at localhost:3001
  3. A web server at localhost:3002

To use the web dashboard, go to localhost:3002 and sign in using the admin token from warehouse.yaml.

File Commands

As an alternative to the web UI, some features are available with warehouse_manager Of course, you must be running warehouse_manager mini start for any of these commands

Upload a File

In the same folder as warehouse.yaml, you can upload a file using

warehouse_manager files up bucket_name object_name ~/path/to/file.txt

Download a File

In the same folder as warehouse.yaml, you can download a file using

warehouse_manager files dl bucket_name object_name ~/path/to/output.txt

List All Files

In the same folder as warehouse.yaml, you can list all files in a bucket using

warehouse_manager files ls bucket_name