Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Ensure you have Go 1.21+ and make installed.

Quick Start

# Clone repo
git clone https://github.com/andrearaponi/dito.git && cd dito

# One-command setup & start
make quick-start

This will build binaries, generate keys, sign plugins, update configuration and start the server.

Step-by-Step

# 1. Clone repo
git clone https://github.com/andrearaponi/dito.git && cd dito

# 2. Setup (build, keys, plugins, config)
make setup

# 3. Start server
make run

Makefile Commands

CategoryCommandDescription
Quickquick-startClean, setup everything and start
setupFull development setup (build, keys, plugins, config)
setup-prodFull production setup (persistent keys, prod config)
runStart the Dito server
fix-configQuick command to fix configuration after setup
BuildbuildBuild Dito binary only
build-pluginsBuild all plugins
build-plugin-signerBuild plugin-signer tool
Securitygenerate-keysGenerate Ed25519 key pair for development
generate-prod-keysGenerate persistent Ed25519 key pair for production
sign-pluginsSign all plugins with development keys
sign-plugins-prodSign all plugins with production keys
update-configUpdate bin/config.yaml with development key paths/hashes
update-prod-configUpdate bin/config-prod.yaml with production key paths/hashes
update-k8s-configCreate configs/config-prod-k8s.yaml for Kubernetes deployment
OpenShiftdeploy-ocpComplete OpenShift production deployment
deploy-ocp-devQuick development deployment to OpenShift
status-ocpCheck OpenShift deployment status
logs-ocpView OpenShift deployment logs
clean-ocpClean up OpenShift resources
Debugdebug-configDebug configuration issues
helpShow all commands
CleanupcleanRemove build artifacts
clean-pluginsClean plugin binaries only
DevelopmenttestRun tests
vetRun go vet
fmtFormat code
sonarRun SonarQube analysis

Manual Installation

  1. Build Dito
    go build -o bin/dito ./cmd/dito/main.go
    
  2. Build plugin-signer
    cd cmd/plugin-signer && go build -o ../../bin/plugin-signer . && cd ../..
    
  3. Generate keys
    ./bin/plugin-signer generate-keys
    
  4. Build plugins
    find plugins -mindepth 1 -maxdepth 1 -type d -exec sh -c 'cd "$1" && go build -buildmode=plugin -o "$(basename "$1").so"' sh {} \;
    
  5. Sign plugins
    find plugins -name "*.so" -exec ./bin/plugin-signer sign {} \;
    
  6. Update configuration Ensure public_key_path and public_key_hash in config.yaml are correct.
  7. Run Dito
    ./bin/dito