Dynamic VM allocation and management system for computational research workflows.
This repository contains the core LabLink packages, Docker images, and documentation:
-
lablink-allocator - VM Allocator Service
pip install lablink-allocator
-
lablink-client - Client Service
pip install lablink-client
Production images are built from PyPI packages and tagged with specific versions:
-
lablink-allocator-image - Allocator service container
docker pull ghcr.io/talmolab/lablink-allocator-image:0.0.2a0 docker pull ghcr.io/talmolab/lablink-allocator-image:latest
-
lablink-client-base-image - Client service container
docker pull ghcr.io/talmolab/lablink-client-base-image:0.0.7a0 docker pull ghcr.io/talmolab/lablink-client-base-image:latest
Available Tags:
<version>(e.g.,0.0.2a0) - Specific package version (recommended for production)latest- Latest stable releaselinux-amd64-latest- Latest for specific platform<sha>- Specific git commitlinux-amd64-test- Development/testing builds
See Docker Image Tags for complete tagging strategy.
- LabLink Docs - Comprehensive documentation
- Getting Started
- Configuration
- API Reference
- Contributing Guide
Using LabLink:
This repository provides the Python packages and Docker images. To deploy LabLink infrastructure (allocator EC2, DNS, etc.), use the LabLink Template Repository.
Contributing to LabLink packages:
# Clone the repository
git clone https://github.com/talmolab/lablink.git
cd lablink
# Install uv (recommended Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Setup allocator service for development
cd packages/allocator
uv sync --extra dev
# Setup client service for development
cd ../client
uv sync --extra devSee the Contributing Guide for detailed development instructions.
- Full Documentation - Complete guide
- Architecture - System design
- Configuration - Configuration options
- API Reference - Package APIs
- Contributing - Contribution guide
lablink/
βββ packages/
β βββ allocator/ # Allocator Python package
β β βββ src/lablink_allocator/ # Source code
β β β βββ terraform/ # Client VM Terraform (part of package)
β β βββ tests/ # Unit tests including Terraform tests
β β βββ Dockerfile # Production image (from PyPI)
β β βββ Dockerfile.dev # Development image (local code)
β βββ client/ # Client Python package
β βββ src/lablink_client/ # Source code
β βββ tests/ # Unit tests
β βββ Dockerfile # Production image (from PyPI)
β βββ Dockerfile.dev # Development image (local code)
βββ docs/ # MkDocs documentation
βββ .github/workflows/ # CI/CD workflows
βββ ci.yml # Tests, linting, Docker builds
βββ publish-pip.yml # PyPI publishing
βββ lablink-images.yml # Docker image builds & pushes
βββ docs.yml # Documentation deployment
Note: Infrastructure deployment code (allocator EC2, DNS, etc.) has been moved to lablink-template.
LabLink uses independent versioning for its packages:
See the Release Process for how releases are managed.
We welcome contributions! Please see:
- Contributing Guide - How to contribute
- Developer Guide (CLAUDE.md) - Developer-focused overview
- Code of Conduct - Community guidelines
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make changes and add tests
- Run tests:
cd packages/allocator && uv run pytest - Commit:
git commit -m "feat: add my feature" - Push and open a Pull Request
- LabLink Template - Infrastructure deployment template using LabLink packages
LabLink is developed by the Talmo Lab for the research community.