- Fastify API・Node Worker・PostgreSQL・S3互換ストレージ構成
- ADP ZIPのマルチパートアップロードとManifest検証(パストラバーサル・ZIP爆弾等を拒否)
- manifest.json/signatureは再シリアライズせず元バイト列を保持
- Cloudflare風の運用向け管理ダッシュボード(shadcn/Radix・日本語UI・4ルート)
概要/Sources/アプリ/リリース + ルートランディングページ
- 汎用OIDC SSO・Workspace単位の認可・demo mode
- 匿名配布: /sources/{slug}/source.json, /artifacts/{releaseId}/manifest.json
- Docker Compose対応
1.5 KiB
AltDock
AltDock is a self-hostable, multi-tenant hosting service for AltStore PAL Alternative Distribution Packages (ADPs). Upload the original ADP ZIP, validate its manifest and asset set, then publish a PAL-compatible Source JSON URL.
Run locally without Docker
npm install
cp .env.example .env
npm run dev:api
With no DATABASE_URL, the API uses an in-memory store and local files under
.data/storage. Open the web app in another terminal:
npm run dev
The dashboard is at http://localhost:3000 and the API is at
http://localhost:4000.
Run the full stack
docker compose up
This starts PostgreSQL, MinIO, the API, the ADP worker, and the web app. The
MinIO console is available at http://localhost:9001 with the credentials in
docker-compose.yml.
Production identity
Set AUTH_MODE=oidc and configure OIDC_ISSUER_URL, OIDC_CLIENT_ID,
OIDC_CLIENT_SECRET, OIDC_REDIRECT_URI, and a random SESSION_SECRET. The
demo mode is intentionally enabled by default for local development only.
ADP workflow
- Submit the app for Notarization and download the completed ADP ZIP.
- Upload the original ZIP to AltDock; do not prettify or rewrite its files.
- Review the parsed bundle ID, Apple Item ID, version, build, and asset paths.
- Publish the release and copy the Source URL into AltStore PAL.
Published artifacts are served at /artifacts/{releaseId}/{relativePath} and
the Source JSON is served at /sources/{slug}/source.json.
Checks
npm run lint
npm test