Галоўная > Composer: Як мы стварылі бясплатны і адкрыты інструмент для публікацыі ў сацыяльныя сеткі

Composer: Як мы стварылі бясплатны і адкрыты інструмент для публікацыі ў сацыяльныя сеткі

composer

cover

Прывітанне, сябры!

Крыху распавяду вам пра інтсрумент які мы стварылі і карыстаемся самі.

Неяк нас крыху задзяўбло спрабаваць весці некалькі сацсетак адначасова - Адкрыць Telegram-канал, уставіць тэкст, аформіць спасылкі. Затым адкрыць Discord-сервер - там спасылкі выглядаюць інакш, трэба падправіць Markdown-разметку. Потым скапіяваць усё гэта ў X (Twitter) і Threads, дзе ліміты сімвалаў прымушаюць вас пакутаваць і сутаргава скарачаць кожны сказ. А калі вы працуеце ў камандзе, да гэтага дадаецца бясконцы абмен файламі, узгадненне чарнавікоў і пытанні кшталту: «А хто-небудзь ужо адправіў гэты пост у Твітэр?»

А сэрвісы якія ужо існуюць? Не, бо ... а 20 баксаў - гэта 20 баксаў.

Таум - калі вам гэта знаёма, вы дакладна зразумееце, чаму мы вырашылі стварыць Composer. Мы хацелі інструмент, які дазваляе напісаць тэкст адзін раз у Markdown і адным клікам адправіць яго на патрэбныя пляцоўкі. і самае галоўнае — мы хацелі зрабіць яго цалкам бясплатным, бяспечным і адкрытым.

У гэтым артыкуле мы падрабязна распавядзем, што ўмее наш інструмент, чаму мы абралі менавіта такую архітэктуру і як вы можаце разгарнуць яго на сваім серверы або самастойна скампіляваць дэсктопны дадатак для Windows, macOS ці Linux. Паехалі!


Чаму менавіта Composer? (І што ён дае людзям)

Мы не хацелі рабіць чарговы дарагі SaaS-сэрвіс па падпісцы з кучай непатрэбных функцый. Наша мэта — зручнасць, хуткасць і поўны кантроль над сваімі дадзенымі. Вось што Composer дае кожнаму карыстальніку:

  1. Markdown-рэдактар як адзіная крыніца праўды: Вы пішаце тэкст у адным акне. Вы можаце выкарыстоўваць чысты Markdown або пераключыцца ў зручны візуальны WYSIWYG-рэжым.
  2. Разумная адаптацыя фарматавання: Розныя сацыяльныя сеткі жывуць па сваіх правілах. Telegram патрабуе спецыфічны HTML, Discord разумее свой Markdown, а X і Threads любяць просты тэкст. Composer аўтаматычна канвертуе ваш зыходны тэкст пад патрабаванні кожнай платформы.
  3. Рэалістычны перадпрагляд (Preview): Больш ніякіх сюрпрызаў пасля публікацыі! Вы бачыце, як менавіта ваш допіс будзе выглядаць у кожнай выбранай сетцы, яшчэ да адпраўкі. Калі тэкст занадта доўгі, сістэма папярэдзіць вас або прапануе падзяліць яго на ланцужок паведамленняў.
  4. Поўная прыватнасць (Open Source): Праект распаўсюджваецца па ліцэнзіі MIT. Мы не збіраем вашы токены або паролі. Увесь зыходны код цалкам адкрыты і даступны на GitHub. Вы можаце бясплатна запусціць яго на нашым бэку(для дэсктоп дадатку) composer.bel-geek.com або разгарнуць цалкам лакальна.
  5. Гнуткая сумесная праца: Вы можаце ствараць працоўныя прасторы (Workspaces), запрашаць калег, даваць ім розныя правы доступу (напрыклад, толькі для рэдагавання або толькі для публікацыі ў канкрэтныя каналы) і планаваць пасты на будучыню.

Параўнанне з камерцыйнымі сэрвісамі автопостынгу

Калі вы пачнеце шукаць рашэнні для мультыпостынгу, то першымі ў пошуку з'явяцца папулярныя сэрвісы накшталт Buffer, Hootsuite, Later ці CoSchedule. Усе яны неблагія, але давайце паглядзім праўдзе ў вочы:

Функцыя / ПараметрBufferHootsuiteComposer
КоштБясплатна (абмежавана) або ад $6/мес за каналАд $99/месяц (няма бясплатнага тарыфу)Абсалютна бясплатна
Зыходны кодЗакрыты (Proprietary)Закрыты (Proprietary)Open Source (MIT)
Ліміт на каналыДа 3 каналаў на бясплатным тарыфеАд 10 каналаў (толькі платна)Ніякіх абмежаванняў
Захаванне дадзеныхНа серверах BufferНа серверах HootsuiteПад вашым кантролем (MongoDB або лакальна)
Калектыўная працаПлатна (ад $12/мес за канал)Платна (у дарагіх тарыфах ад $249/мес)Бясплатна (Workspaces без лімітаў)
Постынг у X і ThreadsАбмежаваны на бясплатным тарыфеТолькі на платных тарыфахБясплатна праз убудаваны браўзер

Чаму бясплатны Open Source лепш за камерцыйны SaaS?

  • Незалежнасць ад коштавай палітыкі: Сёння X (Twitter) робіць сваё API платным — і камерцыйныя сэрвісы мусяць падымаць кошты або цалкам адключаць падтрымку гэтай сеткі на танных тарыфах. Composer Desktop абыходзіць гэта дзякуючы працы праз лакальны браўзер.
  • Свабода выбару хостынгу: Вы не залежыце ад сервераў аднаго правайдэра. Калі іх сервер «ляжа», вы не зможаце зрабіць допіс. У выпадку з Composer вы можаце выкарыстоўваць наш гатовы сервер альбо за некалькі хвілін запусціць свой бэкенд і працаваць цалкам аўтаномна.
  • Чысты змест без «вадзяных знакаў»: Некаторыя сэрвісы на бясплатных тарыфах дадаюць у канцы вашых пастоў рэкламныя прыпіскі («via Buffer»). З Composer ваш кантэнт належыць толькі вам і публікуецца без лішніх брэндавых пазнак.

Вэб і дэсктоп: як гэта працуе пад капотам

Магчыма, вы спытаеце: «Чаму прылада складаецца і з вэб-сервера, і з дэсктоп-дадатку?» Тут крочыцца вельмі цікавае інжынернае рашэнне.

Справа ў тым, што розныя сацыяльныя сеткі маюць розныя ўзроўні адкрытасці:

  • Telegram і Discord: Гэтыя платформы маюць выдатныя, бясплатныя і адкрытыя API. Таму наша вэб-версія (бэк) працуе з імі напрамую праз серверных ботаў. Вы проста дадаеце токен бота ў налады працоўнай прасторы, і сервер сам адпраўляе паведамленні.
  • Threads і X (Twitter): Тут сітуацыя горшая. Афіцыйныя API альбо залішне абмежаваныя, альбо каштуюць шалёных грошай для звычайных карыстальнікаў. Каб вырашыць гэтую праблему і не прымушаць вас плаціць, мы стварылі Composer Desktop на базе Electron.

Дэсктопны дадатак працуе як лакальны памочнік. У яго ўбудаваны браўзер, у якім вы адзін раз аўтарызуецеся ў сваіх акаўнтах Threads і X. Дадатак рэгулярна звяртаецца да вашага сервера, забірае запланаваныя пасты і публікуе іх ад вашага імя прама праз браўзер. Важна: вашы cookies, паролі і сесіі ніколі не адпраўляюцца на сервер — яны застаюцца толькі на вашым кампутары.


Як разгарнуць уласны бэкенд (Self-hosting)

Калі вы хочаце поўнай незалежнасці ад вонкавых сэрвісаў, вы можаце разгарнуць уласную копію Composer. Для гэтага вам спатрэбяцца Git, база даных MongoDB, а таксама Node.js і Bun.

🛠️ Як усталяваць Node.js, npm і Bun на кампутар

Перад пачаткам пераканайцеся, што на вашай машыне ўсталяваныя неабходныя інструменты. Вось кароткае кіраўніцтва па іх усталёўцы для розных аперацыйных сістэм:

