Sunlionet

Outside: Bundle Generation

SunLionet Outside curates a set of seed profiles, applies strict normalization, embeds the required sing-box outbound templates, then produces a signed bundle (optionally encrypted to an Inside recipient).

Outputs are designed to be safely distributed as:

Key Generation

Generate an Ed25519 signing keypair, and optionally an age identity+recipient pair for encrypting bundles to Inside:

go run -tags outside ./cmd/outside keygen \
  --ed25519-priv ./keys/outside.ed25519 \
  --ed25519-pub ./keys/outside.ed25519.pub \
  --age-identity ./keys/inside.agekey \
  --age-recipient ./keys/inside.agepub

Input Profiles

Provide candidate profiles via one of:

Unknown JSON fields are rejected. Profiles are normalized and validated before selection.

Generate a Bundle

Encrypted bundle (recommended):

go run -tags outside ./cmd/outside \
  --profiles ./profiles.json \
  --templates-dir ./templates \
  --signing-key ./keys/outside.ed25519 \
  --recipient-pub ./keys/inside.agepub \
  --out ./dist

Signed plaintext bundle (only when you explicitly allow it):

go run -tags outside ./cmd/outside \
  --profiles ./profiles.json \
  --templates-dir ./templates \
  --signing-key ./keys/outside.ed25519 \
  --allow-plaintext \
  --out ./dist

Outputs

--out ./dist produces:

Optional, depending on size:

Chunked Transport Preparation

If the bundle URI is too large for a messaging channel, Outside can prepare a chunked text representation:

This is preparation only; SunLionet does not automatically send via third-party messengers yet.