forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
spindle self-hosting guide#
prerequisites#
- Go
- Docker (the only supported backend currently)
configuration#
Spindle is configured using environment variables. The following environment variables are available:
SPINDLE_SERVER_LISTEN_ADDR: The address the server listens on (default:"0.0.0.0:6555").SPINDLE_SERVER_DB_PATH: The path to the SQLite database file (default:"spindle.db").SPINDLE_SERVER_HOSTNAME: The hostname of the server (required).SPINDLE_SERVER_JETSTREAM_ENDPOINT: The endpoint of the Jetstream server (default:"wss://jetstream1.us-west.bsky.network/subscribe").SPINDLE_SERVER_DEV: A boolean indicating whether the server is running in development mode (default:false).SPINDLE_SERVER_OWNER: The DID of the owner (required).SPINDLE_PIPELINES_NIXERY: The Nixery URL (default:"nixery.tangled.sh").SPINDLE_PIPELINES_WORKFLOW_TIMEOUT: The default workflow timeout (default:"5m").SPINDLE_PIPELINES_LOG_DIR: The directory to store workflow logs (default:"/var/log/spindle").
running spindle#
-
Set the environment variables. For example:
export SPINDLE_SERVER_HOSTNAME="your-hostname" export SPINDLE_SERVER_OWNER="your-did" -
Build the Spindle binary.
cd core go mod download go build -o cmd/spindle/spindle cmd/spindle/main.go -
Create the log directory.
sudo mkdir -p /var/log/spindle sudo chown $USER:$USER -R /var/log/spindle -
Run the Spindle binary.
./cmd/spindle/spindle
Spindle will now start, connect to the Jetstream server, and begin processing pipelines.