Install via Binary, Docker, or Source
Installation
Section titled “Installation”Stowry can be installed in several ways depending on your needs.
Binary Download
Section titled “Binary Download”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.
VERSION=0.4.0
# amd64curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_linux_amd64.tar.gztar xzf stowry_${VERSION}_linux_amd64.tar.gzsudo mv stowry /usr/local/bin/
# arm64curl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_linux_arm64.tar.gztar xzf stowry_${VERSION}_linux_arm64.tar.gzsudo mv stowry /usr/local/bin/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.gztar xzf stowry_${VERSION}_darwin_arm64.tar.gzsudo mv stowry /usr/local/bin/
# Intelcurl -LO https://github.com/sagarc03/stowry/releases/download/v${VERSION}/stowry_${VERSION}_darwin_amd64.tar.gztar xzf stowry_${VERSION}_darwin_amd64.tar.gzsudo mv stowry /usr/local/bin/Windows
Section titled “Windows”Download stowry_<version>_windows_amd64.zip from the releases page, extract it, and add stowry.exe to your PATH.
Docker
Section titled “Docker”Pull the official Docker image:
docker pull ghcr.io/sagarc03/stowry:latestImage variants
Section titled “Image variants”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.
docker pull ghcr.io/sagarc03/stowry:alpinedocker pull ghcr.io/sagarc03/stowry:v0-distrolessRun with Docker:
docker run -d \ --name stowry \ -p 5708:5708 \ -v $(pwd)/config.yaml:/config.yaml \ -v $(pwd)/data:/data \ ghcr.io/sagarc03/stowry:latest serveWith Docker Compose:
services: stowry: image: ghcr.io/sagarc03/stowry:latest ports: - "5708:5708" volumes: - ./config.yaml:/config.yaml - ./data:/data command: serveBuild from Source
Section titled “Build from Source”Requirements:
- Go 1.27 or later
- Git
# Clone the repositorygit clone https://github.com/sagarc03/stowry.gitcd stowry
# Build the binarygo build -o stowry .
# Optional: Install to GOPATH/bingo install .Verify Installation
Section titled “Verify Installation”After installation, verify Stowry is working:
stowry --helpExpected 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 logsettings.)
Use "stowry [command] --help" for more information about a command.Client CLI
Section titled “Client CLI”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.
stowry upload --helpFor full documentation, see the Client CLI Reference.
Next Steps
Section titled “Next Steps”- Configuration - Configure Stowry for your needs
- Getting Started - Quick start guide