ClipEngine · Ops Runbook

Account wiring runbook — the by-hand steps only you can do

One page, one source of truth. Everything already wired is marked done; everything that still needs your hands is marked as your step. Nothing here posts, connects, or flips a gate on its own.

State verified 2026-07-15 evening · supersedes older TIKTOK_APP_SETUP.md / DESKTOP-SIGNIN-KIT.md claims where they disagree

Pipeline LIVE 25 channels · watcher running · not paused
Heat-score panel deployed :8191/su · threshold 2.5
YouTube — all 4 channels wired OAuth + dry-run verified on every one · all enabled:false on purpose
TikTok + Instagram creds wired Client Key/Secret + IG compose slots, today
Postiz login FIXED — Prisma pool timeout raised, login→cookie→auth verified end-to-end

⏱️ Where you are — pick up here

Verified 2026-07-15 evening. Read this first, then jump to the numbered section that matches whichever line is your next move.

Fastest path to a first live post

TikTok's official audit path is the slow one. Instagram and YouTube don't wait on anyone else — do those tonight.

  1. Instagram is your best opening-night shot. Convert @bluecollar_solutions to Professional + link a Facebook Page, spin up the Meta developer app, connect it in Postiz — backend compose slots and wire_instagram_creds.sh are already ready and waiting.
  2. YouTube is done — all 4 channels wired, dry-run verified. Clip Radar, Daily Clip Drop, irl.rewind, and Clip Vault (now the understand account) are all through OAuth and confirmed with a dry run. Only profile art and the deliberate enable-flip remain, whenever you want them — see section 4. None of this waited on TikTok/Instagram.
  3. TikTok @Tried.that has two paths, pick based on patience — but both wait on Postiz login being restored first. The sanctioned route: connect via Postiz OAuth, post while forced private (SELF_ONLY), then manually flip the account to public and the video to "Everyone" after. The instant route: skip the pipeline entirely tonight and hand-upload a hero clip in the TikTok app — public immediately, zero ban risk, zero audit dependency.

1 · Postiz — the backbone every posting account routes through

Self-hosted on CT236, already up and healthy. One key unlocks TikTok and Instagram posting both.

postiz.lab.zionboggan.com

login fixed — verified end-to-end
  • Container healthy, TikTok Client Key/Secret wired.

    Done today — Postiz no longer has empty TikTok slots.

  • Login is FIXED — diagnosed and verified end-to-end.

    Root cause was a backend Prisma connection-pool crash, triggered by a container recreate. Fix: raised the pool timeout so the backend binds properly. The full chain — login → session cookie → authenticated API call — now returns 200.

  • Working login: https://postiz.lab.zionboggan.com/auth ONLY.

    Account clipengine-admin@lab.zionboggan.com — password: the short admin password (ask overseer / ADMIN_CREDS.txt), this page never prints it. The password was reset to a shorter one as part of the fix.

  • ⚠️Do NOT use the LAN IP http://192.168.1.236:5000 in a browser.

    That origin isn't CORS-allowed and the session cookie is Secure-only, so plain-http always loops back to login. Always use the HTTPS domain above, never the bare IP.

  • 👉Now that you're logged in: Settings → generate the public API key, then Add Channel → TikTok.

    Generating the key creates apikey.txt, which still does not exist yet — nothing posts without this file, it's the credential boundary every post script stops at. Then Add Channel → TikTok and authorize as @Tried.that — this unblocks the TikTok connect.

2 · TikTok — @Tried.that

Direct Post through Postiz, forced SELF_ONLY until TikTok's audit clears — the account is unaudited, not the setup broken.

Dev portal + account connect

