Sola MerlinoDocumentation
Get started

Setup & Run

Download the Sola Merlino archive from Google Drive, set five environment variables, and start the Fastify server — no install step, because node_modules ships in the bundle.

Quick start (from the Google Drive archive)

Sola Merlino runs in desktop mode: an in-memory Redis fallback, a local SQLite database, and an auto-injected local admin so there is no login to configure on your own machine. The whole thing comes as a single compressed archive that you extract and run in place.

Prerequisites

Windows with Node 20+ on the PATH. There is no npm install — the full node_modules tree is bundled inside the archive, so the app runs straight from the extracted folder. The Antidetect Engine (step 4) is optional for a first launch and only needed when you start running real browser identities.

  1. Download the archive

    Grab sola-merlino-2026-06-27.tgz from Google Drive and save it to the folder where you want the app to live. Everything — code, bundled dependencies, and the preloaded data — is inside this one file.

  2. Extract it

    Unpack the archive in place. On Windows, the built-in tar handles .tgz directly.

    tar -xzf sola-merlino-2026-06-27.tgz
  3. Start the server

    From the extracted root, set the five desktop-mode environment variables and launch the Fastify entry point. The DATABASE_URL is derived from your current location so it always points at the absolute path of the extracted data/ folder.

    $env:PORT="44887"
    $env:DEPLOY_MODE="desktop"
    $env:REDIS_MODE="memory"
    $env:CSRF_PROTECTION="false"
    $env:DATABASE_URL="file:$((Get-Location).Path -replace '\\','/')/data/content-distribution.db"
    
    node --import tsx/esm content-distribution/src/index.ts

    The server listens on PORT=44887. The entry point is content-distribution/src/index.ts.

  4. (Optional) Start the Antidetect Engine

    In a second terminal, launch the fingerprint + proxy isolation process. It runs separately on port 3500 and binds each browser profile to its proxy.

    cd antidetect-engine
    node run-engine.cjs
  5. Open the dashboard

    Browse to http://localhost:44887/ui/. The root / redirects there automatically. Desktop mode injects a local admin, so no sign-in is required.

Fastify · :44887 Antidetect · :3500 No npm install Node 20+

Run environment at a glance

These are the exact variables desktop mode expects. Set them in the shell before launching, exactly as shown in step 3.

VariableValueWhy
PORT44887Fastify server port; dashboard served at /ui/.
DEPLOY_MODEdesktopLocal single-machine mode; auto-injects a local admin.
REDIS_MODEmemoryUses the in-memory fallback — no Redis server needed.
CSRF_PROTECTIONfalseDisabled for local desktop use.
DATABASE_URLfile:<abs>/data/content-distribution.dbAbsolute path to the SQLite DB in the extracted folder.

Troubleshooting

Common first-launch messages and what to do about them. None of these block startup on a clean extract.

IssueFix
Redis ECONNREFUSED in the logs Harmless. With REDIS_MODE=memory the app uses an in-memory fallback and never needs a Redis server. Ignore the message.
Port 44887 already in use Another process (often a previous run) is holding the port. Kill the stray Node process — taskkill /IM node.exe /F — then start the server again.
"Will this run on this machine?" Yes. There is no machine-lock — Sola Merlino runs on any machine from the extracted archive.
Database not found / empty dashboard DATABASE_URL must be the absolute path to the extracted data/content-distribution.db. The step 3 command derives it from Get-Location; if you moved the folder, re-run that line so the path matches.

Smoke test (verify it works)

Once the dashboard loads, walk these four checks to confirm the preloaded data and the core pipeline are live end to end.

  1. Confirm the Gmail accounts

    Open the Gmail Accounts page (/gmail/accounts). You should see 121 real Gmail accounts, all active.

  2. Open the Care Mountain workspace

    Go to Brand Workspaces (/brand-syndication) and open Care Mountain — a scale-tier brand on youtube, twitter, facebook, and linkedin with 16 personas attached.

  3. Start a warming run

    Pick an account and kick off warming via the Account Warmup page (/account-warmup), or trigger it directly with POST /api/gmail/accounts/:id/warmup. Watch the campaign begin in Phase 1, "Passive Observer."

  4. Generate a post with the Universal Writer

    Open Content (/content) and generate a social post grounded in a Care Mountain DAM asset. The request hits /api/universal-writer/* and returns per-platform variants scored on hook strength, platform fit, and engagement.

121
Gmail accounts
16
Care Mountain personas
621
DAM source assets
44887
Server port
Next steps

With the smoke test green, head to Account warming to plan a 30-day schedule, or Universal Writer to syndicate a post across platforms from a single prompt.

Sola Merlino · social syndication + account automation · documentation generated 2026-06-27