Sign inSign up

paularlott/knot-scriptling

By paularlott

•Updated about 10 hours ago

Container image for running scriptling within a knot development environment.

Image
Developer tools
0

9.4K

paularlott/knot-scriptling repository overview

⁠knot-scriptling

A Scriptling⁠ runtime image for knot⁠ spaces, combining knot-ubuntu with the Scriptling interpreter and CLI. Scriptling is a minimal, sandboxed, Python-like scripting language for Go — designed for LLM agents to execute code and interact with REST APIs. It is a pure runtime image — no web server — though the CLI can act as one via scriptling --server.

It inherits the full knot entrypoint, runtime user, rsyslog logging and startup-hook framework from knot-ubuntu.

An Alpine variant (<version>-alpine tags) provides the same toolchain on an Alpine base for a smaller footprint — see below⁠.

⁠Tags

All tags are multi-arch (linux/amd64, linux/arm64); see Docker Hub⁠ for the current list.

  • <version> — Ubuntu 26.04 base (e.g. 0.20.2), plus a rolling major.minor tag (e.g. 0.20).
  • <version>-alpine — Alpine base (e.g. 0.20.2-alpine), plus a rolling <major.minor>-alpine tag (e.g. 0.20-alpine).

Each release is also tagged <version>-<BUILD_DATE> / <version>-alpine-<BUILD_DATE>.

⁠Usage

docker run -d \
  -e KNOT_SERVER=https://knot.example.com \
  -e KNOT_USER=alice \
  -v knot_home:/home \
  paularlott/knot-scriptling:0.20.1

Then, in the space:

echo 'print("hello from scriptling")' > hello.sl
scriptling hello.sl

Interactive REPL, inline code, and the built-in HTTP / JSON-RPC / MCP server modes:

scriptling -i
scriptling -c 'print("hello")'
scriptling --server 0.0.0.0:8080 --mcp-exec-script

⁠How it works

Builds on knot-ubuntu:26.04. Scriptling is installed as the self-contained static binary /usr/local/bin/scriptling — no interpreter dependencies are required.

⁠Alpine variant

The <version>-alpine tags are the knot-alpine⁠ sibling — the same tooling as knot-ubuntu mapped to Alpine packages (git, vim, fish, tmux, ripgrep, bat, fzf, zoxide, jq, make, ssh, mariadb-client, postgresql-client, valkey-cli, rsyslog, gosu, mutagen, …) — plus the static Scriptling binary, which works on musl. See the knot-alpine README⁠ for the Ubuntu↔Alpine package mapping and entrypoint differences.

⁠Environment variables

Built on knot-ubuntu, so it supports the common knot variables:

VariableDefaultDescription
KNOT_USERknotRuntime user (uid 1000); created if missing
KNOT_SERVER(unset)knot server URL; if set, the agent is downloaded and started
KNOT_AGENT_ENDPOINT(unset)Agent endpoint reported to the server
KNOT_SPACEID(unset)Space identifier
KNOT_SERVICE_PASSWORD(auto-generated UUID)Shared service password
KNOT_SSHD(unset)Set to native to start sshd
KNOT_SSH_PORT2222Port for the SSH daemon
KNOT_SYSLOG_PORT1514Syslog forward target (0 disables forwarding)
TZEtc/UTCTimezone

Scriptling-specific:

VariableDefaultDescription
SCRIPTLING_VERSION(build-time)The Scriptling release the image was built with (e.g. v0.20.1)

⁠Volumes

  • /home — persistent home directory; scripts and projects live here.

⁠License

Scriptling is Apache License 2.0⁠. This image's packaging — the Dockerfile and supporting scripts/configs — is Apache License 2.0⁠.

Source: paularlott/knot-base-images⁠.

Tag summary

Content type

Image

Digest

sha256:2703e0ae7…

Size

206 MB

Last updated

about 10 hours ago

docker pull paularlott/knot-scriptling