70 lines
1.8 KiB
Markdown
70 lines
1.8 KiB
Markdown
# Furumi-ng
|
|
|
|
Remote filesystem over gRPC. Mount a directory from a remote server as a local folder via FUSE.
|
|
|
|
Designed for streaming media (video, music) over the network.
|
|
|
|
## Architecture
|
|
|
|
```
|
|
furumi-server (gRPC) ←→ furumi-client-core (library) ←→ furumi-mount-linux (FUSE)
|
|
```
|
|
|
|
- **furumi-server** — exposes a directory over gRPC with optional Bearer token auth and Prometheus metrics
|
|
- **furumi-client-core** — cross-platform gRPC client library with attribute caching
|
|
- **furumi-mount-linux** — mounts the remote directory locally via FUSE (read-only)
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build
|
|
cargo build --release --workspace
|
|
|
|
# Server
|
|
./target/release/furumi-server \
|
|
--root /path/to/media \
|
|
--bind 0.0.0.0:50051 \
|
|
--token mysecrettoken
|
|
|
|
# Client (on another machine)
|
|
mkdir -p /mnt/remote
|
|
./target/release/furumi-mount-linux \
|
|
--server http://server-ip:50051 \
|
|
--token mysecrettoken \
|
|
--mount /mnt/remote
|
|
|
|
# Use it
|
|
ls /mnt/remote
|
|
mpv /mnt/remote/video.mkv
|
|
```
|
|
|
|
## Configuration
|
|
|
|
All options can be set via CLI flags or environment variables.
|
|
|
|
### Server
|
|
|
|
| Flag | Env | Default | Description |
|
|
|------|-----|---------|-------------|
|
|
| `--bind` | `FURUMI_BIND` | `[::1]:50051` | gRPC listen address |
|
|
| `--root` | `FURUMI_ROOT` | `.` | Directory to expose |
|
|
| `--token` | `FURUMI_TOKEN` | *(empty, auth off)* | Bearer token |
|
|
| `--metrics-bind` | `FURUMI_METRICS_BIND` | `0.0.0.0:9090` | Prometheus metrics endpoint |
|
|
|
|
### Client
|
|
|
|
| Flag | Env | Default | Description |
|
|
|------|-----|---------|-------------|
|
|
| `--server` | `FURUMI_SERVER` | `http://[::1]:50051` | Server address |
|
|
| `--token` | `FURUMI_TOKEN` | *(empty)* | Bearer token |
|
|
| `--mount` | `FURUMI_MOUNT` | — | Mount point directory |
|
|
|
|
## Requirements
|
|
|
|
- Linux with `libfuse3-dev` (for client)
|
|
- Rust 2024 edition
|
|
|
|
## License
|
|
|
|
MIT
|