selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

CogSend logo

Self-host CogSend

v1.20.2

Self-hosted social media scheduler on Cloudflare Workers

BetaOpen SourceMIT
Updated6 days ago
LanguageTypescript
Setup difficultyModerate
Stars
246
Requires
Cloudflare D1, Cloudflare R2, Cloudflare Workers
Install with NPM
CogSend composer UI demo

What is CogSend?

CogSend is a self-hosted social media scheduler that runs entirely on your own Cloudflare account using Workers, D1 (SQLite), and R2 for media storage. It supports publishing to five networks with per-platform customization, thread auto-splitting, scheduling, automatic retries, and delivery insights. The app includes a thread editor with images, video (browser-converted), alt text, and link previews. It features encrypted credentials, TOTP 2FA for the admin account, a personal API key (read-only or read-write), and an MCP server for AI agents like Claude Code and Codex. Installation is via a one-click Cloudflare Deploy button or a terminal command (Node 22.17+, 24, or 26+). Updates come through GitHub Actions or from the Settings UI. The project is MIT licensed and developed by DeepakNess.

Should you self-host CogSend?

CogSend scores 50/100 on selfhost.directory (how scoring works) and ranks #7 of 18 in Social Media Management. It has 246 GitHub stars.

It shipped 9 stable releases in the past year. The latest, v1.20.2, came out on 21 October 2026.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Postiz (85/100, 39 872 stars). It scores higher overall, so compare the two before you pick. See CogSend vs Postiz side by side.

Features

  • Automatic Retries
  • Cloudflare Access support
  • Delivery insights
  • Encrypted Credentials
  • Failure email digests
  • Images and video
  • Link Previews
  • MCP Server
  • Multi-platform Publishing
  • Per-platform overrides
  • Personal API keys
  • Scheduling
  • Thread auto-splitting
  • Two-factor authentication
  • Zernio integration

CogSend README

How to install CogSend

Install CogSend with NPM

Environment variables
APP_ENCRYPTION_KEY (generated), OAuth secrets optional

git clone --depth 1 https://github.com/cogsend/cogsend.git cogsend cd cogsend && npm install && npm run setup

For changing the code or deploying without GitHub/GitLab. Requires Node 22.17+, 24, or 26+.

How to configure CogSend

  • API_TOKENA machine bearer for the API (prefer a personal key instead).

    A machine bearer for the API (prefer a personal key instead).

  • APP_ENCRYPTION_KEYRequired encryption key for provider tokens and TOTP secret stored in D1. Generate with openssl rand -hex 32.

    Required encryption key for provider tokens and TOTP secret stored in D1. Generate with openssl rand -hex 32.

  • APP_NAMECogSendInstance name shown in page title, header, and login screen. Default: CogSend.

    Instance name shown in page title, header, and login screen. Default: CogSend.

  • APP_URLThe instance URL, set automatically by setup.

    The instance URL, set automatically by setup.

  • AUTH_SECRETSigns sessions and OAuth state. Derived from APP_ENCRYPTION_KEY via HMAC-SHA256. Can be overridden explicitly.

    Signs sessions and OAuth state. Derived from APP_ENCRYPTION_KEY via HMAC-SHA256. Can be overridden explicitly.

  • LINKEDIN_CLIENT_IDLinkedIn OAuth client ID.

    LinkedIn OAuth client ID.

  • LINKEDIN_CLIENT_SECRETLinkedIn OAuth client secret.

    LinkedIn OAuth client secret.

  • MEDIA_PUBLIC_BASE_URLPublic media origin for Meta's crawler (serves media without signature/expiry).

    Public media origin for Meta's crawler (serves media without signature/expiry).

  • NOTIFY_EMAILEmail address to receive failure digests.

    Email address to receive failure digests.

  • NOTIFY_FROMSender email for failure digests (domain must be verified in Resend).

    Sender email for failure digests (domain must be verified in Resend).

  • RESEND_API_KEYResend API key for failure digest emails.

    Resend API key for failure digest emails.

  • SCHEDULER_SECRETThe tick bearer for scheduled publishing. Derived from APP_ENCRYPTION_KEY via HMAC-SHA256. Can be overridden explicitly.

    The tick bearer for scheduled publishing. Derived from APP_ENCRYPTION_KEY via HMAC-SHA256. Can be overridden explicitly.

  • SUBREQUEST_LIMITNumber of calls one request may make (D1 statements, R2 ops, platform requests). Free plan: 50, Paid: 10000.

    Number of calls one request may make (D1 statements, R2 ops, platform requests). Free plan: 50, Paid: 10000.

    values: 50 (Free) or 10000 (Paid)

  • THREADS_APP_IDThreads OAuth app ID.

    Threads OAuth app ID.

  • THREADS_APP_SECRETThreads OAuth app secret.

    Threads OAuth app secret.

  • X_CLIENT_IDX (Twitter) OAuth client ID.

    X (Twitter) OAuth client ID.

  • X_CLIENT_SECRETX (Twitter) OAuth client secret.

    X (Twitter) OAuth client secret.

CogSend releases & version history

More in Social Media Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…