blocked on Postiz login
  • Client Key/Secret wired into Postiz.

    Container is healthy with the real values as of today.

  • 🔄Blocked until Postiz login is restored (see Postiz section above).

    Nothing below can happen until you can generate the Postiz API key.

  • 👉Once unblocked: generate the Postiz API key, then verify the dev-portal app.

    developers.tiktok.com — confirm the app, then add @Tried.that as a sandbox target user: log in as @Tried.that and accept the Developer ToS prompt.

  • 👉Postiz → Add Channel → TikTok, OAuth as @Tried.that.

    Do this from the White PC, in the same Chrome profile you already signed @Tried.that into.

  • 👉Understand the unaudited reality before posting.

    The app can only Direct Post SELF_ONLY (private) until TikTok's review clears. @Tried.that itself must be a private account at the moment of posting. Afterward, you manually flip the account to public and that video's visibility to "Everyone" — this is TikTok's own sanctioned workaround, not a workaround of TikTok's rules.

  • 👉Fastest opening-night alternative: skip the pipeline, hand-upload.

    Post a hero clip straight from the TikTok app on your phone. Instantly public, zero audit dependency, zero ban risk.

  • 👉Only after all of the above: flip enabled:false → true.

    A separate, deliberate action in publish/config.json — never bundled with the OAuth connect.

3 · Instagram — @bluecollar_solutions

Can run in parallel with TikTok right now — doesn't wait on anything above.

Meta app + Postiz connect

backend + your steps
  • 👉Sign in, convert to Professional, link a Facebook Page.

    instagram.com → Settings → Account type, done from the account itself.

  • 👉Create a Meta developer app.

    Get an App ID/Secret with instagram_content_publishing + Pages permissions — this is your Facebook identity, no one else can do it for you.

  • Backend ready: FB/IG Postiz compose slots added, wire_instagram_creds.sh ready to run.

    No longer in progress — this is done and waiting on your App ID/Secret to hand to the overseer.

  • 👉Hand your App ID/Secret to the overseer to wire, then Postiz → Add Channel → Instagram, OAuth connect.

    Once your App ID/Secret is in place, everything else runs the same night — Postiz login being down doesn't block your account-side steps (Professional conversion, Page link, Meta app) at all.

  • 👉Flip enabled:false → true when ready.

    Instagram's Graph API has no private/draft mode — a real publish is public immediately. The only safety net is the dry-run default, the enabled:false gate, and the Postiz API-key boundary. There is no visibility knob to hide behind, which is exactly why this flip is deliberate.

4 · YouTube — ✅ all 4 channels wired, dry-run verified

Each channel gets its own GCP project so its 10,000-unit daily quota never competes with the others. Same 7-step pattern every time, run independently on each — all four are through it now. Only profile art and the deliberate per-channel enable-flip remain.

Per-channel OAuth grant

4/4 wired · dry-run verified · 1 parked
  • ℹ️The pattern that was run on all four: new GCP project → enable YouTube Data API v3 → OAuth consent screen (External, add yourself as test user, keep it in Testing) → Desktop OAuth client → download the client-secrets JSON → run the one-time OAuth grant → record client_secrets_path/token_path in config.json → dry-run yt_post.py → (whenever ready) flip that channel's enabled → true. All four below are wired and dry-run verified; none has been flipped to enabled:true yet — that's deliberate.

Clip Radar ("Yaya Boggan")

yt_yaya_boggan

Google account zionboggan@gmail.com. ✅ Wired: OAuth granted, token on the 3060, config.json wired both copies, dry-run verified. enabled:false is deliberate — flip + decorate whenever ready.

Daily Clip Drop ("Zion Boggan")

yt_zion_boggan

Google account zionboggan0@gmail.com. ✅ Wired: OAuth grant complete via grant_dailyclip.bat, config.json wired, dry-run verified. enabled:false deliberate.

irl.rewind Shorts

yt_irlrewind

Google account zccmediaagency@gmail.com. ✅ Wired: OAuth granted, config.json wired, dry-run verified. enabled:false deliberate.

Clip Vault (now the understand account)

yt_euphoria_software

Google account understandihadtodoittoem@gmail.com. ✅ Wired: this is the slot that used to be cut for "Euphoria Software" (no such account existed) — that GCP project and OAuth client were revived and re-pointed to this account instead. Slot name yt_euphoria_software is now permanently Clip Vault + the understand account — don't let the old slot name confuse a future read of this page. OAuth granted, config.json wired, dry-run verified. enabled:false deliberate.

workyaya2018 (parked)

clipengine-workyaya2018

