Gapura adalah “pintu masuk utama” untuk akses SSH di cluster/homelab: smart contract EVM menjadi source of truth untuk siapa yang boleh login, dan OpenSSH memanggil sentinel untuk mengambil authorized_keys secara dinamis.
Gapura adalah produk dari Sangkan (ꦱꦁꦏꦤ꧀).
- GitHub: https://github.com/sangkan-dev/
- Website: https://sangkan.dev/
Spesifikasi produk: PRD.md. Task list: TASK.md.
contracts/: Foundry + kontrakGapura.sol+ test + deploy scriptsentinel/: binarygapura-sentinel(OpenSSHAuthorizedKeysCommand)cli/: binarygapura(admin CLI)docs/: runbook, install, sshd, sentinel config, checklist E2Escripts/: smoke test lokal dan installer
cd contracts
forge build
forge testDeploy (lihat juga contracts/README.md):
cd contracts
forge script script/Gapura.s.sol:GapuraScript --rpc-url base_sepolia --broadcast --verify -vvvcd cli
cargo build --release
./target/release/gapura --helpContoh pakai:
./target/release/gapura init --rpc-url "<RPC_URL>" --private-key-path "<PATH_TO_HEX_KEY>" --contract "<GAPURA_CONTRACT>"
./target/release/gapura grant <wallet> "ssh-ed25519 AAAA..."
./target/release/gapura revoke <wallet>
./target/release/gapura status --wallet <wallet>
./target/release/gapura audit --from-block 0Install (recommended, from GitHub Release):
curl -fsSL https://raw.githubusercontent.com/sangkan-dev/gapura/main/scripts/install.sh -o install.sh
chmod +x install.sh
./install.shBuild from source (alternative):
cd sentinel
cargo build --releaseInstall di host SSH:
- Script:
scripts/install.sh - Docs:
docs/install.md,docs/sshd.md,docs/sentinel.md
Doctor check (di host):
sudo -u gapura-sentinel /usr/local/bin/gapura-sentinel doctor./scripts/dev-smoke.sh- Gunakan private RPC endpoint (Alchemy/QuickNode) dan simpan API key sebagai environment variable / secret manager.
- Jangan commit file
.envatau config real/etc/gapura/*.toml.
MIT — lihat LICENSE.