add remote access via TCP: Containerfile, mount subcommand, docs
- Containerfile: multi-stage podman build for running olliesrv as a remote server (port 9564, no FUSE needed on server side) - olliesrv mount <address> [mountpoint]: mounts a remote olliesrv namespace locally via 9pfuse over TCP - olliesrv start -tcp <addr>: adds TCP listener alongside Unix socket - README: document remote access and container usage - doc/IDEAS.md: remove Network & Remote Access (implemented) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
28150207db
commit
e9f10eeb92
2
9p
2
9p
|
|
@ -1 +1 @@
|
|||
Subproject commit 3b5f494aefe76c52a21f87b51ee043e4e4d10a3c
|
||||
Subproject commit f17774163cbfd518c9919fb9a455a601a6648aa7
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
FROM docker.io/library/golang:latest AS builder
|
||||
WORKDIR /src
|
||||
COPY 9p/ 9p/
|
||||
COPY core/ core/
|
||||
WORKDIR /src/9p
|
||||
RUN go build -o /olliesrv .
|
||||
|
||||
FROM docker.io/library/debian:bookworm-slim
|
||||
RUN apt-get update && apt-get install -y \
|
||||
bash \
|
||||
python3 \
|
||||
ripgrep \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /olliesrv /usr/local/bin/olliesrv
|
||||
COPY tools/ /root/.config/ollie/tools/
|
||||
COPY agents/ /root/.config/ollie/agents/
|
||||
COPY prompts/ /root/.config/ollie/prompts/
|
||||
|
||||
RUN chmod +x /root/.config/ollie/tools/*
|
||||
|
||||
ENV HOME=/root
|
||||
ENV NAMESPACE=/tmp/ns
|
||||
RUN mkdir -p /tmp/ns
|
||||
|
||||
EXPOSE 9564
|
||||
CMD ["olliesrv", "fgstart", "-tcp", ":9564"]
|
||||
36
README.md
36
README.md
|
|
@ -69,6 +69,42 @@ OLLIE_MEMORY_PATH=~/.config/ollie/memory # directory for memory files (ollie/m)
|
|||
|
||||
Shell environment variables take precedence over the env file.
|
||||
|
||||
## Remote Access
|
||||
|
||||
Because `olliesrv` speaks 9P over TCP, a remote instance can be mounted into the local namespace using `9pfuse`. This means agent sessions, tools, and all other filesystem state on a remote host are accessible as ordinary files — no special client needed.
|
||||
|
||||
### Start a remote server
|
||||
|
||||
On the remote host (or in a container):
|
||||
|
||||
```sh
|
||||
olliesrv start -tcp :9564
|
||||
```
|
||||
|
||||
### Mount the remote namespace locally
|
||||
|
||||
```sh
|
||||
olliesrv mount remotehost:9564 ~/mnt/remotehost
|
||||
ls ~/mnt/remotehost # s/, t/, b/, ...
|
||||
```
|
||||
|
||||
Sessions created under `~/mnt/remotehost/s/` run on the remote host, so tool calls execute close to the remote filesystem rather than over the wire.
|
||||
|
||||
### Container
|
||||
|
||||
A `Containerfile` is included for running a self-contained remote server:
|
||||
|
||||
```sh
|
||||
podman build --network=host -t olliesrv .
|
||||
podman run --network=host -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY olliesrv
|
||||
```
|
||||
|
||||
Then mount locally:
|
||||
|
||||
```sh
|
||||
olliesrv mount localhost:9564 ~/mnt/container-ollie
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
Update all submodules to latest:
|
||||
|
|
|
|||
|
|
@ -16,10 +16,6 @@
|
|||
|
||||
**Lightweight TUI alternatives** — `watch cat state` as a status bar, `tail -f chat` in one pane, prompt submission in another. Compose a working interface entirely from standard tools.
|
||||
|
||||
### Network & Remote Access
|
||||
|
||||
**Remote access** — 9P is a network protocol. Export the namespace over the network and access agent sessions from another machine using the same file interface, with no additional daemon or API layer.
|
||||
|
||||
### Multi-Agent Workflows
|
||||
|
||||
Two distinct patterns apply depending on whether work is delegated to ephemeral agents or distributed across persistent concurrent sessions.
|
||||
|
|
|
|||
Loading…
Reference in New Issue