Pagbuo sa Antimatter

Ang gabay na ito ay para sa mga developer. Tinatalakay nito ang mga script at bot na gumagamit ng API, mga integration na nakabatay sa webhooks at slash commands, mga app (plugin) na nagdaragdag ng feature sa server at web app, at ang pagbuo ng Antimatter mula sa source upang mag-ambag dito.

Mga paraan upang palawakin ang Antimatter

Piliin ang pinakamagaan na tool na sapat sa gawain. Ang unang apat ay hindi nangangailangan ng access sa server mismo; ang mga app naman ay tumatakbo sa loob nito.

ToolGinagawa nitoMagandang gamitin para sa
REST APILahat ng ginagawa ng mga app: mga mensahe, channel, tao, file, at setting. Ang WebSocket ay nagpapadala ng mga event habang nangyayari.Mga script, pag-sync sa ibang sistema, at custom client.
Incoming webhooksIsang secret URL na nagpo-post ng mensahe sa isang channel kapag may nagpadala ng JSON.Mga alert, resulta ng CI, monitoring, at notisikasyon mula sa ibang tool.
Outgoing webhooksTinutaw ng Antimatter ang iyong URL kapag ang mensahe sa pampublikong channel ay nagsisimula sa trigger word, o kapag pumili ng iyong aksyon ang isang tao sa menu ng mensahe, at ipinapost ang iyong sagot.Mga simpleng chat-driven na awtomasyon, na nagpapadala ng mensahe sa ibang tool.
Slash commandsNagta-type ang mga tao ng /something; tinatawag ng Antimatter ang iyong URL at ipinapakita ang iyong sagot sa kanila o sa channel.Mga lookup at aksyon na nagsisimula mula sa chat.
BotsMga account na para sa mga programa, na may sariling token, BOT tag, at interactive na mensahe at dialog.Mga assistant, notifier, at anumang bagay na nakikipag-usap sa mga tao.
Apps (plugins)Code na tumatakbo sa loob ng server (Go) at sa web app (React): mga hook sa bawat mensahe, bagong menu, panel, uri ng mensahe, at pahina.Mga feature: poll, tala, kalendaryo, at integration na nangangailangan ng user interface.

Sa interface, tinatawag ng mga tao ang mga plugin bilang "apps". Sinasabi ng gabay na ito "apps (plugins)" kung saan kapareha ang kapaki-pakinabang ng dalawang salita, dahil ang code, API, at configuration ay nananatiling "plugin".

Pagkakapareho sa Mattermost

Ang Antimatter ay isang fork ng Mattermost. Karamihan sa mga gumagana sa isang Mattermost server ay gumagana rin sa Antimatter.

Ano ang pare-pareho

  • Ang REST API sa ilalim ng /api/v4, ang authentication nito, ang WebSocket, at ang format ng error. Ipinapahiwatig ng server na ang version ay 12.0.0, kaya ang mga client at app na tumitingin sa version ng server ay makikita ang isang makabagong Mattermost.
  • Mga Webhook at slash command, kasama ang kanilang Slack-compatible payloads.
  • Ang server plugin API at hooks: Pinapanatili ng Antimatter ang mga ito sa kanilang kasalukuyang anyo. Ang server code ay nagbabase sa parehong Go module, github.com/mattermost/mattermost/server/public. Nagdadagdag lamang ng mga method ang Antimatter para sa kanyang AI service (tingnan ang The AI service).
  • Ang web app plugin registry: bawat register… method ng registry ng Mattermost ay umiiral sa parehong web interface ng Antimatter.
  • Mga client library: ang Go client model.Client4 at ang TypeScript client @mattermost/client (tingnan ang Mga client library).
  • Mga plugin bundle: isang .tar.gz na may plugin.json manifest. Ang mga plugin na firmahan ng key ng Mattermost ay maia-install, pati na rin ang mga firmahan ng key ng Antimatter.

