Squareberg — local application hub
Project description
Squareberg
A local application hub that aggregates personal productivity tools behind a unified API gateway. Each app is a standalone FastAPI backend with its own virtual environment, communicating over Unix domain sockets. Frontends are fully decoupled client-side SPAs.
Features
- Unified dashboard — grid launcher showing all apps, status, and links
- Decoupled frontends — each app ships one or more Preact + daisyUI SPAs; no Node runtime at runtime
- Per-app isolation — separate process, venv, and SQLite database per app
- OpenAPI introspection — live spec exposure for human browsing and agentic discovery
sqbCLI — install, start, stop, update apps; switch frontends- macOS + Linux — Unix sockets,
uv,npm; no Docker, no external database server
Requirements
- Python ≥ 3.10
- Node.js ≥ 18
uv- Git
Quick start
git clone https://github.com/squareberg/squareberg-hub.git
cd squareberg-hub
uv venv --prompt sqb --python 3.12
# Build the dashboard
./build-hub.sh
# Start the hub (port 9100)
sqb start
Open http://127.0.0.1:9100 in your browser.
Install the hello-world example app to verify the pipeline:
sqb app add examples/hello
sqb app start hello
# → http://127.0.0.1:9100/apps/hello/
CLI
sqb start / stop / status
sqb app add <url-or-path> [--as <name>]
sqb app remove / start / stop / logs / update <name>
sqb frontend list / switch <app> <frontend>
Documentation
Full docs at squareberg.github.io/squareberg-hub — or build locally:
./serve-docs.sh
Project layout
squareberg/
├── hub/ # hub backend (FastAPI, proxy, registry, process manager)
│ └── dashboard/ # hub dashboard SPA (Preact + daisyUI + Tailwind)
├── examples/
│ └── hello/ # minimal example app
├── docs/ # mkdocs-material documentation source
└── tests/ # pytest unit and functional tests
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file squareberg_hub-0.1.2.tar.gz.
File metadata
- Download URL: squareberg_hub-0.1.2.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
511df4be9f2a68fa448bf5c65c2ac7b589212bdbca7fdaa49754c14c546bfaa3
|
|
| MD5 |
1013ce8ff329280a2b694972808da2dc
|
|
| BLAKE2b-256 |
dee069a5f7f85d665db8c0e1ab9dfae7fa5c5eeec1763996295b296595fbd23b
|
Provenance
The following attestation bundles were made for squareberg_hub-0.1.2.tar.gz:
Publisher:
python-publish.yml on squareberg/squareberg-hub
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
squareberg_hub-0.1.2.tar.gz -
Subject digest:
511df4be9f2a68fa448bf5c65c2ac7b589212bdbca7fdaa49754c14c546bfaa3 - Sigstore transparency entry: 1270524894
- Sigstore integration time:
-
Permalink:
squareberg/squareberg-hub@d55559b35e659c9fc307ab3299965b9ee52dc117 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/squareberg
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d55559b35e659c9fc307ab3299965b9ee52dc117 -
Trigger Event:
release
-
Statement type:
File details
Details for the file squareberg_hub-0.1.2-py3-none-any.whl.
File metadata
- Download URL: squareberg_hub-0.1.2-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fc43acce7259c035cddeecf6e2fcc41820c24e57770006ffeac79abe69ef947
|
|
| MD5 |
d6102663c33783b8b3c5e3f08fd69b97
|
|
| BLAKE2b-256 |
5eed17a88f2f77ac718e4793ad8fe3aa0c7cc9d23391446a233f2e7421abe01b
|
Provenance
The following attestation bundles were made for squareberg_hub-0.1.2-py3-none-any.whl:
Publisher:
python-publish.yml on squareberg/squareberg-hub
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
squareberg_hub-0.1.2-py3-none-any.whl -
Subject digest:
3fc43acce7259c035cddeecf6e2fcc41820c24e57770006ffeac79abe69ef947 - Sigstore transparency entry: 1270524897
- Sigstore integration time:
-
Permalink:
squareberg/squareberg-hub@d55559b35e659c9fc307ab3299965b9ee52dc117 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/squareberg
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d55559b35e659c9fc307ab3299965b9ee52dc117 -
Trigger Event:
release
-
Statement type: