Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Polls the BicikeLJ GBFS feed every 5 minutes and appends per-station availability
to Azure Blob Storage (step 1), and rebuilds "typical availability" profiles once a
day from that history (step 2, see docs/superpowers/specs/2026-09-23-typical-availability-design.md).
• backend/ — Python package, tests and Dockerfile for the container jobs.
• frontend/ — static Mapbox web app (Vite + React + TS) that shows the typical profiles; deployed to GitHub Pages.
Commands below run from the repo root.
• infra/ — Bicep for all Azure resources (shared).
• docs/ — specs and plans.檢視完整 README ↗Polls the BicikeLJ GBFS feed every 5 minutes and appends per-station availability
to Azure Blob Storage (step 1), and rebuilds "typical availability" profiles once a
day from that history (step 2, see docs/superpowers/specs/2026-09-23-typical-availability-design.md).
backend/ — Python package, tests and Dockerfile for the container jobs.frontend/ — static Mapbox web app (Vite + React + TS) that shows the typical profiles; deployed to GitHub Pages.
Commands below run from the repo root.infra/ — Bicep for all Azure resources (shared).docs/ — specs and plans.pip install -e "./backend[dev]"
# start Azurite for storage tests
docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite \
azurite-blob --blobHost 0.0.0.0
pytest backend -v
export AZURE_STORAGE_CONNECTION_STRING="UseDevelopmentStorage=true"
export BICIKELJ_CONTAINER=bicikelj
python -m bicikelj_log
python -m bicikelj_log.build_typical reads the last 56 local days of status/,
computes 8 profiles (Mon–Sun + holiday, 96 × 15-min slots per station) and publishes
gzipped JSON to the public container:
https://<publicStorageAccount>.blob.core.windows.net/typical/v1/meta.json
https://<publicStorageAccount>.blob.core.windows.net/typical/v1/{mon,tue,wed,thu,fri,sat,sun,holiday}.json
The exact base URL is the publicBaseUrl deployment output. In Azure it runs as
bicikelj-typical-job daily at 01:30 UTC. Trigger it manually after the first deploy:
az containerapp job start -n bicikelj-typical-job -g bicikelj-rg
After the first deploy, wait ~5 minutes before this: new role assignments take time to propagate, and an early 403 (and failure-alert email) is not a bug.
Locally (Azurite) both containers live in the dev account:
export AZURE_STORAGE_CONNECTION_STRING="UseDevelopmentStorage=true"
python -m bicikelj_log.build_typical
It exits 1 and publishes nothing until at least one full local day of data exists.
frontend/ is a static site that reads the published typical/v1/*.json and shows each
station's chance of being empty (bikes) or full (docks) for any weekday and 15-minute
slot. Live at https://bicikelj.jakas.si/. Design:
docs/superpowers/specs/2026-10-01-typical-availability-frontend-design.md.
cd frontend
npm ci
cp .env.example .env.local # then fill in both values
npm run dev # http://localhost:5173/
npm test && npm run typecheck
Before the backend has published anything, use synthetic data:
npm run fake-data
VITE_DATA_BASE_URL=/dev-data/v1/ npm run dev
The frontend workflow tests every PR and deploys main to GitHub Pages. One-time setup:
bicikelj.jakas.si,
with DNS CNAME bicikelj → jakaskerjanc.github.io; then tick Enforce HTTPS.pk.) token with URL restrictions
https://bicikelj.jakas.si/ and http://localhost:5173.MAPBOX_TOKEN = that token; repo variable DATA_BASE_URL = the
publicBaseUrl deployment output (ends in /typical/v1/).Infra is defined in infra/main.bicep and deployed via the deploy GitHub Actions
workflow (workflow_dispatch, manual trigger only — it never runs on push).
main → GitHub Actions builds and pushes the image to ghcr.io.AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_SUBSCRIPTION_ID, ALERT_EMAIL (address to notify on job failures) as
repo secrets.deploy workflow from the Actions tab (Run workflow), passing the
resource group name.az containerapp job start -n bicikelj-log-job -g bicikelj-rg.status/YYYY/MM/DD.jsonl in the storage account.A failed execution of either job (bicikelj-log-job or bicikelj-typical-job) emails
ALERT_EMAIL via an Azure Monitor alert on that job's Executions metric. Each job has
its own alert, but both notify the same action group, so no extra deploy parameters are
needed. The alerts are stateful (auto-resolve), so a sustained outage sends one email
when it fires and one when it resolves, not one per failed run.
Region defaults to francecentral: subscription policy allows only a few EU regions,
and germanywestcentral hits the Container Apps environment quota.
To preview or apply changes locally instead of via CI:
az deployment group create -g bicikelj-rg -f infra/main.bicep -p [email protected]