Google account workyaya2018@gmail.com. Granted and token saved earlier, but no channel/slot is assigned — unused, parked until Zion decides where it goes. Not one of the 4 wired channels above.

Device sign-in matrix

Computer first for every platform — Postiz's OAuth connects have to happen there anyway. Then repeat each login inside the platform's own app on iPhone and iPad so the account is warm everywhere.

DeviceAddressRole
White PC (computer)192.168.1.73Primary — all browser sign-ins + every Postiz OAuth connect happens here first
iPhone 15 Pro MaxTailscale 100.116.77.90Native app sign-in per platform (TikTok, Instagram, YouTube) after the computer
iPadTailscale 100.117.158.43Same native app sign-ins; useful second screen for the Postiz connect flow
3060 GPU box192.168.1.74Do not log into any account here — reserved for render/Ollama work

🔒 Safety gates — true regardless of anything above

Design packs — verified against what's actually on disk

Every profile below was re-checked against branding/ just now — file-by-file, not from an old note. The three irl.rewind profiles turned out to be fully populated (an earlier version of this page said their assets were "pending" — that was stale; they're done, with full copy-paste bio/name text in each PROFILE.md). Two packs are honestly orphaned; flagged as such, not hidden.

@Tried.that (IRL Rewind — use this)
branding/irl_rewind/tiktok_triedthat/ — pfp_a.png, pfp_b.png (1024×1024), cover.png (1080×1920), PROFILE.md
Keep handle @tried.that, rename display to "IRL Rewind." Bio: "The best IRL stream moments, on rewind. New clips daily."
@bluecollar_solutions (IRL Rewind — use this)
branding/irl_rewind/ig_bluecollar_solutions/ — pfp_a.png, pfp_b.png (1080×1080), cover.png (1080×1920), PROFILE.md
Hard reset, rename to @irl.rewind. 3-line bio ready in PROFILE.md.
irl.rewind Shorts (IRL Rewind — use this)
branding/irl_rewind/yt_irlrewind/ — pfp_a.png, pfp_b.png, banner.png (800×800 / 2560×1440), PROFILE.md
Handle @irlrewind (unverified). Assets ready, and the channel (yt_irlrewind) is now wired and dry-run verified too — apply anytime.
Clip Radar
branding/yt_yaya_boggan/ — pfp_option_a.png, pfp_option_b.png (800×800), banner.png (2560×1440)
Amber/gold monogram system, full set present. Apply anytime — doesn't block the enable-flip.
Daily Clip Drop
branding/yt_zion_boggan/ — pfp_option_a.png, pfp_option_b.png (800×800), banner.png (2560×1440)
Crimson/red monogram system, full set present.
Clip Vault (now the understand account)
branding/yt_euphoria_software/ — pfp_option_a.png, pfp_option_b.png, banner.png, emerald/mint monogram system, full set present.
Not orphaned: this slot was originally cut for "Euphoria Software" (no such account existed), then revived and re-pointed to understandihadtodoittoem@gmail.com — same emerald/mint Clip Vault brand, same yt_euphoria_software slot name, now live and wired. Apply anytime — doesn't block the enable-flip.
tiktok_acct1 "Clutch Clips Daily"
branding/tiktok_acct1/ — pfp_option_a.png, pfp_option_b.png only. Legacy draft, not mapped to any current active profile (was proposed for @bestbluecollarsolutions before the irl.rewind pivot).
tiktok_acct2 "Chat Went Feral"
branding/tiktok_acct2/ — pfp_option_a.png, pfp_option_b.png only. Superseded — this was the earlier draft for @Tried.that before "IRL Rewind" won; use the tiktok_triedthat pack above instead.
Design source: route1/2/3
branding/bluecollar_solutions/route1/ (banner + pfp_a + pfp_b) is the winning seed art, QA 9/9 SHIP — it's what all three IRL Rewind packs above were resized from.
route2/ and route3/ are alternate design routes with the same 3 files each — present on disk, not currently used.
workyaya2018 (parked)
No branding directory exists for this account yet — nothing to inventory. Token is granted and saved but no channel/slot is assigned, so no design work has started.