Skip to main content

Add your description here

Project description

Arkitekt Server

A command-line tool for deploying and managing an Arkitekt server deployments. Arkitekt Server provides a comprehensive platform for scientific computing and data management, with built-in support for authentication, task orchestration, data storage, and containerized application deployment.

Overview

Arkitekt Server is a deployment configuration management tool that simplifies the setup and management of the Arkitekt ecosystem. It generates Docker Compose configurations and handles the complex orchestration of multiple services including databases, message queues, object storage, and various scientific computing services.

Quick Start: How to Start the Server

Prerequisites

  • Python 3.12+
  • Docker and Docker Compose
  • UVX (recommended) or pip

1. Initialize Your Deployment

# Initialize in the current directory (interactive wizard)
uvx arkitekt-server init --wizard

# Initialize with a specific template (default, dev, minimal)
uvx arkitekt-server init --template default

# Initialize in a specific directory
uvx arkitekt-server init --template dev ./my-server

2. Set Up Users and Organizations

# Add a user
uvx arkitekt-server user add

# Add an organization
uvx arkitekt-server organization add

3. Build and Start

# Generate deployment files (auto-detects backend)
uvx arkitekt-server build

# Start the services (using docker compose directly for now)
docker compose up -d

4. Access Your Server

Wait for services to initialize, then access via the Arkitekt Orkestrator interface at the configured URL (usually http://localhost:8000).

Temporary Server (Ephemeral Mode)

For quick testing, demos, or development without leaving any trace, you can use the ephemeral mode. This creates a temporary server instance in a temporary directory, starts it, and cleans everything up when you stop it.

# Start a temporary server on port 23489 (default)
uvx arkitekt-server ephemeral

# Start on a specific port
uvx arkitekt-server ephemeral --port 8080

This is perfect for trying out Arkitekt or running integration tests.

Command Reference

Core Commands

  • init: Initializes a new Arkitekt server configuration.

    • --wizard: Runs an interactive wizard to guide you through setup.
    • --template [default|dev|minimal]: Uses a predefined template.
    • [path]: Specifies the directory to initialize (default: current directory).
  • build: Generates the deployment files (e.g., docker-compose.yaml) based on your configuration.

    • --dry-run: Shows what would be generated without writing files.
  • start: Starts the server services using the generated deployment files.

    • Equivalent to running docker compose up -d.
  • update: Updates the server images and restarts services.

    • Pulls the latest Docker images and runs up -d.
  • ephemeral: Starts a temporary, disposable server instance.

    • --port: Sets the HTTP port.
    • --defaults: Skips prompts and uses default settings.

Management Commands

  • service: Manage individual Arkitekt services (Rekuest, Mikro, etc.).

    • [service_name] --enable/--disable: Enable or disable a service.
    • list: List all available services and their status.
  • user: Manage users for the Arkitekt deployment.

    • add: Create a new user (interactive).
    • list: List all configured users.
    • delete: Remove a user.
  • organization: Manage organizations.

    • add: Create a new organization.
    • list: List all configured organizations.
  • inspect: Inspect the current state and configuration.

    • config: Displays the current configuration and enabled services.

Detailed Documentation

For comprehensive documentation, see the docs/ folder:

Oh my god, I forgot all of my passwords!

If you forget your preconfiugred user passwords, you can reset them by running:

uvx arkitekt-server user list

This command will list all users and their roles, that you have configured previously. Of course you would never use this in production, but it is a useful command for development and testing purposes.

Non-UVX Usage

If you prefer not to use UVX, you can run the tool directly with:

pip install arkitekt-server
arkitekt-server init --template default

Key Features

  • One-Command Deployment: Generate complete Docker Compose configurations with sensible defaults
  • Service Deployment: Deploy and manage multiple interconnected services
  • Authentication & Authorization: Built-in user management with JWT-based authentication
  • Development Mode: Hot-reload support for development with GitHub repository mounting (when available)

Core Services

The Arkitekt ecosystem includes several specialized services:

  • Lok: Authentication and authorization service with JWT token management
  • Rekuest: Task orchestration and workflow management
  • Mikro: Image and microscopy data management
  • Kabinet: Container and application registry
  • Fluss: Workflow execution engine
  • Kraph: Knowledge graph and metadata management
  • Elektro: Electrophysiology data handling
  • Alpaka: AI/ML model management with Ollama integration

Configuration

The tool generates and manages a arkitekt_server_config.yaml file that contains all deployment settings. This file includes:

  • Service configurations and Docker images
  • Database and Redis settings
  • Object storage (MinIO) configuration
  • Authentication keys and secrets
  • User and group management
  • Network and routing configuration

This file can be customized to suit your deployment needs, allowing you to specify local or remote databases, shared or dedicated storage buckets, and development or production deployment modes. This config-file is the central point for managing your Arkitekt Server deployment. And it is automatically generated based on the services you enable and the options you choose during initialization.

Architecture

Arkitekt Server uses a self-contained service architecture with:

  • PostgreSQL: Primary database for all services
  • Redis: Message queuing and caching
  • MinIO: S3-compatible object storage
  • Caddy: Reverse proxy and gateway
  • Docker: Container orchestration

Each service can be configured independently with options for:

  • Local or remote databases
  • Shared or dedicated storage buckets
  • Development or production deployment modes
  • Custom authentication configurations

Development

For development workflows, the tool supports:

  • GitHub repository mounting for live code reloading
  • Debug mode with detailed logging
  • Separate development configurations

License

MIT License

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

arkitekt_gateway-0.4.2.tar.gz (16.9 MB view details)

Uploaded Source

Built Distributions

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

arkitekt_gateway-0.4.2-py3-none-win_amd64.whl (5.1 kB view details)

Uploaded Python 3Windows x86-64

arkitekt_gateway-0.4.2-py3-none-macosx_11_0_arm64.whl (5.1 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file arkitekt_gateway-0.4.2.tar.gz.

File metadata

  • Download URL: arkitekt_gateway-0.4.2.tar.gz
  • Upload date:
  • Size: 16.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_gateway-0.4.2.tar.gz
Algorithm Hash digest
SHA256 8b0a8bdd95a7bfc537e6a900b14ce189ef89bc63925c0d056a9ebdc4d1a14e5e
MD5 d20b5cf760b7a1c5da1e0a10d0100b04
BLAKE2b-256 f40461d30f3d6a32d3e0372bb5297c09265b152dd6bebe74a13abc860506dd66

See more details on using hashes here.

File details

Details for the file arkitekt_gateway-0.4.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: arkitekt_gateway-0.4.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_gateway-0.4.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 48afbd22e399bbebbc9430b56c4356c9f4a10850bdd2609394692a328ac33312
MD5 9c4372b0b0407662082dce7b14bda91f
BLAKE2b-256 4216661ba101048d7310a26e1b82ad7a4cf9aa1fe222ab4e07012e9c935db0a1

See more details on using hashes here.

File details

Details for the file arkitekt_gateway-0.4.2-py3-none-manylinux2014_x86_64.whl.

File metadata

  • Download URL: arkitekt_gateway-0.4.2-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_gateway-0.4.2-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6df631a170a83fc4f29b21813188f892b0a265c773ce14ec024130ea7087088
MD5 cb39325708b6d8ca17057c0a8d1b0e38
BLAKE2b-256 438a514321b3c3dfd85e9eba8f5003311ca081467012ba15e4ee527aea3ae454

See more details on using hashes here.

File details

Details for the file arkitekt_gateway-0.4.2-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: arkitekt_gateway-0.4.2-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_gateway-0.4.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e89bc60a089d07860ff1df0b3b0ecd66fd3038d69e0f21488b790054efa20ae
MD5 095b65f38146346ecc6a1cc1cccb0795
BLAKE2b-256 acb6a4a59c70c0500202d941ca3be72d2de91ea6ae144a5d6fcf9a87ba228d3a

See more details on using hashes here.

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