mirror of
https://github.com/saymrwulf/puncture.git
synced 2026-05-14 20:48:10 +00:00
53 lines
1.3 KiB
Markdown
53 lines
1.3 KiB
Markdown
# Puncture (Go)
|
|
|
|
Go implementation of a puncturable-key system (GGM tree) with:
|
|
|
|
- primary macOS app/server for key derivation, puncturing, providers, and asset encryption/decryption
|
|
- iOS emergency companion app for remote provider-level puncture
|
|
|
|
## Current architecture
|
|
|
|
- `goapp/cmd/server`: headless web server (`:9122`)
|
|
- `goapp/cmd/desktop`: macOS desktop app (embedded webview + local server)
|
|
- `goapp/internal/crypto`: GGM puncturable key manager
|
|
- `goapp/internal/app`: provider/key/asset state machine
|
|
- `goapp/internal/server`: HTTP API + web UI
|
|
- `goapp/ios/EmergencyPuncture`: native iOS app
|
|
|
|
## Run primary server
|
|
|
|
```bash
|
|
cd goapp
|
|
go run ./cmd/server --host 0.0.0.0 --port 9122
|
|
```
|
|
|
|
Open `http://127.0.0.1:9122`.
|
|
|
|
## Build macOS app + installer
|
|
|
|
```bash
|
|
cd goapp
|
|
./packaging/macos/build_dmg.sh
|
|
```
|
|
|
|
Artifacts:
|
|
|
|
- `goapp/dist/Puncture.app`
|
|
- `goapp/dist/Puncture.dmg`
|
|
|
|
## Persistence
|
|
|
|
Frontier/puncture/providers/assets are persisted locally and survive restarts.
|
|
Default desktop paths:
|
|
|
|
- assets: `~/Library/Application Support/PunctureGo/assets`
|
|
- state: `~/Library/Application Support/PunctureGo/state.json`
|
|
|
|
## iOS companion
|
|
|
|
- Xcode project: `goapp/ios/EmergencyPuncture/EmergencyPuncture.xcodeproj`
|
|
- iPhone install guide: `goapp/ios/INSTALL_IPHONE.md`
|
|
|
|
## Legacy Python line
|
|
|
|
The previous Python implementation is preserved in branch `python-legacy`.
|