1. Усталёўка Node.js і менеджэра пакетаў npm

  • Windows і macOS: Спампуйце і запусціце афіцыйны інсталятар версіі LTS з сайта nodejs.org.
  • macOS (праз Homebrew): Калі ў вас усталяваны Homebrew, выканайце ў тэрмінале:
    bash
    1brew install node
  • Linux (Ubuntu/Debian): Усталюйце праз афіцыйны пакетны менеджэр:
    bash
    1sudo apt update
    2sudo apt install -y nodejs npm

2. Усталёўка Bun

Bun — гэта суперхуткае асяроддзе выканання JavaScript/TypeScript, якое мы выкарыстоўваем для працы і зборкі праекта.

  • macOS і Linux: Усталёўваецца адной камандай у тэрмінале:
    bash
    1curl -fsSL https://bun.sh/install | bash
  • Windows: Адкрыйце PowerShell ад імя адміністратара і выканайце:
    powershell
    1powershell -c "irm bun.sh/install.ps1 | iex"
    (Або праз пакетны менеджэр: winget install Oven-sh.Bun)

3. Усталёўка і запуск MongoDB

Бэкенд Composer патрабуе базу даных MongoDB для захавання карыстальнікаў, чарнавікоў і налад. Вы можаце разгарнуць яе рознымі спосабамі:

  • Лакальная ўсталёўка:
    • macOS (праз Homebrew):
      bash
      1brew tap mongodb/brew
      2brew install mongodb-community
      3brew services start mongodb-community
    • Windows / Linux: Спампуйце бясплатную версію MongoDB Community Server з афіцыйнага сайта і запусціце яе як службу.
  • Праз Docker (самы просты лакальны спосаб): Калі ў вас усталяваны Docker, вы можаце запусціць MongoDB адной камандай без неабходнасці ўсталёўваць базу наўпрост на кампутар:
    bash
    1docker run -d -p 27017:27017 --name composer-mongo mongo:latest
  • Воблачная база даных (MongoDB Atlas): Стварыце бясплатны кластар на mongodb.com/atlas і пазначце атрыманы адрас падключэння ў .env файле як MONGODB_URI.

Крок 1. Падрыхтоўка кода і залежнасцей

Вы можаце выкарыстоўваць як bun, так і npm для ўсталёўкі залежнасцей. Звярніце ўвагу: хоць пакеты можна ўсталёўваць праз npm install, для непасрэднага запуска скрыптоў бэкенду і зборкі дэсктоп-дадатку вам усё роўна спатрэбіцца ўсталяваны bun, бо ён выклікаецца ўнутрана ў файле package.json.

Клануем рэпазіторый і ўсталёўваем пакеты:

bash
1git clone https://github.com/bel-frontend/tg_discord_bot.git
2cd tg_discord_bot
3
4# Карыстайцеся Bun (рэкамендуецца):
5bun install
6
7# Або выкарыстоўвайце npm:
8npm install

Крок 2. Налада атачэння

Стварыце файл .env на аснове прыкладу:

bash
1cp .env.example .env

Адкрыйце яго і пазначце свае налады:

env
1PORT=3000
2JWT_SECRET=прыдумайце-доўгі-выпадковы-радок
3MONGODB_URI=mongodb://localhost:27017/composer
4PUBLIC_BASE_URL=http://localhost:3000

Крок 3. Запуск

Каб запусціць праект у рэжыме распрацоўкі (з гарачай перазагрузкай):

bash
1# Праз Bun (рэкамендуецца):
2bun run dev
3
4# Праз npm:
5npm run dev

Каб запусціць праект у прадукцыйным рэжыме (Production):

bash
1# Праз Bun (рэкамендуецца):
2bun run start
3
4# Праз npm:
5npm run start

Таксама даступны запуск праз Docker:

bash
1docker compose up -d --build

Пасля гэтага ваш уласны бэкенд гатовы і будзе чакаць запытаў на порце 3000 (або 3007 при запуску праз Docker Compose).


Самастойная зборка дэсктоп-дадатку для Windows, macOS і Linux

