Skip to main content

Podex Local Pod - Self-hosted compute agent for Podex

Project description

Podex Local Pod

Self-hosted compute agent for Podex. Run workspaces on your own machine for faster local development, full GPU access, and keeping code on-premises.

Quick Start

1. Get Your Token

  1. Go to Settings > Local Pods in Podex
  2. Click Add Pod and give it a name
  3. Copy the token (shown only once!)

2. Install

# Using pip
pip install podex-local-pod

# Or using pipx (recommended)
pipx install podex-local-pod

3. Run

# Start the agent
podex-local-pod start --token pdx_pod_xxx

# Or use environment variable
export PODEX_POD_TOKEN=pdx_pod_xxx
podex-local-pod start

Docker Installation

docker run -d \
  --name podex-local-pod \
  -e PODEX_POD_TOKEN=pdx_pod_xxx \
  -v /var/run/docker.sock:/var/run/docker.sock \
  podex/local-pod:latest

Commands

# Start the agent
podex-local-pod start [OPTIONS]

# Check system requirements
podex-local-pod check

# Show version
podex-local-pod version

Start Options

Option Environment Variable Description
--token PODEX_POD_TOKEN Pod authentication token (required)
--url PODEX_CLOUD_URL Podex cloud URL (default: https://api.podex.dev)
--name PODEX_POD_NAME Display name for this pod
--max-workspaces PODEX_MAX_WORKSPACES Maximum concurrent workspaces (1-10, default: 3)
--config - Path to config file

Configuration File

You can use a TOML config file instead of command-line options:

# ~/.config/podex/local-pod.toml
[podex]
pod_token = "pdx_pod_xxx"
cloud_url = "https://api.podex.dev"
pod_name = "my-dev-machine"
max_workspaces = 3
docker_network = "podex-local"
heartbeat_interval = 30

Then run:

podex-local-pod start --config ~/.config/podex/local-pod.toml

Requirements

  • Docker (with access to /var/run/docker.sock)
  • Python 3.11+
  • 4GB+ RAM recommended
  • 2+ CPU cores recommended

How It Works

  1. Registration: You register a local pod in Podex Settings and receive a token
  2. Connection: The agent connects to Podex cloud via WebSocket (outbound connection)
  3. Commands: When you create a workspace targeting your local pod, Podex sends commands through the WebSocket
  4. Workspaces: The agent manages Docker containers on your machine for each workspace
  5. Communication: File operations, terminal, and port forwarding all work through the connection

Security

  • Outbound only: The agent initiates the connection - no inbound ports needed
  • Token auth: Tokens are hashed and verified on each connection
  • User isolation: Each pod only sees workspaces for its owner
  • Container isolation: Workspaces run in isolated Docker containers

Troubleshooting

Check Requirements

podex-local-pod check

This verifies Docker is available and shows system resources.

Common Issues

Connection refused

  • Check your internet connection
  • Verify the token is correct
  • Check if a firewall is blocking outbound WebSocket connections

Docker permission denied

  • Add your user to the docker group: sudo usermod -aG docker $USER
  • Or run with sudo (not recommended for production)

Image not found

  • Pull the workspace image: docker pull podex/workspace:latest

Development

# Clone the repo
git clone https://github.com/podex/podex
cd podex/services/local-pod

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linting
ruff check .
mypy .

License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podex_pod-0.0.1a0.tar.gz (131.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

podex_pod-0.0.1a0-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file podex_pod-0.0.1a0.tar.gz.

File metadata

  • Download URL: podex_pod-0.0.1a0.tar.gz
  • Upload date:
  • Size: 131.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for podex_pod-0.0.1a0.tar.gz
Algorithm Hash digest
SHA256 0cc7299a009abe1ecfaebd55e12afabaa76efe78b2b390b41eae97cbeede1353
MD5 7e34ed682d62c52d661708d8bf074804
BLAKE2b-256 bdc915da70f46c0a2678512c26916b9d671a9ad93254f53bf2974629d5561493

See more details on using hashes here.

Provenance

The following attestation bundles were made for podex_pod-0.0.1a0.tar.gz:

Publisher: pypi.yml on mujacica/podex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file podex_pod-0.0.1a0-py3-none-any.whl.

File metadata

  • Download URL: podex_pod-0.0.1a0-py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for podex_pod-0.0.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 97174043d05a468736ee62131b2b12dceaa1e8fc4d6e8c2585088b16544c20ea
MD5 6b47a3a1231f67af176ee293a61469e2
BLAKE2b-256 13d77354568a8cdf43785dd334b9d32c4ada2cb39289c4f565ec7a0b3badf305

See more details on using hashes here.

Provenance

The following attestation bundles were made for podex_pod-0.0.1a0-py3-none-any.whl:

Publisher: pypi.yml on mujacica/podex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page