FrameBridge helps one administrator manage their own home Linux network: inventory, services, storage, diagnostics, commands and persistent terminals. Desktop access is an auxiliary tool.
Match the target computer
cat /etc/os-release
dpkg --print-architecture
python3 --versionThe supported profiles below use amd64 and the distribution system Python. Select one matching suite for each computer.
amd64 · Python 3.13
Debian 13
APT suite: trixie
SHA-256: 4b3578b46706bcbbf609aba39d7457da13d64b1f65c90bc876d566b35766423e
FrameBridge-0.3.4-debian13-amd64-py313.deb · 13,384,684 bytes
Install the signed APT channel
sudo apt install ca-certificates curl gnupg
(
set -eu
key_file="$(mktemp)"
trap 'rm -f "$key_file"' EXIT
curl -fsSL 'https://framebridge.betancourt.one/debian/framebridge-archive-keyring.asc' -o "$key_file"
key_info="$(gpg --batch --show-keys --with-colons "$key_file" 2>/dev/null)"
actual="$(printf '%s\n' "$key_info" | awk -F: '$1=="fpr" {print $10; exit}')"
primary_count="$(printf '%s\n' "$key_info" | awk -F: '$1=="pub" {n++} END {print n+0}')"
test "$primary_count" -eq 1
test "$actual" = '2B1F01BC806C0B33CB6CEDDE52859CEBC91B8808'
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 "$key_file" /etc/apt/keyrings/framebridge-archive-keyring.asc
printf '%s\n' \
'Types: deb' \
'URIs: https://framebridge.betancourt.one/debian/' \
'Suites: trixie' \
'Components: main' \
'Architectures: amd64' \
'Signed-By: /etc/apt/keyrings/framebridge-archive-keyring.asc' \
| sudo tee /etc/apt/sources.list.d/framebridge.sources >/dev/null
sudo apt update
sudo apt install framebridge-original-expanded
)amd64 · Python 3.12
Ubuntu 24.04
APT suite: noble
SHA-256: 9c24a1c78790fc2b5dc4b56b223714d44dac0d1838f677ebca744f6e1c2534d7
FrameBridge-0.3.4-ubuntu24.04-amd64-py312.deb · 13,387,556 bytes
Install the signed APT channel
sudo apt install ca-certificates curl gnupg
(
set -eu
key_file="$(mktemp)"
trap 'rm -f "$key_file"' EXIT
curl -fsSL 'https://framebridge.betancourt.one/debian/framebridge-archive-keyring.asc' -o "$key_file"
key_info="$(gpg --batch --show-keys --with-colons "$key_file" 2>/dev/null)"
actual="$(printf '%s\n' "$key_info" | awk -F: '$1=="fpr" {print $10; exit}')"
primary_count="$(printf '%s\n' "$key_info" | awk -F: '$1=="pub" {n++} END {print n+0}')"
test "$primary_count" -eq 1
test "$actual" = '2B1F01BC806C0B33CB6CEDDE52859CEBC91B8808'
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 "$key_file" /etc/apt/keyrings/framebridge-archive-keyring.asc
printf '%s\n' \
'Types: deb' \
'URIs: https://framebridge.betancourt.one/debian/' \
'Suites: noble' \
'Components: main' \
'Architectures: amd64' \
'Signed-By: /etc/apt/keyrings/framebridge-archive-keyring.asc' \
| sudo tee /etc/apt/sources.list.d/framebridge.sources >/dev/null
sudo apt update
sudo apt install framebridge-original-expanded
)amd64 · Python 3.12
Linux Mint 22.x
APT suite: mint22
SHA-256: 45f84cc1171a20e353d597448893b25b4193df5ccad39ad48c38e21c03583336
FrameBridge-0.3.4-mint22-amd64-py312.deb · 13,387,488 bytes
Install the signed APT channel
sudo apt install ca-certificates curl gnupg
(
set -eu
key_file="$(mktemp)"
trap 'rm -f "$key_file"' EXIT
curl -fsSL 'https://framebridge.betancourt.one/debian/framebridge-archive-keyring.asc' -o "$key_file"
key_info="$(gpg --batch --show-keys --with-colons "$key_file" 2>/dev/null)"
actual="$(printf '%s\n' "$key_info" | awk -F: '$1=="fpr" {print $10; exit}')"
primary_count="$(printf '%s\n' "$key_info" | awk -F: '$1=="pub" {n++} END {print n+0}')"
test "$primary_count" -eq 1
test "$actual" = '2B1F01BC806C0B33CB6CEDDE52859CEBC91B8808'
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 "$key_file" /etc/apt/keyrings/framebridge-archive-keyring.asc
printf '%s\n' \
'Types: deb' \
'URIs: https://framebridge.betancourt.one/debian/' \
'Suites: mint22' \
'Components: main' \
'Architectures: amd64' \
'Signed-By: /etc/apt/keyrings/framebridge-archive-keyring.asc' \
| sudo tee /etc/apt/sources.list.d/framebridge.sources >/dev/null
sudo apt update
sudo apt install framebridge-original-expanded
)Release verification and source
Expected signing-key fingerprint:
2B1F01BC806C0B33CB6CEDDE52859CEBC91B8808
SHA256SUMS · Checksum signature · Public key
Corresponding FrameBridge source · Source signature
SHA-256: db91a270cdefc4be79056ed38a0b4a16747e1ab130592645eac40fa3809809df
- Bundled Python and Rust dependency sources · Signature
SHA-256: 64540a85bd65eac3f394d8c0a967cacbc00e112676d57d644dcd1bb691c1926a - Tunnel client dependency sources · Signature
SHA-256: 6445d4f0e773aba833fe5c610fbae54102b92de2ce636438f769f21e890c2bd9
Third-party components retain their original licenses and notices. Unchanged dependency archives retain their historical filenames.
Build the corresponding source
Keep the signed source archive and its matching manifest together. Download the matching source manifest · Manifest signature.
Save it as SOURCE-ARCHIVE-MANIFEST.json beside the source archive before following its rebuild instructions. The versioned download remains tied to 0.3.4.
SHA-256: 7fba7c18a0fe109fb941ab0e622576993380133ecc49cb24b4a87913584fb221
Normal updates
sudo apt update
apt-cache policy framebridge-original-expanded
sudo apt install --only-upgrade framebridge-original-expanded
fb statusAPT verifies the repository signature and package hashes. Keep the selected distribution suite and its scoped Signed-By key.
Connect and work
After installation, connect from the normal terminal on that computer:
fb connect
fb status
fb consoleOne central installation can connect enrolled Linux nodes. Nodes use the central connection. Enter passwords and connection keys only in the normal local prompts.
Read the shared command guide · Browse the canonical source repository