bascule-oss/docs/quickstart.md
Tyler King e7fc9fa5e1 feat: structured logging, tracing spans, comprehensive documentation
Observability:
  Structured JSON logging via BASCULE_LOG_FORMAT=json
  Tracing spans on auth (method, principal, peer)
  Tracing spans on session lifecycle (id, principal, backend, source_ip)
  Tracing spans on exec requests (session_id, command)
  Config: [telemetry] and [metrics] sections (OTel export planned)

Documentation (8 files, 489 lines):
  docs/quickstart.md — three-path getting started
  docs/configuration.md — full config reference with examples
  docs/authentication.md — all auth modes with setup guides
  docs/architecture.md — backends, traits, extension model, security
  docs/observability.md — logging, tracing, metrics
  docs/comparison.md — vs Teleport, Boundary, StrongDM
  images/README.md — curated image catalog
  README.md — features, comparison, quickstart, extension example

1557 lines Rust, 489 lines docs, 0 substrate deps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:45:03 -04:00

1.1 KiB

Quick Start

Option 1: Build from Source

git clone https://github.com/guildhouse/bascule.git
cd bascule
cargo build --release -p bascule-server
./target/release/bascule --config config/bascule.example.toml

In another terminal:

ssh -p 2222 localhost

Option 2: Container Mode

# Build a curated shell image
docker build -t bascule-shell:k8s-ops images/k8s-ops/

# Create a config
cat > my-config.toml << 'TOML'
listen_addr = "0.0.0.0:2222"

[auth]
mode = "accept-all"    # For testing only!

[container]
image = "bascule-shell:k8s-ops"
ephemeral = true
hardened = true
TOML

./target/release/bascule --config my-config.toml

Option 3: Proxy Mode

cat > proxy-config.toml << 'TOML'
listen_addr = "0.0.0.0:2222"

[auth]
mode = "accept-all"

[proxy]
target_host = "192.168.1.100"
target_port = 22
target_key_path = "/path/to/key"
accept_target_host_key = true
TOML

./target/release/bascule --config proxy-config.toml

Next Steps