Install the tools
Publit.Si needs Node.js, pnpm, ffmpeg (to read your videos) and cloudflared (for the tunnel). One block of commands per system, run inside the publitsi folder.
You need
- Node.js 22 or newer: check with
node -v - On the Mac: Homebrew
- On Windows:
winget(built into Windows 10/11)
MacMac
In the Terminal:
brew install ffmpeg cloudflared brew install whisper-cpp # optional: analyse existing videos corepack enable # provides the right pnpm version pnpm install cp .env.example .env pnpm local:setup
WindowsWindows
In PowerShell:
winget install OpenJS.NodeJS.LTS Gyan.FFmpeg Cloudflare.cloudflaredClose PowerShell and open a new window, so the new tools are found. Then:
corepack enable pnpm install Copy-Item .env.example .env pnpm local:setupOptional, to analyse existing videos: download
whisper-cli.exefrom the whisper.cpp releases and put its folder on PATH.
LinuxLinux
On Debian or Ubuntu:
sudo apt install ffmpeg libsecret-tools sudo apt install xdg-utils libnotify-bin zenity # desktop onlyInstall cloudflared from pkg.cloudflare.com or the
.debfrom the cloudflared releases. On Fedora, enable RPM Fusion and usesudo dnf install ffmpeg libsecretplus the.rpm.Then:
corepack enable pnpm install cp .env.example .env pnpm local:setup
If pnpm install fails while building better-sqlite3, run sudo apt install build-essential python3 and try again.
Read the checklist
pnpm local:setupsets Publit.Si up on this computer: the data folder, the database, a random key for your tokens (Mac: Keychain, Windows: DPAPI, Linux: keyring or a private key file) and, ifwhisper-cliis installed, the speech model (about 470 MB, once). Then it prints a checklist. It never writes to.env.What you'll see (shortened, before any platform is set up):
Data: ~/Library/Application Support/Publit.Si ✓ Token key in the macOS Keychain ✓ .env present ✗ PUBLITSI_PUBLIC_URL set (Instagram/TikTok only) → Tunnel domain, e.g. https://publish.example.com – SETUP.md step 3 ✗ Google OAuth client set (YouTube) → SETUP.md step 5; redirect http://localhost:3000/api/oauth/youtube/callback ✓ ffprobe (video duration/format) ✓ cloudflared (Instagram/TikTok only) …Green ✓ for
.env,ffprobeandcloudflaredis what you need now. The platform keys stay ✗ until steps 3 to 6.
You can run pnpm local:setup again at any time. It only adds what's missing, keeps your data and shows what's still to do.
Check
pnpm local:setup shows ✓ for .env, ffprobe and cloudflared. YouTube only: cloudflared and the tunnel lines may stay ✗.
Common problems
Stuck? Write to us. We're happy to help. Leave out secrets and tokens.