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.
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.
-
Download the archive
Grab
sola-merlino-2026-06-27.tgzfrom 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. -
Extract it
Unpack the archive in place. On Windows, the built-in
tarhandles.tgzdirectly.tar -xzf sola-merlino-2026-06-27.tgz -
Start the server
From the extracted root, set the five desktop-mode environment variables and launch the Fastify entry point. The
DATABASE_URLis derived from your current location so it always points at the absolute path of the extracteddata/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.tsThe server listens on
PORT=44887. The entry point iscontent-distribution/src/index.ts. -
(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 -
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.
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.
| Variable | Value | Why |
|---|---|---|
PORT | 44887 | Fastify server port; dashboard served at /ui/. |
DEPLOY_MODE | desktop | Local single-machine mode; auto-injects a local admin. |
REDIS_MODE | memory | Uses the in-memory fallback — no Redis server needed. |
CSRF_PROTECTION | false | Disabled for local desktop use. |
DATABASE_URL | file:<abs>/data/content-distribution.db | Absolute 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.
| Issue | Fix |
|---|---|
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.
-
Confirm the Gmail accounts
Open the Gmail Accounts page (
/gmail/accounts). You should see 121 real Gmail accounts, all active. -
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. -
Start a warming run
Pick an account and kick off warming via the Account Warmup page (
/account-warmup), or trigger it directly withPOST /api/gmail/accounts/:id/warmup. Watch the campaign begin in Phase 1, "Passive Observer." -
Generate a post with the Universal Writer
Open Content (
/content) and generate asocialpost 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.
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