Antimatter'ın Kurulumu
Antimatter'ı hazır compose dosyası, bir sürümün .deb veya .rpm paketi veya bir sürüm arşivi ile yükleyin. Ardından ilk yönetici hesabını oluşturun.
Docker Compose ile Kurulum
Bu, önerilen yöntemdir. Tek bir compose dosyası Antimatter'ı, PostgreSQL'i, dosya depolamayı ve GIF hizmetini çalıştırır. Docker Engine ve Compose eklentisi (docker compose) olan, 2 CPU çekirdeği ve 4 GB veya daha fazla belleğe sahip bir Linux sunucuya ihtiyacınız var.
1. Compose dosyasını indirin
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. .env dosyasını oluşturun
Compose dosyası ayarlarını aynı dizindeki .env dosyasından okur. Rastgele gizli anahtarlarla oluşturun:
cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
chmod 600 .env
SITE_URL değerini, insanların tarayıcılarına yazacakları adrese ayarlayın; örneğin yerel bir ağda http://192.168.1.20:8065 veya bir alan adı ile https://chat.example.com. .env dosyasını saklayın: veritabanı ve depolama, bu dosyadaki şifreleri ilk başlatmadan itibaren kullanır, yapay zeka model bağlantılarının API anahtarları AM_AI_ENCRYPTION_KEY ile şifrelenir ve bir yedeği geri yüklemek için aynı dosyaya ihtiyacınız vardır.
3. Başlatın
docker compose up -d
docker compose ps
İlk başlatma bir-iki dakika sürer: PostgreSQL veritabanını oluşturur, tek seferlik bucket hizmeti depolama kovasını oluşturur, tek seferlik gifs-stickers hizmeti başlangıç çıkartma paketini içe aktarır ve Antimatter tablolarını oluşturur. docker compose logs -f antimatter komutuyla ilerlemeyi izleyin.
Baştan bir alan adı ve HTTPS kullanmak için Alan Adı ve HTTPS bölümüne bakın: compose dosyasıyla bu, .env dosyasına iki satır daha eklemek ve https profilini kullanmaktan ibarettir.
.env değişkenleri
| Değişken | Varsayılan | Ne işe yarar |
|---|---|---|
SITE_URL | zorunlu | Antimatter'ın herkese açık adresi (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | zorunlu | antimatter veritabanı kullanıcısının şifresi. |
S3_SECRET_KEY | zorunlu | Dosya depolamanın gizli anahtarı. |
GIFS_API_KEY | zorunlu | Antimatter'ın GIF hizmetini çağırmak için kullandığı anahtar. |
AM_AI_ENCRYPTION_KEY | boş | Yapay zeka model bağlantılarının API anahtarlarını şifreleyen anahtar (openssl rand -base64 32). Boş bırakılırsa: sunucu, data hacminde bir anahtar dosyası oluşturur. Şifreleme anahtarı bölümüne bakın. |
GIFS_UPLOAD_KEY | boş | Kişilerin seçiciden kendi GIF'lerini ve çıkartmalarını eklemesine ve bunları silmesine olanak tanır. Boş bırakılırsa yüklemeler devre dışı bırakılır. |
DOMAIN | boş | https profili için alan adınız. |
HTTP_PORT | 8065 | Antimatter'ın web sunucusunun ana makine portu. |
CALLS_PORT | 8443 | Arama ses ve görüntüsünün UDP ve TCP portu. |
EDGE_SUBNET | 172.29.71.0/28 | Caddy ve Antimatter arasındaki ağın alt ağı. Kendi ağlarınızdan biriyle örtüşüyorsa değiştirin. |
TZ | UTC | Konteynerlerin saat dilimi. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Çalıştırılacak Antimatter görüntüsü (aşağıya bakın). |
Ne çalışıyor
| Hizmet | Görüntü | Rol |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Sunucu, web uygulaması ve dahili uygulamalar. HTTP_PORT ve CALLS_PORT yayınlar. Veri dizini, data hacmidir. |
postgres | postgres:17-alpine | postgres hacmindeki veritabanı. |
files | rustfs/rustfs | Yüklenen dosyalar ve kurulan uygulamalar için S3 uyumlu depolama, files hacminde. |
bucket | amazon/aws-cli | antimatter kovasını oluşturur, ardından çıkar. |
gifs | ghcr.io/antimatterchat/gifs-server | GIF ve çıkartma servisi, gifs hacminde. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | İlk çalıştırmada başlangıç çıkartma paketini içe aktarır, ardından çıkar. |
https | caddy:2-alpine | Yalnızca https profiliyle: 80 ve 443 portlarında HTTPS. |
PostgreSQL, depolama ve GIF servisi, yalnızca Antimatter'in katıldığı, internet erişimi olmayan dahili bir ağda (private) bulunur. Bunların hiçbiri port yayınlamaz.
Antimatter konteyneri diske hiçbir şey kaydetmez: ayarları veritabanındadır (AM_CONFIG bu veritabanına işaret eder) ve dosyaları ile uygulamaları depolama hizmetindedir. Konteyneri istediğiniz zaman kaldırıp yeniden oluşturabilirsiniz. data hacmi, yalnızca AM_AI_ENCRYPTION_KEY boş olduğunda sunucunun oluşturduğu yapay zeka şifreleme anahtar dosyasını barındırır. Yedeklenmesi gereken her şey postgres, files, gifs ve data hacimlerinde, ayrıca .env dosyanızda bulunur.
Bir görüntü seçin
İki Antimatter görüntüsü yayınlanmaktadır; her ikisi de linux/amd64 ve linux/arm64 için, her iki de her deponun main dalından derlenmiştir:
| Görüntü | Paketlenmiş uygulamalar | Etiketler |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Ajanlar, Aramalar, GitHub, GitLab, Jira, Kanban, Metrikler ve Playbook'lar. | latest, sürümler için X.Y.Z, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Bunlara ek olarak Ses kanalları, Anketler, E-posta, Takvim, Notlar, Beyaz tahta, GIF'ler, Yapılacaklar ve Memeler. Her gece yeniden derlenir. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Web sitesinin compose dosyası antimatter-next kullanır, çünkü GIF servisi ve bu sitede anlatılan uygulamaların çoğu yalnızca bu görüntüde mevcuttur. Görüntüyü değiştirmek için .env içinde ANTIMATTER_IMAGE değerini ayarlayın ve docker compose up -d komutunu çalıştırın.
latest etiketi sizin altında değişir. Üretim ortamında, nightly-20261015 veya sha-<commit> gibi bir etiketi sabitleyin ve yükseltme yaptığınızda bunu bilinçli olarak değiştirin. Sunucu başlatıldığında veritabanını yükseltir; bu nedenle, daha önce alınmış bir yedeği geri yüklemeden, daha eski bir görüntüye veya antimatter-next'ten antimatter'e geri dönemezsiniz. Yedeklemeler ve yükseltmeler bölümüne bakın.Görüntünün içinde
- Sunucu
/antimatterdizininde bulunur;antimatterveamctlikili dosyaları/antimatter/bindizininde yer alır (PATHüzerinde). - Yalıtılmış bir kullanıcı olarak (
antimatter, uid 2000) kabuk içermeyen, minimal bir distroless taban üzerinde çalışır. - Portlar: 8065 (web ve API), 8067 (metrikler), 8074 (küme), 8443 UDP ve TCP (aramalar).
- Yerel mod (
ServiceSettings.EnableLocalMode) etkin olduğundan, konteyner içindeamctl --localçalışır. Sağlık denetimiamctl system status --localkomutunu çalıştırır. - Paketle gelen uygulamalar
/antimatter/prepackaged_pluginsdizininde bulunur ve Antimatter uygulama imzalama anahtarıyla imzalanmıştır. - Metin çıkarma araçları (
pdftotext,wvText,unrtf,tidy) dahildir; böylece yüklenen belgelerin içeriği aranabilir.
Diğer compose dosyaları
antimatter-docker deposunda, deploy/compose/ dizininde bir üretim kurulumu bulunur: kendi sertifikalarınız veya Let's Encrypt (certbot) ile nginx, PostgreSQL, isteğe bağlı GIF servisi (gifs profili) ve sunucunun yapılandırması, verileri ve günlükleri için adlandırılmış hacimler; bunlar README'de belgelenmiştir. Varsayılan olarak kararlı (stable) görüntüyü kullanır ve dosyaları S3 depolama yerine yerel bir hacimde saklar. Caddy yerine nginx tercih ediyorsanız veya zaten sertifikanız varsa bunu kullanın.
İlk yöneticiyi oluşturun
Tarayıcınızda SITE_URL adresini açın ve bir hesap oluşturun. Yeni bir sunucuda oluşturulan ilk hesap sistem yöneticisi olur; ardından kurulum, ilk topluluğunuzu (Antimatter'ın takım veya çalışma alanı için kullandığı ad) oluşturma sürecinde size rehberlik eder.
Bunu ilk başlatmadan hemen sonra yapın; o zamana kadar sunucuya ilk ulaşan kişi onun yöneticisi olur. Hesabı komut satırından oluşturmak isterseniz, sunucuya dışarıdan erişilebilir hale gelmeden önce şunu yapın:
docker compose exec antimatter amctl --local user create --system-admin --email-verified \
--email admin@example.com --username admin --password 'a-long-password'
docker compose exec antimatter amctl --local team create --name main --display-name "Main"
docker compose exec antimatter amctl --local team users add main admin
Ardından SITE_URL adresinde oturum açın. Komutu bir boşlukla başlatarak şifrenizin kabuk geçmişinize (shell history) kaydedilmesini önleyin (HISTCONTROL=ignorespace ile) veya oturum açtıktan sonra şifrenizi değiştirin.
İçeride olduğunuzda sonraki adımlar:
- Bir şirket veya kuruluş için Yeni topluluk türü ayarını Çalışma alanı olarak belirleyin ve zaten oluşturduğunuz bir topluluğun türünü ayarlarından değiştirin: Çalışma alanı veya topluluk.
- Kimlerin hesap oluşturabileceğine karar verin: Oturum açma ve hesaplar.
- Davetlerin ve şifre sıfırlamaların çalışması için e-postayı yapılandırın: E-posta ve push bildirimleri.
- Arama portunu güvenlik duvarınızda açın: Aramalar ve ses.
- Hangi uygulamaların etkin olduğunu kontrol edin: Paketle gelen uygulamalar.
Bir sürüm indirin
Docker olmadan, Antimatter'ı GitHub'taki bir sürümün dosyalarından yükleyin: github.com/AntimatterChat/antimatter/releases. Her sürümün 0.9.0 gibi bir sürüm numarası vardır ve etiketi, başında v olan aynı numaradır (v0.9.0).
0.9.0-rc.1, GitHub'da Pre-release olarak işaretlenir. Bunlar, nihai sürümden önce yayımlanan test sürümleridir.Her sürüm, amd64 ve arm64 sunucular için şu dosyaları içerir:
| Dosya | İçeriği |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Debian, Ubuntu ve bunlara dayalı dağıtımlar için paket. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Fedora, RHEL ve RHEL ile uyumlu dağıtımlar için paket. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Herhangi bir Linux dağıtımı için, elle yapılandırılan sürüm arşivi. |
SHA256SUMS | Sürümdeki her dosyanın SHA-256 denetim toplamı. |
Paketler ve arşiv aynı programı içerir: sunucu (antimatter), komut satırı aracı (amctl), her iki web uygulaması (varsayılan arayüz ve klasik arayüz), paketlenmiş uygulamalar, e-posta şablonları ve çeviriler. Paketler bir systemd hizmeti ve bir ayar dosyası ekler; bu nedenle her biri tek adımda kurulum sağlar: yalnızca bir PostgreSQL veritabanı eklemeniz yeterlidir. Ayrı binary indirmeleri yoktur: binary'ler arşivde, antimatter/bin/ dizininde bulunur. Statik olduklarından, kendi mimarilerinde herhangi bir Linux dağıtımında çalışırlar.
Paket adlarında, ön sürüm (prerelease) sürüm numarasındaki tire, paket yöneticisinin ön sürümü nihai sürümden önce sıralaması için tildeye (~) dönüşür: 0.9.0-rc.1 sürümü antimatter_0.9.0~rc.1-1_amd64.deb ve antimatter-0.9.0~rc.1-1.x86_64.rpm adlarını verir. Arşivde tire korunur.
antimatter version komutu, sürüm numarasını Yapım numarası olarak, bu sürümün oluşturulduğu commit'i ise Yapım karması olarak gösterir. Sürüm satırı, Antimatter'in dayandığı Mattermost serisinin sürümüdür.
İndirilen dosyayı doğrulayın
İhtiyacınız olan dosyayı ve SHA256SUMS dosyasını, sürüm sayfasından veya curl ile aynı dizine indirin, ardından dosyayı doğrulayın:
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/antimatter_<version>-1_amd64.deb
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
İndirdiğiniz her dosya OK olarak listelenmelidir. Başka bir sonuç, dosyanın hasarlı veya eksik olduğunu gösterir: dosyayı yeniden indirin ve kurmayın. SHA256SUMS imzalı değildir: yalnızca hasarlı indirmeleri tespit eder ve GitHub'dan HTTPS üzerinden yapılan indirmeden daha fazla bir şey kanıtlamaz.
.deb veya .rpm paketini yükleyin
Paket, Antimatter'i bir systemd hizmeti olarak yükler; çalışmaya başlaması için yalnızca bir veritabanına ihtiyaç duyar. systemd kullanan 64 bit Debian, Ubuntu, Fedora veya RHEL uyumlu bir sunucuda kullanın.
Paketin yükledikleri
| Yol | İçeriği |
|---|---|
/opt/antimatter | Program: bin/antimatter, bin/amctl, web uygulamaları (client/, client-fusion/), paketlenmiş uygulamalar (prepackaged_plugins/), şablonlar, çeviriler ve yazı tipleri. Her yükseltme bunu değiştirir. |
/etc/antimatter/antimatter.env | Hizmetin ayarları, AM_ değişkenleri olarak: veritabanı, site URL'si, GIF hizmeti. Sadece root tarafından okunabilir. Yükseltmeler bunu korur. |
/etc/antimatter/config/config.json | Yapılandırma dosyası, sunucunun Sistem Konsolu'nda değiştirilen ayarları kaydettiği yer. İlk kurulumda /opt/antimatter/defaults/config.json dosyasından oluşturulur ve sonrasında asla değiştirilmez. |
/var/lib/antimatter | Yüklenen dosyalar (data/) ve kurulan uygulamalar (plugins/, client-plugins/). |
/var/log/antimatter | Günlük dosyaları, dosya günlüğünü etkinleştirirseniz. Varsayılan olarak kapalıdır: günlükler journal'a yazılır. |
/usr/lib/systemd/system/antimatter.service | Hizmet. |
/usr/bin/amctl | /opt/antimatter/bin/amctl adresine bir bağlantı. |
Sunucunun /opt/antimatter içinde yazdığı dizinler (config, data, plugins, client/plugins ve logs), /etc/antimatter, /var/lib/antimatter ve /var/log/antimatter adreslerine bağlanmıştır. Böylece /opt/antimatter dizinini değiştiren bir yükseltme, verilerinize asla dokunmaz. Paket ayrıca sunucuyu çalıştıran ve bu dizinlerin sahibi olan antimatter sistem kullanıcısını da oluşturur.
Paket ca-certificates paketine bağımlıdır. PostgreSQL (Debian ve Ubuntu'da postgresql, Fedora ve RHEL'de postgresql-server), media-types (.rpm için mailcap) ve kendi sürümüne sahip GIF hizmeti olan gifs-server paketlerini önerir (aşağıda bkz. GIF hizmeti). apt ve dnf, önerilen paketleri bulduğunda bunları kurar. poppler-utils, wv, unrtf ve tidy paketlerini de önerir (.rpm için wv önerilmez): bu paketler, yüklenen belgelerin metnini çıkarır, böylece arama bu belgelerin içindeki kelimeleri de bulabilir. Bu özelliği istiyorsanız kendiniz kurun.
1. Paketleri kurun
Mimarinize uygun Antimatter paketini ve GIF hizmeti paketini indirin, yukarıda gösterildiği gibi doğrulayın ve gifs-server önerisini karşılamak için (dağıtımların depolarında bulunmaz) her ikisini de tek bir komutla kurun:
# Debian, Ubuntu
sudo apt install ./antimatter_<version>-1_amd64.deb ./gifs-server_*_amd64.deb
# Fedora, RHEL
sudo dnf install ./antimatter-<version>-1.x86_64.rpm ./gifs-server-*.x86_64.rpm
./ ifadesini koruyun: bu, apt ve dnf'ye yerel bir dosyayı yüklemesini söyler. GIF hizmetini yüklememek için paketini dışarıda bırakın. Paket antimatter hizmetini etkinleştirir ancak başlatmaz ve sonraki adımları görüntüler.
2. Veritabanını oluşturun
Antimatter, bu sunucuda veya başka bir sunucuda PostgreSQL 15 veya daha yeni bir sürüm gerektirir. Dağıtımınızın PostgreSQL sürümünü psql --version ile kontrol edin. Daha eskiyse, PostgreSQL projesinin kendi depolarından daha yeni bir sürüm yükleyin veya başka bir sunucudaki bir veritabanını kullanın. Debian ve Ubuntu'da postgresql paketi veritabanını başlatır. Fedora ve RHEL'de önce oluşturun ve başlatın:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Ardından Antimatter için bir kullanıcı ve bir veritabanı oluşturun:
sudo -u postgres psql -c "CREATE USER antimatter WITH PASSWORD 'a-long-password'"
sudo -u postgres psql -c "CREATE DATABASE antimatter OWNER antimatter"
PostgreSQL, 127.0.0.1 adresinden şifreli bağlantıları kabul etmelidir: pg_hba.conf dosyasının host satırları, scram-sha-256 yöntemiyle.
3. Veritabanını ve site URL'ini ayarlayın
/etc/antimatter/antimatter.env dosyasını düzenleyin (sudoedit /etc/antimatter/antimatter.env). Kullandığınız satırların başındaki # işaretini kaldırın ve veritabanını ile insanların açacağı adresi ayarlayın:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
Yapılandırmanın herhangi bir ayarı, bu dosyaya AM_<SECTION>_<SETTING> biçiminde eklenebilir: örneğin, SqlSettings.DataSource için AM_SQLSETTINGS_DATASOURCE. Burada ayarlanan bir değer Sistem Konsolu'ndan değiştirilemez. Yapılandırma bölümüne bakın. Her değişiklikten sonra sunucuyu yeniden başlatın: sudo systemctl restart antimatter.
Hizmet ayrıca birkaç varsayılan değeri de ayarlar; bunlar antimatter.env içindeki bir satırla geçersiz kılınabilir: dosyalara kayıt kapalıdır (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false) ve yerel mod açıktır (AM_SERVICESETTINGS_ENABLELOCALMODE=true), böylece sunucuda amctl --local çalışır.
4. Başlatın
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
İlk başlatmada sunucu tablolarını oluşturur, ardından 8065 portunu dinlemeye başlar. http://<server>:8065 adresini, ters vekil yapılandırıldıysa alan adınızı (bkz. Alan adı ve HTTPS) açın ve hemen ilk hesabı oluşturun: bu hesap sistem yöneticisi olur. Bunun yerine komut satırından oluşturmak için, docker compose exec antimatter amctl --local yerine sudo -u antimatter amctl --local kullanarak İlk yöneticiyi oluşturma bölümündeki amctl komutlarını kullanın.
5. GIF görsellerini etkinleştirin
GIF görselleri uygulaması paketlenmiş ve etkin durumdadır; antimatter.env dosyası zaten aynı sunucudaki GIF hizmetine işaret etmektedir (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Ancak hâlâ hizmetin API anahtarına ihtiyacı vardır. gifs-server paketi, kurulum sırasında bir anahtar oluşturmuştur:
sudo systemctl start gifs-server-stickers # imports the sticker pack, about a minute and a half
sudo systemctl start gifs-server
sudo grep -v '^#' /etc/gifs-server/api-keys
Anahtarı antimatter.env dosyasına AM_GIFS_API_KEY=<key> olarak ekleyin ve Antimatter'ı yeniden başlatın veya Sistem Konsolu › Uygulama ekleri › GIF görselleri bölümünde API anahtarı alanına girin. GIF hizmeti başka bir sunucuda çalışıyorsa, AM_GIFS_SERVICE_URL değerini bu sunucunun adresine ayarlayın. Kullanıcıların kendi GIF'lerini ve çıkartmalarını ekleyebilmesi için bkz. GIF görselleri.
Hizmet
antimatterkullanıcısı olarak,/opt/antimatterdizininde çalışır ve/etc/antimatter/antimatter.envdosyasını okur. systemd, sunucu her çıktığında onu yeniden başlatır ve yeni bir sürümün veritabanı geçişleri uzun sürebildiğinden, başlatması için en fazla bir saat süre tanır.- Kayıtları (log) günlükte (journal) bulunur:
journalctl -u antimatter. - Hizmet güçlendirilmiştir:
/usrve/etcdizinleri sunucu için salt okunurdur (ancak/etc/antimatter/confighariç) ve/home,/rootveya/run/userdizinlerini göremez. Dosya depolama alanını (FileSettings.Directory) taşırsanız, bu dizinlerin dışında,antimatterkullanıcısına ait bir dizin seçin. - Yükseltmeler, hizmet dosyasını değiştirir. Bu dosyayı düzenlemek için, değişikliklerinizi ayrı bir dosyada saklayan
sudo systemctl edit antimatterkomutunu kullanın.
Paketi yükseltin
- Bir yedek alın (bkz. Yedekler ve yükseltmeler).
- Yeni paketi ve
SHA256SUMSdosyasını indirin ve doğrulayın. - Sunucuyu durdurun, eski paketin üzerine yeni paketi yükleyin ve yeniden başlatın:
sudo systemctl stop antimatter sudo apt install ./antimatter_<new version>-1_amd64.deb # or: sudo dnf install ./antimatter-<new version>-1.x86_64.rpm sudo systemctl start antimatter journalctl -u antimatter -f
Paket, sunucuyu kendisi yeniden başlatmaz. Bir yükseltme sonrasında Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter mesajını basar: sunucuyu önceden durdurmadıysanız, hemen yeniden başlatın. Yükseltme, /opt/antimatter dizinini ve servis dosyasını değiştirir; antimatter.env, config.json, /var/lib/antimatter ve günlükleri korur. Sunucu başlatıldığında veritabanını yükseltir ve paketlenmiş uygulamaların daha yeni sürümlerini yükler.
Yeni bir sürüm varsayılan antimatter.env dosyasını değiştirirse, apt mevcut sürümünüzü koruyup korumayacağınızı sorar: koruyun. dnf, mevcut dosyanızı korur ve yeni sürümü /etc/antimatter/antimatter.env.rpmnew olarak kaydeder. Yükseltmeler yalnızca ileriye doğrudur: daha yeni bir sürümün üzerine daha eski bir sürüm yüklemeyin.
Paketi kaldırma
sudo apt remove antimatter veya sudo dnf remove antimatter komutları servisi durdurup devre dışı bırakır ve programı kaldırır. Verileri (/var/lib/antimatter), yapılandırmayı (/etc/antimatter), veritabanını ve antimatter kullanıcısını korur: Antimatter'i tamamen kaldırmak için bunları kendiniz silin.
Paketlerde ve arşivde bulunan uygulamalar
Paketler ve arşiv, prepackaged_plugins/ dizininde bu uygulamaların en son imzalanmış sürümlerini içerir: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels ve Whiteboard. Sunucu sürümü oluşturulduğunda henüz bir sürümü yayınlanmamış olan uygulamalar hariç tutulur: ls /opt/antimatter/prepackaged_plugins komutu, sürümünüzün neleri içerdiğini gösterir. Memes ve Todo dahil edilir ancak etkinleştirilmez: Paketli uygulamalar bölümü, bunların nasıl yükleneceğini ve etkinleştirileceğini açıklar.
Docker görüntülerindeki diğer uygulamalar paketlerde veya arşivde yer almaz: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira ve Metrics. Her birini kendi sürüm sayfalarından yükleyin:
| Uygulama | Sürümler | Uygulama kimliği |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbook'lar | antimatter-plugin-playbooks | playbooks |
| E-posta | antimatter-plugin-mail | com.antimatterchat.mail |
| Takvim | antimatter-plugin-calendar | com.antimatterchat.calendar |
| GitHub | antimatter-plugin-github | github |
| GitLab | antimatter-plugin-gitlab | com.github.manland.mattermost-plugin-gitlab |
| Jira | antimatter-plugin-jira | jira |
| Metrikler | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Her uygulama sürümü, uygulamanın paketi (bir .tar.gz dosyası), imzası (aynı adına .sig eklenmiş) ve bir SHA256SUMS dosyası içerir. Bir uygulamayı yüklemek için yüklemelere izin verin, ardından paketi amctl ile ekleyin:
# 1. In /etc/antimatter/antimatter.env, add this line, then restart Antimatter
AM_PLUGINSETTINGS_ENABLEUPLOADS=true
sudo systemctl restart antimatter
# 2. Download the bundle where the antimatter user can read it, and install it
cd /tmp
curl -fLO https://github.com/AntimatterChat/antimatter-plugin-boards/releases/download/v<version>/<bundle>.tar.gz
sudo -u antimatter amctl --local plugin add <bundle>.tar.gz
sudo -u antimatter amctl --local plugin enable focalboard
Bu şekilde yüklenmiş bir uygulamayı yükseltmek için yeni paketi plugin add --force ile ekleyin: paket yükseltmeleri yalnızca paketlenmiş uygulamaları yükseltir. Sonraki adımda AM_PLUGINSETTINGS_ENABLEUPLOADS satırını tekrar kaldırabilirsiniz. Uygulamaları yüklemenin diğer yolları için Diğer uygulamaların yüklenmesi bölümüne bakın.
Uygulama imzaları
Uygulama paketleri Antimatter uygulama imzalama anahtarıyla imzalanır: her .tar.gz.sig dosyası, ilgili paketin ayrılmış GPG imzasıdır. Sunucu, paketlenmiş bir uygulamayı yüklemesinden önce bu imzaları denetler. Bir paketi kendiniz denetlemek için:
curl -fsSLO https://raw.githubusercontent.com/AntimatterChat/antimatter-docker/main/keys/antimatter-plugin-signing.asc
gpg --import antimatter-plugin-signing.asc
gpg --verify <bundle>.tar.gz.sig <bundle>.tar.gz
gpg, Antimatter Plugin Signing kaynağından iyi bir imza bildirmeli ve parmak izi 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45 olmalıdır. Anahtarın güvenilir bir imzayla onaylanmadığına dair de bir uyarı verir; kendiniz imzalamadığınız bir anahtar için bu normaldir. .sig dosyaları olmayan bir uygulama sürümü imzasızdır ve sürüm notlarında bu belirtilir.
Sürüm arşivinden yükleyin
Arşiv, antimatter-<version>-linux-<arch>.tar.gz (örneğin antimatter-0.9.0-linux-amd64.tar.gz), .deb veya .rpm paketleri olmayan bir dağıtım için ya da kendi yerleşiminiz için uygundur. İçinde bin/antimatter, bin/amctl, config/config.json, web uygulamaları (client/ ve client-fusion/), paketlenmiş uygulamalar (prepackaged_plugins/, yukarıda belirtildiği gibi), e-posta şablonları ve çeviriler bulunan tek bir antimatter/ dizini bulunur.
1. PostgreSQL'i hazırlayın
Antimatter yalnızca PostgreSQL'i destekler, sürüm 15 veya daha yeni (daha eski sürümler, logda bir hata ile başlar). Bir kullanıcı ve bir veritabanı oluşturun:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Arşivi açın ve yapılandırın
sudo tar -xzf antimatter-<version>-linux-amd64.tar.gz -C /opt
sudo useradd --system --user-group antimatter
sudo mkdir -p /opt/antimatter/data
sudo chown -R antimatter:antimatter /opt/antimatter
Sunucuyu veritabanına yönlendirin, bunun için /opt/antimatter/config/config.json dosyasını (SqlSettings.DataSource) veya ortam değişkenlerini kullanın ve site URL'ini ayarlayın:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
Arşivdeki config.json dosyası eksiksiz bir varsayılan yapılandırmadır; Sistem Konsolu'nda yaptığınız değişiklikler bu dosyaya geri kaydedilir. Yapılandırmayı veritabanında tutmak için bkz. Yapılandırma.
3. Hizmet olarak çalıştırın
/etc/systemd/system/antimatter.service içindeki bir systemd birimi:
[Unit]
Description=Antimatter
After=network.target postgresql.service
[Service]
Type=notify
User=antimatter
Group=antimatter
WorkingDirectory=/opt/antimatter
ExecStart=/opt/antimatter/bin/antimatter
EnvironmentFile=-/etc/antimatter.env
TimeoutStartSec=3600
Restart=always
RestartSec=10
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
AM_ değişkenlerinizi /etc/antimatter.env dosyasına (yalnızca root tarafından okunabilir) yerleştirin, ardından:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Sunucu 8065 portunu dinler. http://<server>:8065 adresini açın veya ters bir proxy yerleştirildikten sonra alan adınızı kullanın (bkz. Alan adı ve HTTPS) ve ilk hesabı oluşturun: bu hesap sistem yöneticisi olur.
bin/amctl, çalışan sunucuyu komut satırından yönetir. Sunucunun kendisinde, yerel mod aracılığıyla oturum açmadan çalışır: AM_SERVICESETTINGS_ENABLELOCALMODE=true değerini ayarlayın, ardından sudo -u antimatter /opt/antimatter/bin/amctl --local system status komutunu çalıştırın.
GIF'ler için GIF hizmetini (aşağıda) yükleyin ve paketlerin 5. adımında belirtildiği gibi AM_GIFS_SERVICE_URL ve AM_GIFS_API_KEY değerlerini ayarlayın.
GIF hizmeti ve itme vekili paketleri
GIF hizmeti ve push proxy'nin kendi sürümleri vardır ve sunucudakiyle aynı kuralları uygularlar: .tar.gz arşivi, amd64 ve arm64 için .deb ve .rpm paketi, ayrıca SHA256SUMS dosyası. Tire içeren sürümler ön sürümlerdir. İndirilen dosyaları, sunucudaki gibi sha256sum --check --ignore-missing SHA256SUMS komutuyla kontrol edin.
GIF hizmeti (gifs-server)
Sürümler: github.com/AntimatterChat/gifs-server/releases. Arşiv gifs-server-<version>-linux-<arch>.tar.gz adındadır; paketler gifs-server olarak adlandırılır.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Paket şunları yükler:
/usr/bin/gifs-servervegifs-serverkullanıcısı olarak çalışan, kataloğunu/var/lib/gifs-serveraltında tutangifs-serverhizmeti;- başlatıldığında
/usr/share/gifs-server/stickersiçindeki çıkartma paketini içe aktaran veya güncelleyen, ardından durangifs-server-stickershizmeti; - ayarları olan
/etc/gifs-server/gifs-server.env(güncellemelerde korunur,AM_GIFS_değişkenlerini içerir) ve/etc/gifs-server/api-keys(her satırda bir API anahtarı, ilk kurulumda rastgele bir anahtar oluşturulur).
127.0.0.1:8080 adresinde dinler, bu nedenle yalnızca aynı sunucudaki Antimatter'e erişebilir. Antimatter başka bir yerde çalışıyorsa, gifs-server.env içinde AM_GIFS_LISTEN=:8080 değerini ayarlayın ve porta erişimi güvenlik duvarınızla kısıtlayın. Dosya diğer ayarları da listeler: AM_GIFS_UPLOAD_KEYS (GIF ve çıkartma eklemeye ve bunlarla eklenenleri silmeye izin verilen anahtarlar), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY ve AM_GIFS_LOG_LEVEL. Paket ffmpeg, gifsicle, librsvg2-bin (.rpm için librsvg2-tools) ve bir DejaVu yazı tipini önerir: hizmet, dosyaları içe aktarırken veya alırken GIF, video ve çıkartma biçimlerini oluşturmak için bunları kullanır; bunlar olmadan da çalışır.
Sunucuda olduğu gibi, hizmet kurulumda etkinleştirilir ancak başlatılmaz. paketlerin 5. adımında gösterildiği gibi başlatın. Bir yükseltme sonrasında yeniden başlatın: sudo systemctl restart gifs-server. Paketi kaldırmak, kataloğu /var/lib/gifs-server altında korur.
Push proxy
Sürümler: github.com/AntimatterChat/push-proxy/releases. Arşiv antimatter-push-proxy-<version>-linux-<arch>.tar.gz adlı dosyadır; paketler antimatter-push-proxy olarak adlandırılır. Paket, /usr/bin/antimatter-push-proxy dosyasını ve antimatter-push-proxy hizmetini yükler. Bu hizmet, antimatter-push-proxy kullanıcısı olarak çalışır ve /etc/antimatter-push-proxy/antimatter-push-proxy.json dosyasını okur (güncellemeler sırasında korunur). Apple ve Firebase kimlik bilgileri /etc/antimatter-push-proxy/certs dizinine yerleştirilir: Anında bildirimler bölümü, bu bilgilerin nereden geldiğini açıklar.
sudo apt install ./antimatter-push-proxy_*_amd64.deb # or: sudo dnf install ./antimatter-push-proxy-*.x86_64.rpm
sudo install -o root -g antimatter-push-proxy -m 0640 \
AuthKey_ABCDE12345.p8 firebase-service-account.json /etc/antimatter-push-proxy/certs/
sudoedit /etc/antimatter-push-proxy/antimatter-push-proxy.json
sudo systemctl start antimatter-push-proxy
journalctl -u antimatter-push-proxy -f
Ayarlar dosyasında, yollar /etc/antimatter-push-proxy dizinine göre göreli olarak tanımlanır: örneğin "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" ve "ServiceFileLocation": "./certs/firebase-service-account.json". Ardından Antimatter'da Anında bildirim sunucusu ayarını http://<proxy host>:8066 olarak belirleyin. Bir güncelleme sonrasında hizmeti yeniden başlatın: sudo systemctl restart antimatter-push-proxy.
Diğer sunucu komutları
Sunucuyu çalıştırmak (antimatter veya antimatter server) dışında, ikili dosyasının birkaç bakım komutu vardır. Bu komutlar sunucuyla aynı yapılandırmayı okur.
| Komut | Ne işe yarar |
|---|---|
antimatter version | Sürümü, derleme numarasını, derleme tarihini ve derleme özetini (hash) yazdırır. |
antimatter db ping | Veritabanına erişilebilir olduğunu denetler. |
antimatter db init | Veritabanındaki yapılandırmayı oluşturur (AM_CONFIG değeri bir postgres:// URL'si olarak ayarlanmalıdır). |
antimatter db migrate | Sunucuyu başlatmadan veritabanı geçişlerini (migrations) uygular. |
antimatter db version | Veritabanına uygulanan son geçişi (migration) yazdırır. |
antimatter import bulk, antimatter export bulk | Toplu (bulk) biçiminde verileri içe veya dışa aktarır (bkz. Yedeklemeler ve yükseltmeler). |