Мы лічым, што карыстальнікі павінны мець магчымасць сабраць дэсктопны кліент самастойна з зыходнага кода, каб быць на 100% упэўненымі, што ў ім няма ніякіх «закладак» ці трэкераў.

Зрабіць гэта вельмі проста. Вось пакрокавая рэцэптура для любой папулярнай аперацыйнай сістэмы.

Што спатрэбіцца:

  • Усталяваны Node.js і Bun.
  • Кланаваны рэпазіторый праекта (гл. крок 1 у інструкцыі па бэкендзе).

Пакрокавы працэс зборкі:

  1. Перайдзіце ў каталог дэсктоп-дадатку:

    bash
    1cd desktop
  2. Усталюйце ўсе неабходныя пакеты:

    bash
    1# Праз Bun (рэкамендуецца):
    2bun install
    3
    4# Або праз npm:
    5npm install
  3. Запусціце праект у рэжыме распрацоўкі (калі хочаце проста праверыць працу): Калі ваш бэкенд працуе на http://localhost:3000, запусціце:

    bash
    1# Праз Bun:
    2COMPOSER_DESKTOP_DEV_URL=http://localhost:3000 bun run dev
    3
    4# Праз npm:
    5COMPOSER_DESKTOP_DEV_URL=http://localhost:3000 npm run dev

    Або проста выкарыстоўвайце агульную dev-каманду з кораня рэпазіторыя:

    bash
    1bun run desktop:dev # ці npm run desktop:dev
  4. Запусціце кампіляцыю інсталятара: Выканайце з кораня праекта:

    bash
    1bun run desktop:dist # ці npm run desktop:dist

    Альбо непасрэдна з тэчкі desktop:

    bash
    1bun run dist # ці npm run dist

Што вы атрымаеце на выхадзе?

Інструмент electron-builder аўтаматычна распазнае вашу аперацыйную сістэму і створыць гатовы інсталятар у тэчцы desktop/release/:

  • На macOS: вы атрымаеце пакет .dmg і архіў .zip.
  • На Windows: будзе створаны класічны інсталятар .exe (NSIS).
  • На Linux: дзякуючы нашым наладкам у package.json, вы атрымаеце ўніверсальны .AppImage і пакет .deb для Debian/Ubuntu.

Маленькая парада: Звярніце ўвагу, што для кампіляцыі пад macOS вам спатрэбіцца камп'ютар Mac, бо сабраць .dmg на Windows ці Linux стандартнымі сродкамі не атрымаецца.

🚀 Першы запуск і падключэнне да бэкенду (вэб-сервера)

Пры першым запуску скампіляванага або запушчанага ў распрацоўчым рэжыме Composer Desktop, дадатак папросіць вас увесці адрас сервера (Server URL).

Тут у вас ёсць два зручныя варыянты:

  1. Калі вы не хочаце разгортваць уласны бэкенд: Вы можаце выкарыстоўваць наш афіцыйны хостынг. Проста пазначце адрас нашага агульнага і цалкам бясплатнага сервера:

    text
    1https://composer.bel-geek.com

    Пасля гэтага зарэгіструйцеся там або ўвайдзіце пад сваім акаўнтам і карыстайцеся ўсімі магчымасцямі дэсктопнага памочніка (уключаючы лакальны постынг у X і Threads) без неабходнасці наладжваць базу даных MongoDB ці Docker.

  2. Калі вы разгарнулі свой бэкенд: Пазначце адрас вашай уласнай копіі сервера (напрыклад, http://localhost:3000 ці https://composer.yourdomain.com).


Далучайцеся да супольнасці!

Мы стварылі Composer для сябе і для ўсіх, хто стаміўся ад руціны і хоча мець пэўную свабоду ў кіраванні сваімі публікацыямі.

Паспрабуйце працуючую версію на composer.bel-geek.com прама зараз (даступныя тг боты і дыскорд) — гэта бясплатна і не патрабуе ніякай складанай наладкі. А калі вам спадабалася ідэя, заходзьце на наш GitHub, стаўце зорачкі, стварайце Issue з вашымі прапановамі і дасылайце Pull Request-ы. Давайце рабіць гэты праект лепш разам!

Дзякуй за ўвагу і прыемнага карыстання!

Admin, 2026-07-17
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)