Spaces:
Paused
Paused
Commit History
-
fix backup status display, sync loop spin, and PM2 log leakageβ
- postiz-sync.py: cmd_sync/cmd_restore now write status+message fields alongside db_status so dashboard can show BACKUP: SUCCESS/ERROR/RESTORED (previously only db_status was written; dashboard reads status/message) - start.sh: sanitize SYNC_INTERVAL (strip non-digits, clamp β₯60s) to prevent sleep "" failure causing tight infinite sync loop at startup - start.sh: extend PM2 grep filter to drop backslash ASCII art (\\{4,}), PM2 log headers (/root/.pm2/...log last N lines), and > pm2 command echoes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>4a7c78e
-
reduce startup log verbosityβ
start.sh: - Expand grep -Ev filter (fix multi-arg syntax β -e flags): suppress [InstanceLoader], [PM2] infra msgs, Prisma package install, pnpm script echo headers, /root/.pm2/logs/ paths, PM2 ASCII art, blank lines, apps/X pm2: lines - "Postgres ready/Starting Redis/Redis ready" β "β Postgres/β Redis" - "Starting nginx + Postiz PM2 procs" β "Starting Postiz..." - "Waiting for nginx" β "Waiting for Postiz..." postiz-sync.py: - Logger format: "YYYY-MM-DD HH:MM:SS - INFO - msg" β "[sync] msg" - Demote "Database dumped" + "Tarball created" to DEBUG (not shown) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>2272bb9 -
add Google Login guide; rename YOUTUBE_* β GOOGLE_* varsβ
- Add Google Login platform to setup guide (id: google) with OAuth consent screen + callback URL steps - YouTube guide: step 1 says "already have Google Login? skip to step 2" β same GOOGLE_CLIENT_ID/SECRET, just enable YouTube Data API v3 - start.sh: map GOOGLE_CLIENT_ID/SECRET β YOUTUBE_CLIENT_ID/SECRET so Postiz picks them up (it reads YOUTUBE_* internally) - getSocialPlatforms(): add Google Login entry, update YouTube ready-check to use GOOGLE_CLIENT_ID || YOUTUBE_CLIENT_ID - Channel connections persist across restarts via postgres dump in postiz-sync.py (no change needed β already covered) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>72628ff
-
Fix: Move Cloudflare keepalive setup before health-server to avoid race conditionβ
The health-server was starting before the keepalive setup script finished writing the status file. This caused a race condition where users would see "Worker pending or failed" until the setup completed. Now the setup runs before health-server starts, ensuring the status file exists before any requests are served.b46eebe
-
refactor: replace UptimeRobot with Cloudflare Workers for service keep-alive mechanism
5d2b465 -
fix: adjust OAuth callback paths, force /app root redirect, and increase logging verbosity for sync processes
3d8fd70 -
chore: update X OAuth instructions, increase default SYNC_INTERVAL, and adjust app navigation paths
2869840 -
refactor: implement two-pass backup creation to automatically exclude frontend cache if tarball exceeds size limits
264b68d -
fix: patch google font β local at runtime to survive cached Stage 1β
Stage 1 Docker image may be cached from before the font patch was added. Apply the patch in start.sh at container start (idempotent grep check) so the cached image is fixed without requiring a full Stage 1 rebuild. - Dockerfile Stage 2: COPY vendor fonts + patch script to /opt/vendor/ - start.sh: patch layout.tsx files before next build if still on google font Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>fd4cae0 -
update
bb56821
-
feat: vendor Plus Jakarta Sans fonts and patch layouts to resolve build-time network constraints, update health-server proxy logic, and correct UptimeRobot interval units.
6c0455b -
fix: set FRONTEND_URL to bare origin so CORS allow-origin matches browserβ
FRONTEND_URL was set to PUBLIC_URL/app (with basePath suffix). Postiz backend uses FRONTEND_URL as the CORS allowed-origin. Browsers send Origin: https://host (scheme+host only, no path per the HTTP spec), so the /app suffix caused every pre-flight and credentialed request to be blocked β making login and signup silently fail. Fix: FRONTEND_URL = PUBLIC_URL (no /app). Email links generated by Postiz (e.g. ${FRONTEND_URL}/auth/login) still work because health-server now redirects any bare /auth/* path to /app/auth/*. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>ff3303a
-
Fix ERR_TOO_MANY_REDIRECTS: add trailingSlash:true + config-hash rebuild guardβ
Root cause: nginx proxy_pass adds trailing slash (β /app/), Next.js with basePath="/app" and trailingSlash:false (default) redirects /app/ β /app, which loops forever through the same nginx path. Fix 1 (Dockerfile): add `trailingSlash: true` to next.config.js patch so /app/ becomes the canonical form β nginx always sends it, Next.js serves directly with no redirect. Fix 2 (start.sh): hash next.config.js at startup and compare against .next/.config-hash written after each frontend build. If the hash differs (new image with patched config) the frontend is rebuilt even when .next is restored from the HF Dataset backup. Without this, the old .next built with trailingSlash:false would be reused after the next restore. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>c63d0d1 -
fix: write pg.log to /tmp β /postiz is root-owned, postgres user deniedβ
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>2aa8665 -
fix: move next build to container startup β HF builder cgroup too smallβ
next build for Postiz needs ~4 GB RSS. The HF Space builder has a ~4 GB cgroup limit, making it impossible to complete in docker build regardless of heap tuning, single-thread flags, or multi-stage tricks (exit 137). Solution: don't run next build in the Dockerfile at all. Run it in start.sh at container startup where the runtime has 16 GB RAM. Bonuses over the docker-build approach: - NEXT_PUBLIC_BACKEND_URL is baked with the real SPACE_HOST URL (correct) instead of localhost (broken) because we now know it at build time - First boot ~5-8 min; all subsequent boots restore .next from HF Dataset backup and skip the build entirely Changes: - Dockerfile: remove all frontend build steps; back to clean 2-stage; HEALTHCHECK start-period raised to 600s for first-boot window - start.sh: build frontend at startup if .next/BUILD_ID absent; 8 GB heap (runtime has 16 GB); shows progress in logs - postiz-sync.py: include .next (minus webpack cache) in backup tarball; restore on boot soβ¦866a8e6 -
initialize project
b4d7c1c