feat: docker compose sandbox + initial skeleton & docs

This commit is contained in:
Χγφτ Kompanion 2025-10-13 01:40:35 +13:00
parent 267e877ac5
commit efcadefc19
3 changed files with 38 additions and 14 deletions

5
.push.sh Normal file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
cd /home/kompanion/metal-kompanion
[ -d .git ] || git init
git config user.name Χγφτ

1
docker/.env Normal file
View File

@ -0,0 +1 @@
# reserved for future per-env overrides

View File

@ -1,30 +1,48 @@
version: "3.9" version: "3.9"
name: metal-kompanion
networks:
komnet:
driver: bridge
internal: true
services: services:
tor: # Local model host
image: dperson/torproxy:latest
command: -n
restart: unless-stopped
ollama: ollama:
image: ollama/ollama:latest image: ollama/ollama:latest
restart: unless-stopped
ports: ["127.0.0.1:11434:11434"]
volumes: volumes:
- ollama:/root/.ollama - ollama:/root/.ollama
networks: [komnet]
# TOR proxy (SOCKS5)
tor:
image: dperson/torproxy
restart: unless-stopped restart: unless-stopped
command: -a 0.0.0.0
ports: ["127.0.0.1:9050:9050"]
networks: [komnet]
# Companion runner (Python) — reads tasks.jsonl, writes journal/ledger
runner: runner:
build: image: python:3.11-slim
context: .. restart: unless-stopped
dockerfile: docker/runner/Dockerfile working_dir: /app
environment: environment:
XDG_STATE_HOME: /state XDG_STATE_HOME: /state
XDG_CONFIG_HOME: /config XDG_CONFIG_HOME: /config
XDG_CACHE_HOME: /cache XDG_CACHE_HOME: /cache
OLLAMA_BASE_URL: http://ollama:11434 # Route all egress through TOR by default (except localhost)
ALL_PROXY: socks5h://tor:9050 ALL_PROXY: socks5h://tor:9050
NO_PROXY: localhost,127.0.0.1,ollama NO_PROXY: 127.0.0.1,localhost
volumes:
- /home/kompanion/.local/state/kompanion:/state
- /home/kompanion/.config/kompanion:/config
- /home/kompanion/.cache/kompanion:/cache
depends_on: [ollama, tor] depends_on: [ollama, tor]
restart: unless-stopped volumes:
- /home/kompanion/.local/state/kompanion:/state/kompanion
- /home/kompanion/.config/kompanion:/config/kompanion:ro
- /home/kompanion/.cache/kompanion:/cache/kompanion
- /home/kompanion/metal-kompanion-runtime:/app:ro
command: ["python3","kom_runner.py"]
networks: [komnet]
volumes: volumes:
ollama: ollama: