No description
  • Go 98.5%
  • Dockerfile 0.9%
  • Makefile 0.6%
Find a file
zemdregon ce06c99fa4
Some checks are pending
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / build (push) Waiting to run
CI / docker (push) Blocked by required conditions
feat: fold local module work
2026-08-17 09:35:23 -05:00
.github/workflows chore(deps): bump docker/setup-buildx-action to v4 2026-08-10 18:18:55 -05:00
cmd/module Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
internal feat: fold local module work 2026-08-17 09:35:23 -05:00
CHANGELOG.md feat: fold local module work 2026-08-17 09:35:23 -05:00
COMPATIBILITY.md docs: note core v0.5.4 remote orchestrator dial (#1) 2026-08-10 05:22:30 -05:00
Dockerfile feat: fold local module work 2026-08-17 09:35:23 -05:00
go.mod Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
go.sum Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
LICENSE Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
Makefile Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
muxcore.json Initial storage-s3 module (v0.1.0). 2026-08-10 05:10:31 -05:00
README.md feat: fold local module work 2026-08-17 09:35:23 -05:00

storage-s3

S3/MinIO-backed storage module for MuxCore. Local-first: tests and the optional installer profile target MinIO on your laptop, not AWS accounts.

Run (local MinIO)

# terminal A — MinIO (or use installer profile s3-minio below)
docker run --rm -p 9000:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=minioadmin \
  minio/minio server /data --console-address :9001

# terminal B — module
export S3_ENDPOINT=127.0.0.1:9000
export S3_BUCKET=muxcore
export S3_ACCESS_KEY=minioadmin
export S3_SECRET_KEY=minioadmin
export S3_PATH_STYLE=true
export MUXCORE_GRPC_ADDR=127.0.0.1:9090
export MUXCORE_INSECURE_DISABLE_TLS=true
go run ./cmd/module

Listens gRPC :9610, HTTP health :9611. Core (≥0.5.4) dials announce/HTTPAddr for capability storage.

Installer optional profile: s3-minio

Local-only. Opt-in compose/installer profile that adds MinIO + this module alongside (or instead of) filesystem storage. Not part of the default laptop demo stack.

Sketch (wire into muxcore-installer / compose when profiles land):

services:
  minio:
    image: minio/minio:latest
    profiles: ["s3-minio"]
    command: ["server", "/data", "--console-address", ":9001"]
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - minio-data:/data

  storage-s3:
    image: ghcr.io/muxcore-media/storage-s3:latest
    profiles: ["s3-minio"]
    environment:
      S3_ENDPOINT: minio:9000
      S3_BUCKET: muxcore
      S3_ACCESS_KEY: minioadmin
      S3_SECRET_KEY: minioadmin
      S3_PATH_STYLE: "true"
      S3_USE_SSL: "false"
      MUXCORE_GRPC_ADDR: core:9090
      MUXCORE_INSECURE_DISABLE_TLS: "true"
    depends_on: [minio]

volumes:
  minio-data:

Enable with COMPOSE_PROFILES=s3-minio (or installer flag once exposed). Default credentials above are for local lab only.

Settings

endpoint, bucket, region, access_key, secret_key, prefix, use_ssl, path_style.

Tests

make test
  • Default (no Docker / no AWS): gofakes3 in-memory S3 API over httptest — Put/Get/List/Delete + gRPC CapabilityStorage dial smoke.
  • Optional: if Docker is available, TestMinIO_PutGetListDelete runs the same CRUD against a real minio/minio container (skips otherwise).

go test never requires AWS credentials or cloud accounts.