switch from minio to seaweedfs

This commit is contained in:
2026-03-26 16:57:48 -07:00
parent 56f4c345cb
commit bb5f8b8494
10 changed files with 97 additions and 85 deletions
+19 -13
View File
@@ -10,7 +10,7 @@ and client compatibility.
- `proto/` contains protobuf schemas and RPC definitions.
- `gen/python` and `gen/go` contain generated protocol and Connect code.
- `python/packages/officeconvert` is the core conversion library (PPTX -> PDF -> images + notes).
- `python/packages/server` is the ConnectRPC Python server with MinIO orchestration.
- `python/packages/server` is the ConnectRPC Python server with SeaweedFS (S3-compatible) orchestration.
- `clients/go` is the first client library with layered orchestration helpers.
- `deploy/` contains production-ish and dev Docker Compose files.
@@ -29,14 +29,14 @@ Use the root `Makefile`:
- `make buf-generate` to regenerate Go and Python types
- `make py-sync` to sync Python workspace dependencies with uv
- `make go-test` to run Go client tests
- `make compose-up` to run server + MinIO
- `make compose-up-dev` to run MinIO only
- `make compose-up` to run server + SeaweedFS
- `make compose-up-dev` to run SeaweedFS only
- `make run-server` to start host `uvicorn` with `.env` (if present) plus defaults
## Development Server Workflow
This is the recommended local workflow for iterating on the Python server and conversion
library while keeping MinIO in Docker.
library while keeping SeaweedFS in Docker.
### 1) Prerequisites
@@ -64,7 +64,7 @@ From repo root:
make py-sync
```
### 4) Start MinIO dependency stack (dev compose)
### 4) Start SeaweedFS dependency stack (dev compose)
From repo root:
@@ -72,11 +72,12 @@ From repo root:
make compose-up-dev
```
MinIO endpoints:
SeaweedFS endpoints:
- API: `http://localhost:9000`
- Console: `http://localhost:9001`
- Default creds: `minioadmin` / `minioadmin`
- S3 API: `http://localhost:8333`
- Master API: `http://localhost:9333`
- Filer API: `http://localhost:8888`
- Default S3 creds: `minioadmin` / `minioadmin`
### 5) Start Connect server (host process)
@@ -90,11 +91,10 @@ make run-server
- loads `.env` automatically if present
- applies reasonable defaults when values are not set
- defaults MinIO endpoint to `localhost:9000` for host-based development
- defaults S3 endpoint to `localhost:8333` for host-based development
- auto-normalizes `seaweedfs:8333` to `localhost:8333` for host runs
- supports optional `UVICORN_HOST` and `UVICORN_PORT` overrides
If you copy from `.env.example`, set `MINIO_ENDPOINT=localhost:9000` for host mode.
Server endpoint base URL:
- `http://localhost:8080`
@@ -120,10 +120,16 @@ Then:
### 7) Full container workflow (optional)
If you want to run both server and MinIO in Docker:
If you want to run both server and SeaweedFS in Docker:
```bash
make compose-up
```
Use `.env.example` as your baseline env configuration.
## Storage Backend Notes
- This project defaults to **SeaweedFS S3 API** for object transit in development and compose deployments.
- The Python server uses the `minio` Python SDK, which is intentional because SeaweedFS is S3-compatible.
- Runtime configuration uses `S3_*` environment variables.