Hecaton distributed compute framework
Project description
Hecaton
Hecaton is a solution for self-hosted GPU access from a source that isn't deployed. It allows you to distribute compute jobs across multiple workers (GPUs).
Installation
Hecaton can be installed as a Python package.
pip install hecaton
Note: For GPU workers, you must run the installation and the worker process as root because it uses
dockerpython client which requires root access to interact with the Docker daemon.
Quick Start
1. Server Setup
Start the server. On the first run, you should provide an admin password via environment variable to create the initial admin user.
# Create initial admin user (runs on port 8181 by default)
HECATON_ADMIN_PASS=mysecurepassword hecaton-server --port 8181
Once the admin is created, you can simply run:
hecaton-server --port 8181
SSL/TLS (Recommended):
hecaton-server --port 8181 --ssl-keyfile key.pem --ssl-certfile cert.pem
2. Client Setup
Configure the client to point to your server using the CLI:
# Register the server locally
hecaton server new --ip <server_ip>:8181 --name my-server
# Log in (get the token)
hecaton server login my-server --username admin --password mysecurepassword
3. Worker Setup
To add a GPU worker to the cluster:
Requirements:
- Docker must be installed and running.
- Must run as root.
sudo pip install hecaton
# Connect the worker (as root)
sudo hecaton-gpu install <server_ip>:8181
# You will be prompted for a username and password (e.g., admin credentials or a dedicated worker user)
The worker will automatically register with the server and start processing jobs.
4. Job Submission
Submit a job with a payload file and a target image:
hecaton job new <path_to_payload_file> <docker_image_name>
Command Reference
Client CLI (hecaton)
The hecaton command is your main interface for interacting with the server.
Server Management (hecaton server)
Manage your local server connections.
new: Register a new server.--ip: Server IP/URL (e.g.,localhost:8181).--name: Local alias for the server.
login: Authenticate with a server.server_name: The alias of the server.--username,--password: Credentials.
list: List registered servers.connect: Switch the active server context.disconnect: Unset the active server.show: View details of a server.update: Update server configuration (e.g., IP).
User Management (hecaton user)
Manage users (Requires Admin privileges).
create: Create a new user.--username: New user's name.--password: New user's password.--role: Role (default:user).
Worker Management (hecaton worker)
Monitor connected workers.
list: List all workers, their status, and last active time.
Image Management (hecaton image)
Manage Docker images available for jobs.
new: Register a new Docker image from Docker Hub.image_name: e.g.,python:3.9-slim.
list: List registered images.update: Update image metadata.--fp: Path to a file containing environment variables (KEY=VALUEper line).--desc: Update description.
show: Show image details including environment variables.
Job Management (hecaton job)
Submit and track jobs.
new: Submit a new job.file_path: Path to the script/payload to run.image_name: The Docker image to use.
list: List recent jobs and their statuses.show: View full details of a specific job (ID, status, payload, index).
GPU Worker CLI (hecaton-gpu)
The hecaton-gpu command runs on the worker machine to manage the background service. Must be run as root.
install <server_ip>: Install the worker as a systemd service.- prompts for username/password authentication.
uninstall: Remove the systemd service.start: Start the worker service.stop: Stop the worker service.restart: Restart the worker service.status: Check if the service is running.logs: View service logs.-f: Follow logs.-n: Number of lines.
run <server_ip>: Run the worker in the foreground (useful for debugging).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hecaton-0.6.4.tar.gz.
File metadata
- Download URL: hecaton-0.6.4.tar.gz
- Upload date:
- Size: 32.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa33d62001b951515428934c48afca8a28e2a8696e4c898879149b308e5ea3c8
|
|
| MD5 |
02ebdc9a5bd25df4cdedc8484f2c14c6
|
|
| BLAKE2b-256 |
638aaaf172012be8f207ca28a6a3737d230612d806d5ac07aaec0a26a67b9ef0
|
Provenance
The following attestation bundles were made for hecaton-0.6.4.tar.gz:
Publisher:
publish.yml on Just1truc/hecaton
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hecaton-0.6.4.tar.gz -
Subject digest:
fa33d62001b951515428934c48afca8a28e2a8696e4c898879149b308e5ea3c8 - Sigstore transparency entry: 886539474
- Sigstore integration time:
-
Permalink:
Just1truc/hecaton@57c7da19223978d9007673833331ddd8565985f4 -
Branch / Tag:
refs/tags/v0.6.4 - Owner: https://github.com/Just1truc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@57c7da19223978d9007673833331ddd8565985f4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hecaton-0.6.4-py3-none-any.whl.
File metadata
- Download URL: hecaton-0.6.4-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd097244cda988da419ec9f399b9d72faab0ab8d5cecdd0452f62eb905b17396
|
|
| MD5 |
be538439ef246ddeaa987d37fa182b20
|
|
| BLAKE2b-256 |
b053e8d9cd0c1b1ff4080f1b915b6d606fecf6f05bc226d7b0e0a41adfa1e3ad
|
Provenance
The following attestation bundles were made for hecaton-0.6.4-py3-none-any.whl:
Publisher:
publish.yml on Just1truc/hecaton
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hecaton-0.6.4-py3-none-any.whl -
Subject digest:
bd097244cda988da419ec9f399b9d72faab0ab8d5cecdd0452f62eb905b17396 - Sigstore transparency entry: 886539511
- Sigstore integration time:
-
Permalink:
Just1truc/hecaton@57c7da19223978d9007673833331ddd8565985f4 -
Branch / Tag:
refs/tags/v0.6.4 - Owner: https://github.com/Just1truc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@57c7da19223978d9007673833331ddd8565985f4 -
Trigger Event:
release
-
Statement type: