# 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 ```bash 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: ```bash npm run dev ``` The dashboard is at `http://localhost:3000` and the API is at `http://localhost:4000`. ## Run the full stack ```bash 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 1. Submit the app for Notarization and download the completed ADP ZIP. 2. Upload the original ZIP to AltDock; do not prettify or rewrite its files. 3. Review the parsed bundle ID, Apple Item ID, version, build, and asset paths. 4. 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 ```bash npm run lint npm test ```