Ang mga pagkakaiba

  • Dalawang web interface. Ang bagong interface, ang Fusion, ang default; ang klasikong interface ng Mattermost ay available pa rin. Ang Fusion ay nagre-render ng karamihan sa mga plugin component, ngunit ilang bahagi nito ay nakalagay sa ibang lugar at may ilang hindi isinasaad. Makakakilala ng app kung alin ang interface ang tumatakbo. Tingnan ang Suporta sa Fusion interface.
  • Karagdagang API. Nagdadagdag ng mga endpoint ang Antimatter para sa kanyang mga sariling feature: community attributes, timeouts, messages on top, message requests, channel at category overrides, channel export, paglipat ng mga thread, model connections, message actions, at mga bagong field sa mga community. Tingnan ang What Antimatter adds to the API.
  • Karagdagang feature ng mensahe. Ang mga attachment ng mensahe ay maaaring ipakita ang mga stage ng pipeline at isang maliit na chart; ang mga post ay maaaring maging inline reply o spoiler.
  • Karagdagang web app hooks para sa mga app: isang "+" menu item sa composer, mga tab sa emoji picker, isang panel sa channel view, isang footer sa ilalim ng mga channel sa sidebar, isang entry sa mga integrations pages, ang add at manage views ng emoji picker, at isang side panel na muling buksan sa kung saan nakaupo ito sa bagong window. Tingnan ang Hooks only Antimatter has.
  • Walang lisensya. Ang bawat feature ay available nang walang lisensya key. Ang mga endpoint para sa lisensya, trial, at enterprise upgrade ay nawala; ang GET /api/v4/license/client ay nanatili para sa mga client na humihingi. Ang ilang app na nakabuo para sa mga bayad na edisyon ng Mattermost ay nagbabasa ng lisensya sa kanilang sarili at tumatanggi na tumakbo.
  • Mga pangalan. Ang mga Team ay tinatawag na community sa interface, ngunit ang API at ang code ay nananatiling team. Ang mga environment variable ay gumagamit ng AM_ prefix, ang command-line tool ay amctl at ang server binary ay antimatter.

Saan nakatira ang code

Lahat ay open source, sa organisasyong AntimatterChat sa GitHub. Bawat repository ay gumagana sa main branch nito.

RepositoryLaman nito
antimatterAng server (Go, nasa server/), ang dalawang web interface (webapp/fusion at webapp/channels), ang TypeScript client, at ang amctl.
antimatter-dockerAng mga Docker image, kasama ang mga bundled na app, at ang mga compose file.
antimatter-plugin-*Isang repository para sa bawat bundled na app: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents, at metrics.
gifs-serverAng self-hosted na serbisyo para sa GIF at sticker na ginagamit ng GIFs app.
desktop-app, mobile-app, push-proxyAng mga desktop at mobile app, at ang serbisyo na nagpapadala ng mga push notification sa mga telepono.
antimatter.chatAng website na ito at ang dokumentasyon nito.
communityMga issue at diskusyon para sa bawat bahagi ng Antimatter.

Bago magsimula

  • Kumuha ng test server. Ang pinakamabilis ay ang Docker image: tingnan ang Pag-install ng Antimatter. Para magtrabaho sa Antimatter mismo, tingnan ang Pag-build mula sa source.
  • Suriin kung ano ang pinapayagan ng server. Ilang integration feature ay off sa default at nangangailangan ng system admin: personal access tokens, bot accounts, username at icon overrides, at pag-upload ng mga app. Bawat page ay nagpapakita ng kailangang setting.
  • Alamin ang URL ng iyong site. Ginagamit ng mga halimbawa ang https://chat.example.com. Palitan ito ng address ng iyong server.

Sa gabay na ito

  • Ang REST API: authentication, pangunahing resources, pagination, errors, rate limits, ang WebSocket, client libraries, at mga dagdag ng Antimatter.
  • Mga Webhook: incoming at outgoing webhooks, payloads, attachments at cards.
  • Mga Slash command: custom commands, ang kanilang request at response, autocomplete.
  • Mga Bot at interactive messages: bot accounts, buttons, menus at dialogs.
  • Pagsulat ng mga app: layout ng plugin, server hooks, web app registry, Fusion, mga setting, storage, translations at packaging.
  • Pag-build mula sa source: ang server, mga web interface, ang Docker image at mga app.
  • Pag-contribute: issues, pull requests, style, translations, security at licenses.
Malugod ang mga tanong sa community discussions. I-report ang mga bug sa community issues.