Provider setup
Give your spare compute a useful connection.
Prepare an Apple Silicon Mac to serve one approved small model inside Docker. The controller tests capabilities before advertising readiness and keeps inference separate from peer connections.
Available now · Operator-assisted prototypeStep 01
Start with a supported Mac.
Use Apple Silicon, macOS 14 or newer, Node.js 24 and running Docker Desktop. Install the compiled alpha.5 release; no source checkout or container-registry account is required. Enroll the provider UUID and Ed25519 public key with the operator before publication.
Download and run the release installer
curl --fail --location https://github.com/carlosrivera/panas/releases/download/v0.1.0-alpha.5/install.sh -o /tmp/panas-install.sh
sh /tmp/panas-install.shPublic serving requires a Docker gateway and a separate network-disabled inference worker. Both run non-root with read-only roots and resource caps. No Docker socket, home directory or treasury keys are mounted. Startup verifies the matching image and refuses native fallback. The small model runs on CPU.
Step 02
Download the small model deliberately.
The initial approved model is qwen2.5:0.5b. Set up the operator-approved Ollama runtime with the dedicated model directory first. Panas will not download a missing model during launch tests.
Terminal 1 — temporary setup runtime template
OLLAMA_MODELS='/absolute/path/to/dedicated/models' \
OLLAMA_HOST='127.0.0.1:11536' \
OLLAMA_NO_CLOUD=1 \
'/absolute/path/to/approved/ollama' serveTerminal 2 — explicit download into that runtime
OLLAMA_HOST='127.0.0.1:11536' \
'/absolute/path/to/approved/ollama' pull qwen2.5:0.5b
curl --fail http://127.0.0.1:11536/api/tagsThis command talks to the Ollama server selected by your setup environment. Confirm it uses the dedicated directory; a model downloaded into another server’s directory does not prepare the Panas instance. See Ollama’s model-directory and host configuration.
Obtain the full digest from that runtime’s /api/tags response and the exact approved runtime version. Stop the temporary setup runtime before starting Panas. Serving uses the pinned Linux runtime inside Docker, not this temporary host setup process. Never paste a digest from an unrelated model revision.
Step 03
Pin the runtime and run local checks.
Set the explicit configuration below using your enrolled identity, real absolute paths, full model digest, and approved version. The examples are templates; replace placeholders before executing them.
Local capability-check configuration template
# Save operator-supplied values in ~/.config/panas/provider.env (mode 0600)
PANAS_PROVIDER_ID=<operator-enrolled-uuid>
PANAS_PROVIDER_PRIVATE_KEY_PATH=/absolute/private/provider.pem
PANAS_PLATFORM_PUBLIC_KEY_PATH=/absolute/private/platform-public.pem
PANAS_MODELS_PATH=/absolute/path/to/dedicated/models
PANAS_MODEL_DIGEST=a8b0c51577010a279d933d14c2a8ab4b268079d44c5c8830c0a93900f1827c67
PANAS_OLLAMA_VERSION=0.40.12
PANAS_REGISTRY_URL=https://panas.mcpwire.co/registry
PANAS_ACCOUNTING_URL=https://panas.mcpwire.co/accounting
PANAS_PRICE_VERSION=free-v1
PANAS_PRICE_ATOMIC=0
~/.local/bin/panas doctorThe doctor checks platform, memory/disk, runtime/model pins, bounded inference, limits, exposure, and cancellation. A local pass means testing / connectivity unverified, not ready. A current separate-peer probe is still required.
Bounded inference, not unrestricted device access.
The prototype profile allows one active request, a queue of two, up to 2,048 context tokens, up to 128 output tokens, and a 60-second generation deadline. Admission uses conservative input bounds. Docker caps the worker at two CPUs, 4 GiB and 256 processes. Its network is disabled and model files are read-only. The gateway has network egress. This is not hardware attestation, confidential inference or independently verified usage.
Step 05
Know when readiness must change.
Keep the host process running while sharing. Stop it with Ctrl+C to end the session and its owned runtime. Do not start a second controller against the same provider identity. Retain its Docker state volume when recovering an uncertain request. Administrative pause/resume/drain operations exist on private local IPC; this website does not expose device controls.
A check fails or the model is missing.
Read the local diagnostic, verify the approved pins and dedicated model directory, and explicitly fix setup. Failed checks keep the provider unavailable. There is no silent model pull or automatic adoption of another server.
The Mac sleeps or a model/runtime changes.
A health gap longer than 45 seconds or changed pins invalidates readiness. Recovery requires fresh tests and a fresh peer proof. The current guard handles process-suspension gaps; it is not a native macOS power-event listener.
A buyer disconnects during inference.
The disposable peer adapter can close while the persistent daemon retains the original request and terminal outcome. A buyer retrieves that request after reconnecting. Do not rerun uncertain work or infer settlement from a socket closing.
A running request is cancelled.
Cancellation terminates the dedicated runtime fail-safe, invalidates readiness, and requires retesting plus a peer probe before new work. The durable terminal decision goes to accounting; the buyer’s cancellation request alone does not release a hold.
Runtime and capability details ↗
Source cloning is not required. Self-serve enrollment and real-money payments are not available in this prototype.
Inspect public provider reports →