Installation
TrustBOM is deployed using ArgoCD on a local Kubernetes cluster powered by Kind (Kubernetes in Docker).
This system was developed and tested on Ubuntu 24.04 LTS (kernel 6.8.0-90-generic). Other operating systems are not officially supported.
Prerequisites
Setup
1. Clone the Repository
git clone https://github.com/tuberlin-blockchain-prototyping/sharing-sbom-system.git
cd sharing-sbom-system
cp .env.example .env
2. Create a GitHub App
TrustBOM uses a self-hosted GitHub Actions Runner to execute CI/CD jobs inside the Kubernetes cluster. This requires a GitHub App for authentication.
Step 2.1: Create the App
- Go to your GitHub organization's settings
- Navigate to Developer settings → GitHub Apps → New GitHub App
- Fill in the required fields:
- GitHub App name:
TrustBOM Runner(or any unique name) - Homepage URL:
https://github.com/tuberlin-blockchain-prototyping(can be any URL) - Webhook: Uncheck "Active" (not needed)
- GitHub App name:
Step 2.2: Set Permissions
Under Repository permissions, set:
- Actions: Read and write
- Artifact metadata Read-only
- Attestations Read-only
- Metadata: Read-only
Under Organization permissions:
- Self-hosted runners: Read and write
Step 2.3: Finish Creation and Retrieve App ID
- Click Create GitHub App
- Note the App ID displayed on the app's page
Step 2.4: Generate a Private Key
- On the app's page, scroll to Private keys
- Click Generate a private key
- A
.pemfile will be downloaded - save it to thesharing-sbom-systemdirectory
Step 2.5: Install the App
- On the app's page, click Install App in the left sidebar
- Select your organization
- Choose Only select repositories and select the repositories that will use TrustBOM
- Click Install
- After installation, note the Installation ID from the URL:
https://github.com/settings/installations/12345678
^^^^^^^^
This is your Installation ID
If you want to enable the runner for public repositories, you must make sure this is enabled for the group that is set for the runner. For this, go to your GitHub organization's settings and navigate to Actions → Runner groups. Select the group of the runner and enable Allow public repositories.
3. Configure Environment
Edit the .env file with your GitHub App credentials:
ABP_ACTIONS_RUNNER_APP_ID=123456
ABP_ACTIONS_RUNNER_APP_INSTALLATION_ID=12345678
PRIVATE_KEY_FILE=your-app-name.private-key.pem
| Variable | Description |
|---|---|
ABP_ACTIONS_RUNNER_APP_ID | The App ID from step 2.3 |
ABP_ACTIONS_RUNNER_APP_INSTALLATION_ID | The Installation ID from step 2.5 |
PRIVATE_KEY_FILE | Path to the .pem file (absolute) |
4. Run Setup
./scripts/setup.sh
This will:
- Create a Kind cluster named
sharing-sbom-system - Install ArgoCD for GitOps deployment
- Deploy Hardhat blockchain node with smart contracts
- Install cert-manager
- Install Actions Runner Controller (ARC)
- Deploy self-hosted runners
The initial setup takes several minutes as it downloads container images and waits for services to be ready.
5. Access ArgoCD UI
kubectl port-forward svc/argocd-server -n argocd 8080:443
Open https://localhost:8080 (username: admin, password shown during setup)
Next Steps
- Usage Guide - Learn how to generate and verify proofs