Quick Start
Get Voidkey running locally in just a few minutes using our Docker sandbox environment.
Prerequisites
Section titled “Prerequisites”- Docker and Docker Compose installed
- Git for cloning the repository
- Basic understanding of OIDC and cloud credentials
1. Clone the Repository
Section titled “1. Clone the Repository”git clone https://github.com/voidkey-oss/voidkey.gitcd voidkey2. Start the Sandbox Environment
Section titled “2. Start the Sandbox Environment”The sandbox provides a complete development environment with pre-configured Keycloak (identity provider) and MinIO (S3-compatible storage).
cd sandboxdocker compose up -dThis starts:
- Keycloak: Identity provider on
http://localhost:8080 - MinIO: S3-compatible storage on
http://localhost:9000(console:http://localhost:9001)
Wait for all services to be healthy:
docker compose ps3. Build and Start the Broker Server
Section titled “3. Build and Start the Broker Server”# Build the core librarycd ../broker-corenpm installnpm run buildnpm link
# Start the broker servercd ../broker-servernpm installnpm link @voidkey/broker-corenpm run devThe broker server will start on http://localhost:3000.
use npm link to connect local packaging of the broker-core for use by the broker-server.
4. Build the CLI
Section titled “4. Build the CLI”cd ../cligo build -o voidkey main.go5. Authenticate and Mint Credentials
Section titled “5. Authenticate and Mint Credentials”First, obtain an OIDC token from the test Keycloak instance:
# Get token from Keycloak (using test credentials)TOKEN=$(curl -s -X POST \ "http://localhost:8080/realms/client/protocol/openid-connect/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=test-client" \ -d "username=test-user" \ -d "password=test-password" \ -d "grant_type=password" | jq -r '.access_token')Now use the CLI to mint MinIO credentials:
# Set the OIDC tokenexport VOIDKEY_OIDC_TOKEN=$TOKEN
# Mint MinIO credentials./voidkey mint --keys MINIO_TEST_CREDENTIALS
# Or export them as environment variablesexport $(./voidkey mint --keys MINIO_TEST_CREDENTIALS --output env)6. Test the Credentials
Section titled “6. Test the Credentials”Use the minted credentials to access MinIO:
# Configure MinIO client with minted credentialsmc alias set myminio http://localhost:9000 $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
# List bucketsmc ls myminio/What’s Next?
Section titled “What’s Next?”You’ve successfully:
- ✅ Set up a local Voidkey environment
- ✅ Authenticated with an identity provider
- ✅ Minted temporary credentials
- ✅ Used those credentials to access cloud resources
Next Steps
Section titled “Next Steps”- Installation Guide - Set up Voidkey for production
- Configuration Guide - Configure your own identity and access providers
- Architecture Overview - Understand how Voidkey works
- Examples - See real-world usage examples
Troubleshooting
Section titled “Troubleshooting”Services not starting?
Section titled “Services not starting?”# Check logsdocker compose logs -f
# Restart servicesdocker compose downdocker compose up -dAuthentication failing?
Section titled “Authentication failing?”- Ensure Keycloak is fully started (can take 30-60 seconds)
- Check that you’re using the correct realm and client configuration
- Verify the token is not expired
Can’t connect to services?
Section titled “Can’t connect to services?”- Ensure ports 8080 (Keycloak), 9000/9001 (MinIO), and 3000 (broker) are not in use
- Check Docker network connectivity
For more help, see our troubleshooting guide or file an issue.