SovAI Air-Gap Internal Artifact Hub
Build new AI applications from approved internal images, wheels, prompts, tools, and model references.
Expected outcomes
What it includes
What this kit proves
These are the practical claims the kit demonstrates when run locally.
Internal artifact hub flow
Start a local internal Docker registry on localhost:5000.
Import approved base images while internet is available.
Download Linux-compatible Python wheels into the local wheelhouse.
Record approvals and checksums for imported artifacts.
Build a new sample app using localhost:5000/sovai/python:3.11-slim.
Install Python packages with --no-index from artifact-hub/wheelhouse.
Run the sample app and confirm it was built from internal artifacts.
Quick start
Copy these commands into a terminal and follow the connected/offline steps described in the repository README.
git clone https://github.com/sovaihub-lab/sovai-airgap-ai-Internal-artifact-hub
cd sovai-airgap-ai-Internal-artifact-hub
chmod +x scripts/*.sh
./scripts/start-hub.sh
./scripts/import-base-images.sh
./scripts/import-python-wheels.sh examples/offline-build-sample-app/requirements.txt
./scripts/approve-artifact.sh container-image localhost:5000/sovai/python:3.11-slim "Approved Python base image"
./scripts/verify-artifacts.sh
cd examples/offline-build-sample-app
./scripts/build-offline.sh
./scripts/run.sh
open http://127.0.0.1:8095Configuration
Ports and services
Working proof
The demo should produce evidence like this when it is running correctly.
runtime_mode: offline-build-from-internal-artifacts
base_image: localhost:5000/sovai/python:3.11-slim
package_source: local-wheelhouseTroubleshooting notes
Wheelhouse was empty
verify-artifacts.sh only verifies existing files. Run import-python-wheels.sh while connected before trying an offline build.
Windows wheels did not match Linux Docker runtime
The import script should download wheels inside a Linux python:3.11-slim container so packages such as pydantic-core match the target image.
Git Bash converted /work into C:/Program Files/Git/work
Use MSYS_NO_PATHCONV=1 and MSYS2_ARG_CONV_EXCL=* for Docker commands that mount Linux-style paths from Git Bash.
Docker registry push returned unknown error
On Windows, use a Docker named volume for registry storage instead of a Windows bind mount.
Limitations
Recommended next steps
Build Phase 4: Offline Build Factory
Add app templates, allowed dependency policies, validation scripts, SBOM generation, and promotion workflows.
Move toward Phase 5
Add enterprise controls such as role-based approvals, signed images, vulnerability gates, audit dashboards, and deployment promotion stages.