Space links now go to <space>.<app-domain> (e.g., myspace.rfunds.online)
instead of rspace.online/<space>. Domain derived from window.location
when not explicitly provided.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace inline nav/Navbar with shared Header component
- Header pattern: AppSwitcher dropdown / SpaceSwitcher / actions / Sign In
- SpaceSwitcher and UserMenu work without SDK dependency
- Consistent across all r*Apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three new Infisical-wired compose files (one per Postiz space) plus
a single migrate-to-infisical.sh script that handles the full
switchover: extract existing POSTGRES_PASSWORD, backup old files,
install new compose, create minimal .env, restart, verify health.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wallet-connected provisioning wizard at /provision with SIWE auth,
subdomain picker, and multi-step deploy flow. Dashboard at /dashboard
shows instance list with status and management controls. Adds wagmi +
viem + react-query for wallet integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Self-service API for provisioning Postiz instances at <slug>.rsocials.online.
- Hono server on port 3001 with API key auth
- SQLite instance registry with provision logging
- Template engine (TypeScript port of generate.sh)
- Docker compose deployer with health checks
- Sablier config auto-management (add/remove routing)
- Cloudflare tunnel hostname auto-management
- Resource monitor (/proc/meminfo, max 12 instances)
- Secret generation (JWT + Postgres password)
Routes: POST/GET/DELETE /v1/spaces, GET /health
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Template uses entrypoint-wrapper.sh to inject secrets at container start
- Only INFISICAL_* credentials + POSTGRES_PASSWORD in .env (3 values)
- All other secrets (JWT, EMAIL_PASS, OAuth, social API keys) from Infisical
- Generator produces minimal .env templates per space
- Added infisical_slug to spaces.yml for each Postiz project
- Added missing EMAIL_PASS + POSTGRES_PASSWORD to Infisical projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds the unified rStack app switcher with pastel badges, emoji icons,
and categorized navigation across all 17 rStack apps.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add entrypoint.sh that authenticates with Infisical Machine Identity
and injects secrets as env vars before starting the Node.js app.
Replaces individual secret env vars in docker-compose.yml with
Infisical client credentials. Falls back gracefully if Infisical
is unavailable.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Infisical's SMTP client has its own TLS validation separate from
NODE_TLS_REJECT_UNAUTHORIZED. Mailcow uses a self-signed cert
which caused signup to fail with "self-signed certificate" error.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Single spaces.yml defines all community Postiz instances. generate.sh
reads it and produces per-space docker-compose files with correct
Traefik labels, redirect middleware, and networking. Infisical
deployment config added for secrets.jeffemmett.com.
Adding a new space is now a single block in spaces.yml + ./generate.sh.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Port mycro-zine (zine.mycofi.earth) to rsocials.online/zine as a community
content generation tool. Full 8-page zine creation pipeline with Gemini AI
for outlines and image generation, Sharp for print layout composition.
- 7 API routes under /api/zine/ (outline, generate-page, regenerate-page,
print-layout, save, generate-image, [id])
- 4-step creation wizard: topic → outline → page generation → print layout
- 5 visual styles, 4 tones, voice input, page refinement
- 300 DPI print-ready output (3300x2550px)
- Shareable zine viewer at /zine/z/[id] with OG metadata
- Docker: added zine-data volume, Sharp deps, env vars for API keys
- Also includes pre-existing Postiz URL updates (crypto-commons.org)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>