Outpost on Linux

Install an Outpost on Linux — ffmpeg, yt-dlp, uv, node, Kubo, then the Outpost service and IPFS pinning. The reference host is the Pi5. On this public page the steps are copy-paste blocks; on your own local wiki they become a live guarded workflow. Part of the Outpost Installation Plan.

## Stage 0 — Packages

sudo apt update sudo apt install -y ffmpeg pipx pipx install yt-dlp curl -LsSf https://astral.sh/uv/install.sh | sh

KUBO=v0.36.0; ARCH=$(dpkg --print-architecture) # arm64 on the Pi5 wget -qO- "https://dist.ipfs.tech/kubo/$KUBO/kubo_${KUBO}_linux-${ARCH}.tar.gz" | tar -xz sudo bash kubo/install.sh

## Stage 1 — Local Wiki

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash . "$HOME/.nvm/nvm.sh" nvm install --lts npm install -g wiki sudo apt install -y caddy

## Stage 2 — Outpost Service

# repo home pending — see Outpost Installation Plan → Open Questions git clone https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-outpost ~/wiki-outpost cd ~/wiki-outpost && uv sync nohup uv run uvicorn main:app --port 4244 >/tmp/outpost.log 2>&1 & curl -s http://localhost:4244/ping

## Stage 3 — IPFS

ipfs init --profile=server nohup ipfs daemon >/tmp/ipfs.log 2>&1 & # wrap in a systemd unit for boot

read -s -p "Filebase token: " FILEBASE_TOKEN; echo ipfs pin remote service add filebase \ https://api.filebase.io/v1/ipfs "$FILEBASE_TOKEN"

## Stage 4 — Verify

curl -s http://localhost:4244/ping ipfs pin remote service ls yt-dlp --skip-download --print title "https://www.youtube.com/watch?v=jNQXAC9IVRw" ffmpeg -version | head -1

The whole flow as one guarded workflow — display-only here, live and self-assessing on a local wiki:

#!/usr/bin/env bash # wiki-workflow: Outpost on Linux # ── guards ── have_tools() { command -v ffmpeg >/dev/null 2>&1 && command -v yt-dlp >/dev/null 2>&1; } have_ipfs() { command -v ipfs >/dev/null 2>&1; } have_wiki() { command -v wiki >/dev/null 2>&1; } outpost_up() { curl -sf http://localhost:4244/ping >/dev/null 2>&1; } have_ipfs_repo() { [ -d "${IPFS_PATH:-$HOME/.ipfs}" ]; } # ── step 41387bfd2a3c509f ── sudo apt update sudo apt install -y ffmpeg pipx pipx install yt-dlp curl -LsSf https://astral.sh/uv/install.sh | sh # ── step a0f591df27a085ba needs: have_tools ── if have_tools; then KUBO=v0.36.0; ARCH=$(dpkg --print-architecture) # arm64 on the Pi5 wget -qO- "https://dist.ipfs.tech/kubo/$KUBO/kubo_${KUBO}_linux-${ARCH}.tar.gz" | tar -xz sudo bash kubo/install.sh fi # ── step 082f9a752258eb23 needs: have_tools ── if have_tools; then curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash . "$HOME/.nvm/nvm.sh" nvm install --lts npm install -g wiki sudo apt install -y caddy fi # ── step b6b12c38a62a6faa needs: have_wiki ── if have_wiki; then # repo home pending — see Outpost Installation Plan → Open Questions git clone https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-outpost ~/wiki-outpost cd ~/wiki-outpost && uv sync nohup uv run uvicorn main:app --port 4244 >/tmp/outpost.log 2>&1 & curl -s http://localhost:4244/ping fi # ── step 4d7ccf76c3b84b5a needs: have_ipfs ── if have_ipfs; then ipfs init --profile=server nohup ipfs daemon >/tmp/ipfs.log 2>&1 & # wrap in a systemd unit for boot fi # ── step fddf30d427986b8a tty needs: have_ipfs_repo ── if have_ipfs_repo; then read -s -p "Filebase token: " FILEBASE_TOKEN; echo ipfs pin remote service add filebase \ https://api.filebase.io/v1/ipfs "$FILEBASE_TOKEN" fi # ── step 28b51c3f026fda39 needs: outpost_up ── if outpost_up; then curl -s http://localhost:4244/ping ipfs pin remote service ls yt-dlp --skip-download --print title "https://www.youtube.com/watch?v=jNQXAC9IVRw" ffmpeg -version | head -1 fi

## See

- Outpost Installation Plan — the design behind this flow - Outpost on macOS and Outpost on Windows — the sibling flows - IPFS Pinning — what Stage 3 configures

# Assets

outpost-on-linux