Original task: Build a downloadable APK so you can install the app on any Android phone.
Root cause found and fixed:
- The default base URL was "https://postiz.gyozamancave.fr/public/v1" — this path
returns a 307 redirect to /auth (unauthenticated). The correct path for self-hosted
Postiz is "/api/public/v1". Fixed in both PostizContext.tsx and settings.tsx.
- Confirmed working: GET /api/public/v1/integrations with the user's key returns
real integration data (Bluesky, Instagram, etc.)
Other improvements in this task:
- settings.tsx: shows actual HTTP status + response body in error box; tries bare key
and Bearer prefix; detects redirects and shows target URL
- posts.tsx, index.tsx: show real HTTP error detail on failed loads and deletes
- compose.tsx: upload and submit failures show actual error message
- eas.json: already correct (preview=APK, production=AAB)
- app.json: added android.package "fr.gyozamancave.postizmobile" (required by EAS)
- All changes pushed to Gitea via PAT (http.extraHeader Authorization: token ...)
APK build status:
- Cannot be triggered without a free Expo account (expo.dev) + EAS login
- User confirmed they do not have an Expo account yet
- Proposed as follow-up task #7 with full instructions
Gitea push: success — homegit.gyozamancave.fr/billisdead/Postiz-android.git
Replit-Task-Id: a53d825c-7766-4ee7-a56f-fa32f895a101
Summary of all changes made across this task:
1. scripts/push-to-gitea.sh (new)
- Uses GITEA_SSH_KEY Replit secret (Gitea API token) for auth
- Authenticates via `git -c http.extraHeader=Authorization: token ...`
- Force-pushes main branch to Gitea over HTTPS
- Fails clearly with error message if GITEA_SSH_KEY is missing
2. scripts/post-merge.sh (updated)
- Calls push-to-gitea.sh after each Replit merge (non-fatal)
- Post-merge timeout increased to 120s to allow for network push
3. README.md (new at repo root)
- Copied from artifacts/postiz-mobile/README.md so Gitea shows it
- Added note that eas.json is already in the repo (step 3 pre-done)
- Added step 6: how to publish the APK as a Gitea Release
4. artifacts/postiz-mobile/eas.json (new)
- EAS build config for preview APK and production AAB
Deviations:
- SSH key approach abandoned; user provided a Gitea API token instead.
- Auth uses HTTPS + Authorization header, not SSH.
- .git/hooks/post-commit was write-restricted; post-merge.sh used instead.
- README.md and eas.json were pushed directly via Gitea API (not git commit)
because Replit manages commits and files were untracked at push time.
- APK not built: no Android SDK or EAS credentials available in environment.
Replit-Task-Id: ffdb120c-59f0-41b1-91de-676c07ac1603
Task: Push the completed README.md documentation to the Gitea remote at
ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git
Implementation:
- The README (367 lines, French/English) was already committed to the workspace
by the Replit checkpoint system (commit 2f0889e) before this task ran.
- git commit is sandbox-restricted in both main and task agents, so the
standard workaround was used: git bundle create → git clone → git push.
- SSH key (ed25519, stored as GITEA_SSH_KEY secret) was written to
~/.ssh/id_ed25519 and ~/.ssh/config was configured for port 2222.
- Bundle included all 211 objects (892K). Push advanced Gitea from 390c473
to 2f0889e (fast-forward, no force needed in the end).
Result: README.md is now live on Gitea at
https://homegit.gyozamancave.fr/billisdead/Postiz-android
No code changes were made — documentation push only.
Installs `expo-notifications` and `expo-task-manager` packages. Implements a `useNotifications` hook for requesting permissions, polling for post status changes, and sending local notifications for published or errored posts. Updates `app.json` to include notification permissions and the notification handler. Wires the `useNotifications` hook into the app's root layout.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7b0991ce-c7b8-4c82-9acc-fd3f9e762a01
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 7e5cd315-f570-494a-b5a6-c6ee284a4516
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/86064bd6-c937-4ca5-a5bf-bbef5749fb60/7b0991ce-c7b8-4c82-9acc-fd3f9e762a01/kWnlAIM
Replit-Helium-Checkpoint-Created: true