arkitekt-server 0.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arkitekt_server-0.0.0/.gitignore +148 -0
- arkitekt_server-0.0.0/PKG-INFO +169 -0
- arkitekt_server-0.0.0/README.md +149 -0
- arkitekt_server-0.0.0/arkitekt_server/__init__.py +3 -0
- arkitekt_server-0.0.0/arkitekt_server/build.py +0 -0
- arkitekt_server-0.0.0/arkitekt_server/config.py +937 -0
- arkitekt_server-0.0.0/arkitekt_server/diff.py +609 -0
- arkitekt_server-0.0.0/arkitekt_server/main.py +315 -0
- arkitekt_server-0.0.0/pyproject.toml +58 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
**/__pycache__
|
|
4
|
+
*.py[cod]
|
|
5
|
+
*$py.class
|
|
6
|
+
*.pyc
|
|
7
|
+
*.DS_Store
|
|
8
|
+
|
|
9
|
+
# C extensions
|
|
10
|
+
*.so
|
|
11
|
+
|
|
12
|
+
# Distribution / packaging
|
|
13
|
+
.Python
|
|
14
|
+
build/
|
|
15
|
+
develop-eggs/
|
|
16
|
+
dist/
|
|
17
|
+
downloads/
|
|
18
|
+
eggs/
|
|
19
|
+
.eggs/
|
|
20
|
+
lib/
|
|
21
|
+
lib64/
|
|
22
|
+
parts/
|
|
23
|
+
sdist/
|
|
24
|
+
var/
|
|
25
|
+
wheels/
|
|
26
|
+
pip-wheel-metadata/
|
|
27
|
+
share/python-wheels/
|
|
28
|
+
*.egg-info/
|
|
29
|
+
.installed.cfg
|
|
30
|
+
*.egg
|
|
31
|
+
|
|
32
|
+
# PyInstaller
|
|
33
|
+
# Usually these files are written by a python script from a template
|
|
34
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
35
|
+
|
|
36
|
+
*.spec
|
|
37
|
+
|
|
38
|
+
# Installer logs
|
|
39
|
+
pip-log.txt
|
|
40
|
+
pip-delete-this-directory.txt
|
|
41
|
+
|
|
42
|
+
# Unit test / coverage reports
|
|
43
|
+
htmlcov/
|
|
44
|
+
.tox/
|
|
45
|
+
.nox/
|
|
46
|
+
.coverage
|
|
47
|
+
.coverage.*
|
|
48
|
+
.cache
|
|
49
|
+
nosetests.xml
|
|
50
|
+
coverage.xml
|
|
51
|
+
*.cover
|
|
52
|
+
*.py,cover
|
|
53
|
+
.hypothesis/
|
|
54
|
+
.pytest_cache/
|
|
55
|
+
cover/
|
|
56
|
+
|
|
57
|
+
# Translations
|
|
58
|
+
*.mo
|
|
59
|
+
*.pot
|
|
60
|
+
|
|
61
|
+
# Django stuff:
|
|
62
|
+
*.log
|
|
63
|
+
local_settings.py
|
|
64
|
+
db.sqlite3
|
|
65
|
+
db.sqlite3-journal
|
|
66
|
+
|
|
67
|
+
# Flask stuff:
|
|
68
|
+
instance/
|
|
69
|
+
.webassets-cache
|
|
70
|
+
|
|
71
|
+
# Scrapy stuff:
|
|
72
|
+
.scrapy
|
|
73
|
+
|
|
74
|
+
# Sphinx documentation
|
|
75
|
+
docs/_build/
|
|
76
|
+
|
|
77
|
+
# PyBuilder
|
|
78
|
+
.pybuilder/
|
|
79
|
+
target/
|
|
80
|
+
|
|
81
|
+
# Jupyter Notebook
|
|
82
|
+
.ipynb_checkpoints
|
|
83
|
+
|
|
84
|
+
# IPython
|
|
85
|
+
profile_default/
|
|
86
|
+
ipython_config.py
|
|
87
|
+
|
|
88
|
+
# pyenv
|
|
89
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
90
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
91
|
+
# .python-version
|
|
92
|
+
|
|
93
|
+
# pipenv
|
|
94
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
95
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
96
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
97
|
+
# install all needed dependencies.
|
|
98
|
+
#Pipfile.lock
|
|
99
|
+
|
|
100
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
101
|
+
__pypackages__/
|
|
102
|
+
|
|
103
|
+
# Celery stuff
|
|
104
|
+
celerybeat-schedule
|
|
105
|
+
celerybeat.pid
|
|
106
|
+
|
|
107
|
+
# SageMath parsed files
|
|
108
|
+
*.sage.py
|
|
109
|
+
|
|
110
|
+
# Environments
|
|
111
|
+
.env
|
|
112
|
+
.venv
|
|
113
|
+
env/
|
|
114
|
+
venv/
|
|
115
|
+
ENV/
|
|
116
|
+
env.bak/
|
|
117
|
+
venv.bak/
|
|
118
|
+
|
|
119
|
+
# Spyder project settings
|
|
120
|
+
.spyderproject
|
|
121
|
+
.spyproject
|
|
122
|
+
|
|
123
|
+
# Rope project settings
|
|
124
|
+
.ropeproject
|
|
125
|
+
|
|
126
|
+
# mkdocs documentation
|
|
127
|
+
/site
|
|
128
|
+
|
|
129
|
+
# mypy
|
|
130
|
+
.mypy_cache/
|
|
131
|
+
.dmypy.json
|
|
132
|
+
dmypy.json
|
|
133
|
+
|
|
134
|
+
# Pyre type checker
|
|
135
|
+
.pyre/
|
|
136
|
+
|
|
137
|
+
# pytype static type analyzer
|
|
138
|
+
.pytype/
|
|
139
|
+
|
|
140
|
+
# Cython debug symbols
|
|
141
|
+
cython_debug/
|
|
142
|
+
|
|
143
|
+
# static files generated from Django application using `collectstatic`
|
|
144
|
+
media
|
|
145
|
+
export
|
|
146
|
+
static_collected
|
|
147
|
+
data
|
|
148
|
+
token.temp
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: arkitekt-server
|
|
3
|
+
Version: 0.0.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author-email: Your Name <your.email@example.com>
|
|
6
|
+
Keywords: arkitekt,server
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Requires-Python: >=3.12
|
|
13
|
+
Requires-Dist: click>=8.2.1
|
|
14
|
+
Requires-Dist: cryptography>=45.0.5
|
|
15
|
+
Requires-Dist: namegenerator>=1.0.6
|
|
16
|
+
Requires-Dist: pydantic>=2.11.7
|
|
17
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
18
|
+
Requires-Dist: typer>=0.16.0
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# Arkitekt Server
|
|
22
|
+
|
|
23
|
+
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.
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
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.
|
|
28
|
+
|
|
29
|
+
## Requirements
|
|
30
|
+
|
|
31
|
+
- Python 3.12+
|
|
32
|
+
- Docker and Docker Compose
|
|
33
|
+
- Git (for development mode with repository mounting)
|
|
34
|
+
|
|
35
|
+
## Running
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
uvx arkitekt-server init default
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This command initializes a new Arkitekt Server deployment with a default configuration. You can also specify different configurations such as `dev` for development mode or `minimal` for a lightweight setup.
|
|
42
|
+
|
|
43
|
+
### Non-UVX Usage
|
|
44
|
+
|
|
45
|
+
If you prefer not to use UVX, you can run the tool directly with:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install arkitekt-server
|
|
49
|
+
arkitekt-server init default
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Key Features
|
|
53
|
+
|
|
54
|
+
- **One-Command Deployment**: Generate complete Docker Compose configurations with sensible defaults
|
|
55
|
+
- **Service Deployment**: Deploy and manage multiple interconnected services
|
|
56
|
+
- **Authentication & Authorization**: Built-in user management with JWT-based authentication
|
|
57
|
+
- **Development Mode**: Hot-reload support for development with GitHub repository mounting (when available)
|
|
58
|
+
|
|
59
|
+
## Core Services
|
|
60
|
+
|
|
61
|
+
The Arkitekt ecosystem includes several specialized services:
|
|
62
|
+
|
|
63
|
+
- **Lok**: Authentication and authorization service with JWT token management
|
|
64
|
+
- **Rekuest**: Task orchestration and workflow management
|
|
65
|
+
- **Mikro**: Image and microscopy data management
|
|
66
|
+
- **Kabinet**: Container and application registry
|
|
67
|
+
- **Fluss**: Workflow execution engine
|
|
68
|
+
- **Kraph**: Knowledge graph and metadata management
|
|
69
|
+
- **Elektro**: Event streaming and notifications
|
|
70
|
+
- **Alpaka**: AI/ML model management with Ollama integration
|
|
71
|
+
|
|
72
|
+
## Quick Start
|
|
73
|
+
|
|
74
|
+
### Initialize a new deployment
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Create a default configuration
|
|
78
|
+
arkitekt-server init default
|
|
79
|
+
|
|
80
|
+
# Create a development configuration with GitHub mounting
|
|
81
|
+
arkitekt-server init dev
|
|
82
|
+
|
|
83
|
+
# Create a minimal configuration
|
|
84
|
+
arkitekt-server init minimal
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Configure services
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Enable/disable specific services
|
|
91
|
+
arkitekt-server service rekuest --enable
|
|
92
|
+
arkitekt-server service mikro --enable
|
|
93
|
+
arkitekt-server service kabinet --enable
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Manage users
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Add a new user
|
|
100
|
+
arkitekt-server auth user add
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Allows you to add a new user with options for username, email, and password.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### Deploy
|
|
107
|
+
|
|
108
|
+
When ready to deploy, run:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Generate Docker Compose files and deploy
|
|
112
|
+
arkitekt-server build docker
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This command generates the necessary Docker Compose files based on your configuration and starts the services.
|
|
116
|
+
|
|
117
|
+
### Start the services
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
docker compose up
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This command starts all the services defined in the generated Docker Compose files, wait for the services to be up and running, and then you can access the
|
|
124
|
+
deployment though the orkestrator interface.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
## Configuration
|
|
128
|
+
|
|
129
|
+
The tool generates and manages a `arkitekt_server_config.yaml` file that contains all deployment settings. This file includes:
|
|
130
|
+
|
|
131
|
+
- Service configurations and Docker images
|
|
132
|
+
- Database and Redis settings
|
|
133
|
+
- Object storage (MinIO) configuration
|
|
134
|
+
- Authentication keys and secrets
|
|
135
|
+
- User and group management
|
|
136
|
+
- Network and routing configuration
|
|
137
|
+
|
|
138
|
+
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.
|
|
139
|
+
|
|
140
|
+
## Architecture
|
|
141
|
+
|
|
142
|
+
Arkitekt Server uses a self-container-service architecture with:
|
|
143
|
+
|
|
144
|
+
- **PostgreSQL**: Primary database for all services
|
|
145
|
+
- **Redis**: Message queuing and caching
|
|
146
|
+
- **MinIO**: S3-compatible object storage
|
|
147
|
+
- **Caddy**: Reverse proxy and gateway
|
|
148
|
+
- **Docker**: Container orchestration
|
|
149
|
+
|
|
150
|
+
Each service can be configured independently with options for:
|
|
151
|
+
- Local or remote databases
|
|
152
|
+
- Shared or dedicated storage buckets
|
|
153
|
+
- Development or production deployment modes
|
|
154
|
+
- Custom authentication configurations
|
|
155
|
+
|
|
156
|
+
## Development
|
|
157
|
+
|
|
158
|
+
For development workflows, the tool supports:
|
|
159
|
+
|
|
160
|
+
- GitHub repository mounting for live code reloading
|
|
161
|
+
- Debug mode with detailed logging
|
|
162
|
+
- Separate development configurations
|
|
163
|
+
- Hot-swappable service configurations
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
MIT License
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Arkitekt Server
|
|
2
|
+
|
|
3
|
+
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.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
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.
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
- Python 3.12+
|
|
12
|
+
- Docker and Docker Compose
|
|
13
|
+
- Git (for development mode with repository mounting)
|
|
14
|
+
|
|
15
|
+
## Running
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
uvx arkitekt-server init default
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This command initializes a new Arkitekt Server deployment with a default configuration. You can also specify different configurations such as `dev` for development mode or `minimal` for a lightweight setup.
|
|
22
|
+
|
|
23
|
+
### Non-UVX Usage
|
|
24
|
+
|
|
25
|
+
If you prefer not to use UVX, you can run the tool directly with:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install arkitekt-server
|
|
29
|
+
arkitekt-server init default
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Key Features
|
|
33
|
+
|
|
34
|
+
- **One-Command Deployment**: Generate complete Docker Compose configurations with sensible defaults
|
|
35
|
+
- **Service Deployment**: Deploy and manage multiple interconnected services
|
|
36
|
+
- **Authentication & Authorization**: Built-in user management with JWT-based authentication
|
|
37
|
+
- **Development Mode**: Hot-reload support for development with GitHub repository mounting (when available)
|
|
38
|
+
|
|
39
|
+
## Core Services
|
|
40
|
+
|
|
41
|
+
The Arkitekt ecosystem includes several specialized services:
|
|
42
|
+
|
|
43
|
+
- **Lok**: Authentication and authorization service with JWT token management
|
|
44
|
+
- **Rekuest**: Task orchestration and workflow management
|
|
45
|
+
- **Mikro**: Image and microscopy data management
|
|
46
|
+
- **Kabinet**: Container and application registry
|
|
47
|
+
- **Fluss**: Workflow execution engine
|
|
48
|
+
- **Kraph**: Knowledge graph and metadata management
|
|
49
|
+
- **Elektro**: Event streaming and notifications
|
|
50
|
+
- **Alpaka**: AI/ML model management with Ollama integration
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
### Initialize a new deployment
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Create a default configuration
|
|
58
|
+
arkitekt-server init default
|
|
59
|
+
|
|
60
|
+
# Create a development configuration with GitHub mounting
|
|
61
|
+
arkitekt-server init dev
|
|
62
|
+
|
|
63
|
+
# Create a minimal configuration
|
|
64
|
+
arkitekt-server init minimal
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Configure services
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Enable/disable specific services
|
|
71
|
+
arkitekt-server service rekuest --enable
|
|
72
|
+
arkitekt-server service mikro --enable
|
|
73
|
+
arkitekt-server service kabinet --enable
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Manage users
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Add a new user
|
|
80
|
+
arkitekt-server auth user add
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Allows you to add a new user with options for username, email, and password.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Deploy
|
|
87
|
+
|
|
88
|
+
When ready to deploy, run:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Generate Docker Compose files and deploy
|
|
92
|
+
arkitekt-server build docker
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
This command generates the necessary Docker Compose files based on your configuration and starts the services.
|
|
96
|
+
|
|
97
|
+
### Start the services
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
docker compose up
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This command starts all the services defined in the generated Docker Compose files, wait for the services to be up and running, and then you can access the
|
|
104
|
+
deployment though the orkestrator interface.
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
## Configuration
|
|
108
|
+
|
|
109
|
+
The tool generates and manages a `arkitekt_server_config.yaml` file that contains all deployment settings. This file includes:
|
|
110
|
+
|
|
111
|
+
- Service configurations and Docker images
|
|
112
|
+
- Database and Redis settings
|
|
113
|
+
- Object storage (MinIO) configuration
|
|
114
|
+
- Authentication keys and secrets
|
|
115
|
+
- User and group management
|
|
116
|
+
- Network and routing configuration
|
|
117
|
+
|
|
118
|
+
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.
|
|
119
|
+
|
|
120
|
+
## Architecture
|
|
121
|
+
|
|
122
|
+
Arkitekt Server uses a self-container-service architecture with:
|
|
123
|
+
|
|
124
|
+
- **PostgreSQL**: Primary database for all services
|
|
125
|
+
- **Redis**: Message queuing and caching
|
|
126
|
+
- **MinIO**: S3-compatible object storage
|
|
127
|
+
- **Caddy**: Reverse proxy and gateway
|
|
128
|
+
- **Docker**: Container orchestration
|
|
129
|
+
|
|
130
|
+
Each service can be configured independently with options for:
|
|
131
|
+
- Local or remote databases
|
|
132
|
+
- Shared or dedicated storage buckets
|
|
133
|
+
- Development or production deployment modes
|
|
134
|
+
- Custom authentication configurations
|
|
135
|
+
|
|
136
|
+
## Development
|
|
137
|
+
|
|
138
|
+
For development workflows, the tool supports:
|
|
139
|
+
|
|
140
|
+
- GitHub repository mounting for live code reloading
|
|
141
|
+
- Debug mode with detailed logging
|
|
142
|
+
- Separate development configurations
|
|
143
|
+
- Hot-swappable service configurations
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
## License
|
|
148
|
+
|
|
149
|
+
MIT License
|
|
File without changes
|