Skip to content

Install via Binary, Docker, or Source

Stowry can be installed in several ways depending on your needs.

Download pre-built binaries from the GitHub Releases page.

Releases are versioned tarballs named stowry_<version>_<os>_<arch>.tar.gz (.zip on Windows), so substitute the version you want from the releases page.

Terminal window
VERSION=0.4.0
# amd64
curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_linux_amd64.tar.gz
tar xzf stowry_${VERSION}_linux_amd64.tar.gz
sudo mv stowry /usr/local/bin/
# arm64
curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_linux_arm64.tar.gz
tar xzf stowry_${VERSION}_linux_arm64.tar.gz
sudo mv stowry /usr/local/bin/
Terminal window
VERSION=0.4.0
# Apple Silicon (M1/M2/M3)
curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_darwin_arm64.tar.gz
tar xzf stowry_${VERSION}_darwin_arm64.tar.gz
sudo mv stowry /usr/local/bin/
# Intel
curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_darwin_amd64.tar.gz
tar xzf stowry_${VERSION}_darwin_amd64.tar.gz
sudo mv stowry /usr/local/bin/

Download stowry_<version>_windows_amd64.zip from the releases page, extract it, and add stowry.exe to your PATH.

Pull the official Docker image:

Terminal window
docker pull ghcr.io/sagarc03/stowry:latest

Every variant ships the same binary at /stowry, runs as uid/gid 65532, stores data in /data and is published for linux/amd64 and linux/arm64. Pick a base to suit your tooling:

Tag Base Notes
latest scratch Default. Smallest image, nothing but the server and a CA bundle.
distroless gcr.io/distroless/static-debian13 Debian filesystem layout, tzdata and a maintained CA bundle, still no shell.
debian debian:trixie-slim glibc and a full Debian userland, for Debian-based tooling and scanners.
alpine alpine:3.21 Busybox shell and apk, for debugging inside a running container.

Variant tags follow the same scheme as the default image, so v0, v0.4 and v0.4.0 each have -alpine, -debian and -distroless counterparts.

Terminal window
docker pull ghcr.io/sagarc03/stowry:alpine
docker pull ghcr.io/sagarc03/stowry:v0-distroless

Run with Docker:

Terminal window
docker run -d \
--name stowry \
-p 5708:5708 \
-v $(pwd)/config.yaml:/config.yaml \
-v $(pwd)/data:/data \
ghcr.io/sagarc03/stowry:latest serve

With Docker Compose:

docker-compose.yml
services:
stowry:
image: ghcr.io/sagarc03/stowry:latest
ports:
- "5708:5708"
volumes:
- ./config.yaml:/config.yaml
- ./data:/data
command: serve

Requirements:

  • Go 1.27 or later
  • Git
Terminal window
# Clone the repository
git clone https://github.com/sagarc03/stowry.git
cd stowry
# Build the binary
go build -o stowry .
# Optional: Install to GOPATH/bin
go install .

After installation, verify Stowry is working:

Terminal window
stowry --help

Expected output:

Stowry is a lightweight object storage server, and the client for it.
Usage:
stowry [command]
Server Commands:
migrate Create the metadata schema
populate Record the files already in the storage directory
serve Start the HTTP server
validate Check the metadata schema without changing it
Client Commands:
delete Delete files from the server
download Download a file from the server
list List objects on the server
upload Upload a file or directory to the server
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
Flags:
-a, --access-key string access key for signed requests [STOWRY_ACCESS_KEY]
-c, --config strings config file paths, merged left to right [STOWRY_CONFIG] (default ./config.yaml)
-d, --db-dsn string database connection string [STOWRY_DATABASE_DSN] (default ":memory:")
--db-type string database type: sqlite or postgres [STOWRY_DATABASE_TYPE] (default sqlite)
-e, --endpoint string server the client commands talk to [STOWRY_ENDPOINT]
-k, --secret-key string secret key for signed requests [STOWRY_SECRET_KEY]
-s, --storage-path string storage directory path [STOWRY_STORAGE_PATH] (default ":memory:")
(abridged: run `stowry --help` for every flag, including the auth, cors and log
settings.)
Use "stowry [command] --help" for more information about a command.

There is no separate client binary. stowry is both the server and the client, so the installation above gives you upload, download, list and delete alongside serve.

Terminal window
stowry upload --help

For full documentation, see the Client CLI Reference.