source for getorbyt.com getorbyt.com/
client bsky orbytapp app orbyt bluesky getorbyt orbytvideo atproto video
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update AltStore setup documentation and scripts; improve manifest URL handling and deployment instructions

+93 -13
+11 -6
README.md
··· 45 45 46 46 ## Deployment 47 47 48 - - **Platform:** Cloudflare Pages (Astro adapter) 49 - - **Config:** [wrangler.jsonc](wrangler.jsonc) — assets binding, ORBYT_API service 50 - - **Site:** getorbyt.com (CNAME) 51 - - **AltStore ADP:** host in Cloudflare R2, not `public/`, because IPA files exceed Workers asset limits 48 + - **Runtime:** Cloudflare Worker deployed with `wrangler deploy` on route `getorbyt.com/*` 49 + - **Pages Project:** `orbyt-site.pages.dev` exists for Pages deployments/management, but production traffic is served by the Worker route 50 + - **Config:** [wrangler.jsonc](wrangler.jsonc) — assets binding, ORBYT_API service, R2 bucket binding 51 + - **Deploy Command:** `npm run build && npx wrangler deploy` 52 + - **AltStore ADP:** hosted in Cloudflare R2; only `public/altstore/source.json` and `public/altstore/orbyt-icon.png` stay in site assets 53 + - **AltStore Runbook:** see [docs/ALTSTORE_FINISH_SETUP.md](docs/ALTSTORE_FINISH_SETUP.md) → "Quick Release Checklist" 52 54 53 55 ## Project Structure 54 56 ··· 67 69 │ ├── orbyt-api.ts # Color API binding 68 70 │ └── richtext.ts # Mention/link parsing 69 71 ├── public/ # Static assets, CSS, favicon 72 + │ └── altstore/ # Source metadata + icon (no ADP payload) 73 + ├── .altstore/adp/ # Local ADP staging before R2 upload 74 + ├── scripts/altstore-r2.sh # R2 setup/upload helper 70 75 ├── astro.config.mjs 71 76 └── wrangler.jsonc 72 77 ``` 73 78 74 79 ## Build Requirements 75 80 76 - - Node.js 18+ 81 + - Node.js 22.12+ 77 82 - `npm install` then `npm run build` 78 83 - `npm run dev` for local dev (ORBYT_API binding optional) 79 84 80 85 ## Dependencies 81 86 82 - - **Astro** 5.x — SSG/SSR 87 + - **Astro** 6.x — SSG/SSR 83 88 - **@astrojs/cloudflare** — adapter, image service, platform proxy 84 89 85 90 ## Clone & Run
+54 -3
docs/ALTSTORE_FINISH_SETUP.md
··· 6 6 7 7 **Cloudflare note:** Do not deploy the ADP folder from `public/`. The IPA files are larger than Cloudflare Workers static asset limits. Use R2 for the ADP payload and keep only `source.json` and the icon on the website. 8 8 9 + **Routing note:** `getorbyt.com/*` is served by the Cloudflare Worker route configured in `wrangler.jsonc`, so deploy production with `wrangler deploy`. 10 + 9 11 --- 10 12 11 13 ## Step 0: Enable R2 in Cloudflare ··· 87 89 This script will: 88 90 89 91 1. create the R2 bucket if needed 90 - 2. enable the public `r2.dev` URL 92 + 2. enable the public `r2.dev` URL (fallback) 91 93 3. upload `manifest.json`, `signature`, and `variant/*.ipa` 92 - 4. update `public/altstore/source.json` so `downloadURL` points to the hosted `manifest.json` 94 + 4. update `public/altstore/source.json` so `downloadURL` points to `https://downloads.getorbyt.com/manifest.json` when available, otherwise it falls back to `r2.dev` 93 95 94 96 If you want to use a different bucket name, replace `orbyt-altstore-adp` with your preferred name. 97 + 98 + If you want a different manifest host, set `ALTSTORE_CUSTOM_MANIFEST_URL` before running setup. 95 99 96 100 --- 97 101 ··· 108 112 109 113 ## Step 6: Deploy and verify the source JSON 110 114 111 - 1. Deploy `orbyt-site`. 115 + 1. Build and deploy the Worker route: 116 + 117 + ```bash 118 + cd orbyt-site 119 + npm run build 120 + npx wrangler deploy 121 + ``` 122 + 123 + If you also deploy via Pages, note that Pages deploys alone do not update the `getorbyt.com/*` Worker route. 112 124 113 125 2. Verify the site source URL: 114 126 ··· 127 139 -d '{"source": "https://getorbyt.com/altstore/source.json"}' \ 128 140 https://api.altstore.io/federate 129 141 ``` 142 + 143 + If AltStore returns a "pending approval" error, wait for approval and retry the same command. 130 144 131 145 --- 132 146 ··· 144 158 | 7 | Federate via the API | 145 159 146 160 After this, EU and Japan users can add `https://getorbyt.com/altstore/source.json` in AltStore PAL and install Orbyt. 161 + 162 + --- 163 + 164 + ## Quick Release Checklist 165 + 166 + Run from the parent folder containing both `orbyt-app` and `orbyt-site`. 167 + 168 + ```bash 169 + # 1) Download fresh ADP from App Store Connect package ID 170 + cd orbyt-app 171 + ./scripts/altstore-pal.sh download 4792c770-f63a-47d2-bd86-bb7254e8f9bf 172 + 173 + # 2) Extract ADP 174 + unzip orbyt-adp-4792c770-f63a-47d2-bd86-bb7254e8f9bf.zip -d adp-extracted 175 + 176 + # 3) Stage ADP in orbyt-site (outside public) 177 + cd ../orbyt-site 178 + mkdir -p .altstore 179 + rm -rf .altstore/adp 180 + mv ../orbyt-app/adp-extracted .altstore/adp 181 + 182 + # 4) Upload ADP to R2 and update public/altstore/source.json downloadURL 183 + npm run altstore:r2 -- setup orbyt-altstore-adp 184 + 185 + # 5) Deploy production route (getorbyt.com/*) 186 + npm run build 187 + npx wrangler deploy 188 + 189 + # 6) Verify live URLs 190 + curl -sS -o /dev/null -w 'source %{http_code}\n' https://getorbyt.com/altstore/source.json 191 + curl -sS -o /dev/null -w 'manifest %{http_code}\n' https://downloads.getorbyt.com/manifest.json 192 + 193 + # 7) Federate source 194 + curl -X POST -H "Content-Type: application/json" -d '{"source":"https://getorbyt.com/altstore/source.json"}' https://api.altstore.io/federate 195 + ``` 196 + 197 + If federation returns a pending approval error, wait for approval and rerun only step 7.
+5 -1
public/altstore/README.md
··· 1 1 # AltStore PAL assets 2 2 3 3 - `orbyt-icon.png` — App icon (1024×1024), already added 4 - - `source.json` — Hosted from this site 4 + - `source.json` — Hosted from this site at `https://getorbyt.com/altstore/source.json` 5 5 - `.altstore/adp/` — Keep extracted ADP contents here locally, then upload them to R2 6 6 7 + Default manifest host is `https://downloads.getorbyt.com/manifest.json`. 8 + `r2.dev` is used only as fallback when the custom domain is not ready. 9 + 7 10 Do not keep the ADP payload in `public/` when deploying to Cloudflare. The IPA files exceed the Workers static asset limit. 11 + Production traffic on `getorbyt.com/*` is served by the Worker route in `wrangler.jsonc`. 8 12 9 13 See docs/ALTSTORE_FINISH_SETUP.md for full instructions.
+1 -1
public/altstore/source.json
··· 28 28 "buildVersion": "62", 29 29 "date": "2026-03-12", 30 30 "localizedDescription": "Latest release.", 31 - "downloadURL": "https://pub-780ccba5b34c4153bd997701d2e4e68d.r2.dev/manifest.json", 31 + "downloadURL": "https://downloads.getorbyt.com/manifest.json", 32 32 "size": 70307293, 33 33 "minOSVersion": "16.4" 34 34 }
+22 -2
scripts/altstore-r2.sh
··· 5 5 DEFAULT_ADP_DIR="${ALTSTORE_ADP_DIR:-$ROOT_DIR/.altstore/adp}" 6 6 SOURCE_JSON="$ROOT_DIR/public/altstore/source.json" 7 7 DEFAULT_BUCKET_LOCATION="${R2_BUCKET_LOCATION:-weur}" 8 + DEFAULT_CUSTOM_MANIFEST_URL="${ALTSTORE_CUSTOM_MANIFEST_URL:-https://downloads.getorbyt.com/manifest.json}" 8 9 9 10 usage() { 10 11 cat <<'EOF' ··· 24 25 Environment: 25 26 ALTSTORE_ADP_DIR Override the default ADP directory (.altstore/adp) 26 27 R2_BUCKET_LOCATION Override the bucket location hint (default: weur) 28 + ALTSTORE_CUSTOM_MANIFEST_URL 29 + Preferred manifest URL after upload. Defaults to 30 + https://downloads.getorbyt.com/manifest.json. 27 31 EOF 28 32 } 29 33 ··· 157 161 curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' "$url" 158 162 } 159 163 164 + pick_manifest_url() { 165 + local dev_url="$1" 166 + local custom_status 167 + 168 + custom_status="$(curl -sS -o /dev/null -w '%{http_code}' "$DEFAULT_CUSTOM_MANIFEST_URL" || true)" 169 + 170 + if [[ "$custom_status" == "200" ]]; then 171 + printf '%s' "$DEFAULT_CUSTOM_MANIFEST_URL" 172 + return 173 + fi 174 + 175 + printf '%s' "$dev_url/manifest.json" 176 + } 177 + 160 178 setup_bucket() { 161 179 local bucket="$1" 162 180 local adp_dir="${2:-$DEFAULT_ADP_DIR}" 163 181 local dev_url 182 + local manifest_url 164 183 165 184 ensure_prereqs 166 185 ensure_adp_dir "$adp_dir" ··· 171 190 dev_url="$(get_dev_url "$bucket")" 172 191 [[ -n "$dev_url" ]] || fail "Unable to determine r2.dev URL for bucket '$bucket'" 173 192 174 - set_source_url "$dev_url/manifest.json" 193 + manifest_url="$(pick_manifest_url "$dev_url")" 194 + set_source_url "$manifest_url" 175 195 176 196 echo 177 197 echo "R2 setup complete." 178 - echo "Manifest URL: $dev_url/manifest.json" 198 + echo "Manifest URL: $manifest_url" 179 199 echo "Next: deploy the site so https://getorbyt.com/altstore/source.json serves the updated metadata." 180 200 } 181 201