8.1 KiB
Date, Author, Tags, Project
| Date | Author | Tags | Project | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-07-13 | Hermes Agent |
|
Reyna Family Site |
Instatic Reyna Family Site — Build Log
Overview
Self-hosted Instatic CMS (CoreBunch/Instatic v0.0.11 MIT, Bun + TypeScript, SQLite) vision: visual editor + content engine + publisher in one Bun server, outputs clean semantic HTML/CSS no framework runtime. 3,272 stars.
User asked "check this out" barebrowse repo, then "Let's take a look into instatic for building websites" → deployed on FamReynaServer .110 Docker with MCP enabled for Hermes building sites from chat.
Deployment — FamReynaServer .110
- Host: 192.168.68.110, 7.6Gi RAM, Docker 29.5
- Location:
~/instatic/compose.prod.yml + compose.sqlite.yml from github raw main - Container:
instatic-prod-app-1Bun:latest, SQLite/app/data/cms.dbWAL mode - Pitfall: No
sqlite3binary in image —sh: 1: sqlite3: not found— must query viabun -e "const {Database}=require('bun:sqlite'); ..." - Table
sitesingular, notsites—no such table: sites - Admin: http://192.168.68.110:3002/admin
- Created owner via BareBrowse: reynafamilybot@gmail.com / reyna2026!Instatic on 2026-07-13T14:03:37Z
- Bug: Onboarding left name
My SiteReyna Family(typed without select-all, appended) — fixed viaUPDATE site SET name='Reyna Family'via bun:sqlite
- Public
/404 before first publish, 200 after publish 2979 bytes, CSS hashed reset-a9a4... + style-b4e0ba... - MCP endpoint:
http://192.168.68.110:3002/_instatic/mcpStreamableHTTP Bearer token
MCP Connector — Automated via BareBrowse on iMac .124
Token: imcp_Qg8lYALr3miPVO2ruPy23RnMdWNAstH9SdfggYL6hQQ
- Label hermes, Local type, 20 caps (all), Expires 10/11/2026
- Stored:
~/.config/instatic-mcp-token0600 +~/.hermes/mcp-servers.d/instatic.jsonwithnpx mcp-remote --allow-http --header Authorization: Bearer ...—--allow-httpREQUIRED for LAN IP else Non-HTTPS error - Creation flow (proven):
ssh imac cd /tmp/bbtest nodeBareBrowse headlessconnect({mode:'headless'})- Login
/admintextbox Email [ref 21] Password [24] Sign In [17] goto /admin/ai+ MCP tab [73] + Add connector [59]- Label [96] type
hermes - Select all trap: Read caps pre-checked, Select all button inverted — clicking when N/N clears to 0. 12 buttons found, clicking all twice empties. Solution: JS bulk check:
=> checked 14 of 19 or 19/19
(() => { const cbs = Array.from(document.querySelectorAll('input[type=checkbox]')); let c=0; cbs.forEach(cb=>{ if(!cb.checked){ cb.click(); c++; }}); return 'checked '+c+'/'+cbs.length; })() - Create connector [71] → stacked Confirm your password dialog PASSWORD [74]
- Confirm button starts disabled, enables after typing password
reyna2026!Instatic— click via JSArray.from(document.querySelectorAll('button')).find(b=>/Confirm/i.test(b.textContent)).click() - Token dialog
Connector createdwith<code>imcp_Qg8...</code>— extract viadocument.body.innerHTML.match(/imcp_[A-Za-z0-9_-]+/)shown once only.
Verification: curl POST /_instatic/mcp initialize → protocolVersion + mcp-remote proxy logs Connected to remote server using StreamableHTTPClientTransport + Proxy established
Site Building — First Landing Published 2026-07-13
Docs: 1 page Home id u2st08YmkY51yZy_Tpmo1 slug index isHomepage true rootNodeId hXtVXlf9o4IlC9SV8uueJ draft status initially
- Collections: pages (1 row), posts (0)
- Styles initially empty
{"classes":[],"classCount":0}
Editor connection requirement: MCP tools needing siteConnected error This tool runs in the Instatic Site editor. Open the Site editor... — get_context says siteConnected bool. Must keep BareBrowse page open on /admin/site to maintain true. Visible Chrome on iMac tab on /admin/site also counts. Keep alive 120s window.
Workflow:
site_list_documents → Home id
content_get_collection_schema pages → fields title, slug, body:pageTree, seo...
site_read_document {type:page id:u2st08...} → html "\n\n" empty
site_insert_html {parentId: hXtV..., html: "<section class=\"hero\">...<style>...</style></section>"}
-> nodeIds 4 roots, created 50+ nodes base.container/text/button/link with classes hero, hero-inner, eyebrow, accent etc
site_publish → {publishedPages:1}
curl -D - http://192.168.68.110:3002/ → 200 OK 2979 bytes
Published landing: Hero "Build things that matter." with gradient accent, stats FamReynaServer/Instatic v0.0.11/MCP hermes, 3 cards Grace & Poppy Books / BareBrowse > Playwright / Instatic CMS, how-made codeblock, footer. Clean HTML no JS runtime CSP script-src 'none'
Visible Chrome on iMac .124
User directive: "If you need to work on the browser use the iMac for that" — iMac is DEFAULT for all browser work (15Gi avail vs Pi 3.9Gi swap-thrash). Pi is hub/dashboard :9119 only.
Launch pattern: systemd-run --user --scope -- env DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.* DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus google-chrome --remote-debugging-port=9222 --user-data-dir=~/.config/google-chrome-reyna-bot
Proof during this session: 4 tabs — dashboard + / (home) + 2 omnibox, CDP listening ws://127.0.0.1:9222. Refresh via Page.navigate + snapshot pruned 3148→1049 67% shows heading. User said "I see chrome" — success.
Default Browser Prompt Fix — 2026-07-13
User closed Chrome intentionally, said "every time it is open from scratch a window about making chrome the default option shows first and blocks the browser window. Let's research how to overcome that, maybe sending some key combinations if an option on the cli isn't available. You could also take screenshots and look when in doubt"
Fix deployed:
- Patched JSON: Preferences + Local State set
browser.check_default_browser=False+default_browser_infobar_last_declined=13390000000000000.0(far future) - Wrapper
~/bin/launch-reyna-bot.shwith EXTRA flags:--no-default-browser-check --no-first-run --disable-search-engine-choice-screen --disable-features=DefaultBrowserInfobar,ChromeWhatsNew,SearchEngineChoiceTrigger --disable-default-apps --no-service-autorun --disable-infobars - Verification method: BareBrowse snapshot shouldn't contain "Make Chrome default" + CDP
Runtime.evaluate documentElement.outerHTML.includes("default browser")false + screenshot viaPage.captureScreenshotWS. - Research noted peter.sh chromium flags, screenshot via WS target find url containing 192.168.68.110:3002 → capture.
- Skills updated: remote-browser-control §6.5 + barebrowse THIS HOST + instatic Pitfalls + new reference
chrome-default-browser-prompt-fix-2026-07.md
Learnings documented: screenshot approach when in doubt — user explicitly invited it; flags are canonical fix, not key combos.
Skills Updated
computer-use/remote-browser-control/SKILL.md§6.5 Prevent Make Chrome default prompt + wrapper scriptcomputer-use/barebrowse/SKILL.mdTHIS HOST updated with default fix + screenshot + validationcreative/instatic/SKILL.mdVisible Chrome Default-Prompt Fix pitfall- New ref
remote-browser-control/references/chrome-default-browser-prompt-fix-2026-07.mdwith full research, patch, wrapper, verification
Next Steps
- Add blog posts via content_create_document + publish
- Add Grace/Poppy books showcase as separate pages with media
- Consider Tailscale or public proxy for 192.168.68.110:3002 if need external
- Keep Chrome closed for now — user closed intentionally, wrapper ensures next launch clean
- MCP token valid until 10/11/2026 — refresh via same BareBrowse flow
- Visible demo available:
~/bin/launch-reyna-bot.sh "http://192.168.68.110:3002/" "http://192.168.68.110:3002/admin"
Links
- Instatic: https://github.com/CoreBunch/Instatic 3272★
- BareBrowse: https://github.com/hamr0/barebrowse 37★ preferred over Playwright
- Deployed: http://192.168.68.110:3002/ live 200
- Admin: http://192.168.68.110:3002/admin
- MCP: http://192.168.68.110:3002/_instatic/mcp
- Launch script imac: ~/bin/launch-reyna-bot.sh
- Token file: ~/.config/instatic-mcp-token 0600
- Hermes MCP: ~/.hermes/mcp-servers.d/instatic.json