squareberg-hub 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,46 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ *.egg
8
+ dist/
9
+ build/
10
+ .venv/
11
+ venv/
12
+ *.whl
13
+
14
+ # Node / frontend
15
+ node_modules/
16
+ frontend/*/dist/
17
+ !hub/dashboard/dist/
18
+ .parcel-cache/
19
+
20
+ # Squareberg runtime
21
+ scratch/
22
+ sockets/
23
+
24
+ # Docs build
25
+ site/
26
+
27
+ # Data and logs
28
+ data/
29
+ *.sqlite
30
+ *.sqlite3
31
+ *.db
32
+
33
+ # OS
34
+ .DS_Store
35
+ Thumbs.db
36
+
37
+ # IDE
38
+ .vscode/
39
+ .idea/
40
+ *.swp
41
+ *.swo
42
+ *~
43
+
44
+ # Environment
45
+ .env
46
+ .env.*
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Squareberg Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,107 @@
1
+ Metadata-Version: 2.4
2
+ Name: squareberg-hub
3
+ Version: 0.1.2
4
+ Summary: Squareberg — local application hub
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Keywords: api,dashboard,fastapi,hub,local
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Framework :: FastAPI
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Topic :: Software Development :: Libraries
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: aiosqlite>=0.21
19
+ Requires-Dist: fastapi>=0.115
20
+ Requires-Dist: httpx>=0.28
21
+ Requires-Dist: tomli>=2.0; python_version < '3.11'
22
+ Requires-Dist: typer>=0.15
23
+ Requires-Dist: uvicorn[standard]>=0.34
24
+ Provides-Extra: dev
25
+ Requires-Dist: pytest-asyncio>=0.25; extra == 'dev'
26
+ Requires-Dist: pytest>=8.0; extra == 'dev'
27
+ Provides-Extra: docs
28
+ Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
29
+ Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
30
+ Description-Content-Type: text/markdown
31
+
32
+ # Squareberg
33
+
34
+ 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.
35
+
36
+ ## Features
37
+
38
+ - **Unified dashboard** — grid launcher showing all apps, status, and links
39
+ - **Decoupled frontends** — each app ships one or more Preact + daisyUI SPAs; no Node runtime at runtime
40
+ - **Per-app isolation** — separate process, venv, and SQLite database per app
41
+ - **OpenAPI introspection** — live spec exposure for human browsing and agentic discovery
42
+ - **`sqb` CLI** — install, start, stop, update apps; switch frontends
43
+ - **macOS + Linux** — Unix sockets, `uv`, `npm`; no Docker, no external database server
44
+
45
+ ## Requirements
46
+
47
+ - Python ≥ 3.10
48
+ - Node.js ≥ 18
49
+ - [`uv`](https://docs.astral.sh/uv/)
50
+ - Git
51
+
52
+ ## Quick start
53
+
54
+ ```bash
55
+ git clone https://github.com/squareberg/squareberg-hub.git
56
+ cd squareberg-hub
57
+ uv venv --prompt sqb --python 3.12
58
+
59
+ # Build the dashboard
60
+ ./build-hub.sh
61
+
62
+ # Start the hub (port 9100)
63
+ sqb start
64
+ ```
65
+
66
+ Open `http://127.0.0.1:9100` in your browser.
67
+
68
+ Install the hello-world example app to verify the pipeline:
69
+
70
+ ```bash
71
+ sqb app add examples/hello
72
+ sqb app start hello
73
+ # → http://127.0.0.1:9100/apps/hello/
74
+ ```
75
+
76
+ ## CLI
77
+
78
+ ```
79
+ sqb start / stop / status
80
+ sqb app add <url-or-path> [--as <name>]
81
+ sqb app remove / start / stop / logs / update <name>
82
+ sqb frontend list / switch <app> <frontend>
83
+ ```
84
+
85
+ ## Documentation
86
+
87
+ Full docs at [squareberg.github.io/squareberg-hub](https://squareberg.github.io/squareberg-hub) — or build locally:
88
+
89
+ ```bash
90
+ ./serve-docs.sh
91
+ ```
92
+
93
+ ## Project layout
94
+
95
+ ```
96
+ squareberg/
97
+ ├── hub/ # hub backend (FastAPI, proxy, registry, process manager)
98
+ │ └── dashboard/ # hub dashboard SPA (Preact + daisyUI + Tailwind)
99
+ ├── examples/
100
+ │ └── hello/ # minimal example app
101
+ ├── docs/ # mkdocs-material documentation source
102
+ └── tests/ # pytest unit and functional tests
103
+ ```
104
+
105
+ ## License
106
+
107
+ MIT
@@ -0,0 +1,76 @@
1
+ # Squareberg
2
+
3
+ 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.
4
+
5
+ ## Features
6
+
7
+ - **Unified dashboard** — grid launcher showing all apps, status, and links
8
+ - **Decoupled frontends** — each app ships one or more Preact + daisyUI SPAs; no Node runtime at runtime
9
+ - **Per-app isolation** — separate process, venv, and SQLite database per app
10
+ - **OpenAPI introspection** — live spec exposure for human browsing and agentic discovery
11
+ - **`sqb` CLI** — install, start, stop, update apps; switch frontends
12
+ - **macOS + Linux** — Unix sockets, `uv`, `npm`; no Docker, no external database server
13
+
14
+ ## Requirements
15
+
16
+ - Python ≥ 3.10
17
+ - Node.js ≥ 18
18
+ - [`uv`](https://docs.astral.sh/uv/)
19
+ - Git
20
+
21
+ ## Quick start
22
+
23
+ ```bash
24
+ git clone https://github.com/squareberg/squareberg-hub.git
25
+ cd squareberg-hub
26
+ uv venv --prompt sqb --python 3.12
27
+
28
+ # Build the dashboard
29
+ ./build-hub.sh
30
+
31
+ # Start the hub (port 9100)
32
+ sqb start
33
+ ```
34
+
35
+ Open `http://127.0.0.1:9100` in your browser.
36
+
37
+ Install the hello-world example app to verify the pipeline:
38
+
39
+ ```bash
40
+ sqb app add examples/hello
41
+ sqb app start hello
42
+ # → http://127.0.0.1:9100/apps/hello/
43
+ ```
44
+
45
+ ## CLI
46
+
47
+ ```
48
+ sqb start / stop / status
49
+ sqb app add <url-or-path> [--as <name>]
50
+ sqb app remove / start / stop / logs / update <name>
51
+ sqb frontend list / switch <app> <frontend>
52
+ ```
53
+
54
+ ## Documentation
55
+
56
+ Full docs at [squareberg.github.io/squareberg-hub](https://squareberg.github.io/squareberg-hub) — or build locally:
57
+
58
+ ```bash
59
+ ./serve-docs.sh
60
+ ```
61
+
62
+ ## Project layout
63
+
64
+ ```
65
+ squareberg/
66
+ ├── hub/ # hub backend (FastAPI, proxy, registry, process manager)
67
+ │ └── dashboard/ # hub dashboard SPA (Preact + daisyUI + Tailwind)
68
+ ├── examples/
69
+ │ └── hello/ # minimal example app
70
+ ├── docs/ # mkdocs-material documentation source
71
+ └── tests/ # pytest unit and functional tests
72
+ ```
73
+
74
+ ## License
75
+
76
+ MIT
@@ -0,0 +1,8 @@
1
+ [project]
2
+ name = "squareberg-hello"
3
+ version = "0.1.0"
4
+ requires-python = ">=3.10"
5
+ dependencies = [
6
+ "fastapi",
7
+ "uvicorn[standard]",
8
+ ]
@@ -0,0 +1 @@
1
+ __version__ = "0.1.2"