The shrapnl daemon and the shrapnl cli.
b6e15385 — 2 chainz 26 days ago
Decided on short route
3a9aabc4 — 2 chainz 26 days ago
remove etcd dep
52f90936 — 2 chainz 26 days ago
Prettify dir output


browse  log 



You can also use your local clone with git send-email.


shrapnl is a service that allows users to run binaries or scripts on-demand, or persistently.

Website: https://shrapnl.io / gemini://shrapnl.io (coming soon) Matrix: https://matrix.to/#/#shrapnl:cyberia.club Mailing List: https://lists.cyberia.club/~cyberia/ops Docs: https://godocs.io/giit.cyberia.club/~j3s/shrapnl

shrapnl is:

  • fast: simple shrapnls must execute nearly instantly (within 200ms end to end)
  • simple: use sane defaults and do not provide unnecessary flags, the cli must be intuitive
  • secure: shrapnl must use best practices for isolation - contained in cgroups, permissions limited

our runtimes include:

  • python3
  • ruby
  • crystal
  • golang
  • c
  • POSIX sh
  • bash
  • lua (what version?)
  • javascript/typescript (via deno)

a shrapnl may be a long-running service, or it may run once and die.

#dat test dir?

the test dir is layed out like so:

test ├── binaries <-- our "fake internet webserver" area. represents binaries on the | internet that we may pull down. | ├── container <-- our minimal container | └── tank <-- our ZFS mount where we cache binaries that users choose to download we take shasums out of here (content-addressable or address addressable)


  • implement shrapnl add
  • fix shrapnl run

client command shrapnl run j3s.sh/binaries/hexchat no binary found with that name. downloading.

server-side adding binary for client... mkdir /var/lib/shrapnl/containers mkdir /var/lib/shrapnl/binaries wget j3s.sh/binaries/hexchat mv hexchat /var/lib/shrapnl/binaries/sha256sum shrapnl has been added. sha256sum: [print sha] (VERIFY THIS) mkdir /var/lib/shrapnl/containers/uuid (volatile?? template??) systemd-nspawn --directory /var/lib/shrapnl/containers/uuid --quiet --volatile --template /var/lib/shrapnl/containers/master --as-pid2 usr/bin/user-binary