Skip to content

Repository files navigation

bento-hancho

A hancho is the technical manager or team leader (Japanese: chô) in one part of the process or a small group (Japanese: han).

bento-hancho is a middleware for Bento clusters to improve scalability, performance, and reliability.

For more information refer to the design document.

Deployment

Docker

docker run -d \
  -p 8081:8081 \
  -v ./hancho:/data \
  -e S3_URL=<s3-endpoint> \
  -e S3_BUCKET=<bucket-name> \
  -e S3_ACCESS_KEY=<access-key> \
  -e S3_SECRET_KEY=*** \
  -e S3_EXTERNAL_URL=<public-s3-url> \
  ghcr.io/zerokrab/bento-hancho \
  --db /data/hancho.db --bind-addr 0.0.0.0:8081

S3_EXTERNAL_URL is optional. Set it when MinIO and Hancho share a host that is not directly reachable by external clients — Hancho will rewrite S3 URLs in API responses to use the public base URL instead of the internal MinIO address.

Build from source

Set the required S3 environment variables, then run:

cargo build --release -p hancho

S3_URL=<your-s3-or-minio-endpoint> \
S3_BUCKET=<bucket-name> \
S3_ACCESS_KEY=<access-key> \
S3_SECRET_KEY=<secret-key> \
./target/release/hancho --db hancho.db

Configuration

CLI Flags

Flag Default Description
--bind-addr 0.0.0.0:8081 Bind address and port for the REST API
--db hancho.db Path to SQLite database file
--poll-interval 10 Poll interval in seconds for worker job status
--timeout-multiplier 2.0 Multiplier applied to estimated job duration to set timeout
--max-retries 3 Maximum number of attempts per request (including first run)
--s3-external-url (none) Rewrite S3 URLs in responses to use this base URL instead of the internal S3 address. Useful when MinIO and Hancho share a host unreachable by external clients. The value must be a valid URL; Hancho will fail to start if it is not. Can also be set via S3_EXTERNAL_URL.
--json false Emit logs in JSON format

Environment Variables

Variable Default Description
S3_URL (required) S3 / MinIO endpoint URL
S3_BUCKET (required) S3 / MinIO bucket name
S3_ACCESS_KEY (required) S3 / MinIO access key
S3_SECRET_KEY (required) S3 / MinIO secret key
S3_REGION us-west-2 S3 region (any value when using MinIO)
S3_EXTERNAL_URL (none) Equivalent to --s3-external-url. If set, Hancho rewrites S3 URLs in responses to use this base URL. Must be a valid URL or Hancho will fail to start.

Further Reading

About

Leading your Bento clusters to their full potential.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages