@enc-protocol/app-store
App store for Android APKs and Chrome extensions on Cloudflare Workers. Ed25519 auth — only you can publish.
Live: https://app-store.ocrybit.workers.dev
Install
npm install @enc-protocol/app-store --registry https://npm-registry.ocrybit.workers.devCLI
# Publish an APK
npx enc-app-store publish ./app.apk \
--id com.enc.myapp --name "My App" --version 1.0.0 \
--author enc-protocol --description "An awesome app"
# Publish a Chrome extension
npx enc-app-store publish ./extension.zip \
--id com.enc.myext --name "My Extension" --version 1.0.0 \
--platform chrome
# List all apps
npx enc-app-store list
# Remove an app
npx enc-app-store unpublish com.enc.myapp
# Remove a specific version
npx enc-app-store unpublish com.enc.myapp --version 1.0.0Platform is auto-detected from file extension (.apk → android, .zip/.crx → chrome).
Auth key defaults to keys/org.key — use --key <path> to override.
SDK
import { publish, signToken, listApps, getApp, unpublish } from '@enc-protocol/app-store'
const token = await signToken(privateKeyHex)
await publish('./app.apk', token, {
id: 'com.enc.myapp',
name: 'My App',
version: '1.0.0',
})
const apps = await listApps()Server Setup
npm run keygen # generate Ed25519 keypair
npm run dev # start on http://localhost:8788Add the generated public key to .dev.vars:
ORG_PUBLIC_KEY=<hex from keygen output>API
| Method | Path | Auth | Description |
|---|---|---|---|
GET | / | Web UI home (grouped by platform) | |
GET | /app/:id | App detail page | |
GET | /search?q= | Search apps | |
GET | /api/apps | List all apps (JSON) | |
GET | /api/apps/:id | App metadata | |
GET | /api/apps/:id/versions/:version | Version metadata | |
GET | /api/apps/:id/download | Download latest binary | |
GET | /api/apps/:id/download/:version | Download specific version | |
PUT | /api/apps | Yes | Publish app |
DELETE | /api/apps/:id | Yes | Remove app |
DELETE | /api/apps/:id/versions/:version | Yes | Remove version |
Storage
- KV (
META): app metadata (JSON listings) - R2 (
APKS): binary files — APKs and extension ZIPs (no size limit)