
Језик 🇷🇸 Српски
Позадина
Упутство за почетак
Распоређивање
Архитектура
Инсталација и интеграција
Савети за безбедност
Хостовање FastComments на локалним серверима
FastComments пружа неколико решења за распоређивање. Најчешће је где ми хостујемо апликацију за вас.
Међутим, разумемо да неки купци не могу да чувају своје податке у облаку, и захтевају хостовање свих својих података на локалним серверима.
Ова документација покрива тај случај употребе.
Шта је укључено 
FastComments On Prem вам омогућава да размествујете наше решење за коментаре уживо, укључујући све алате за модерацију и административне алате, на свом хардверу.
Ово значи да имате контролу над својим подацима, и систем коментарисања може бити ограничен на вашу локалну LAN или корпоративну мрежу.
Где почети 
Да бисте започели распоређивање FastComments On Prem, обратите нам се.
Након подешавања, увек можете преузети најновију docker image са странице лиценцирања.
Инстанце 
Required Components
За On-Prem, FastComments се састоји само од апликационог сервера и базе података. Поједноставили смо размештање тако да апликација може обслуживати сав саобраћај директно без додавања других компоненти.
Апликациони сервер је обезбеђен у Docker имиджу и може се размештати помоћу било ког решења за управљање контејнерима.
База података, MongoDB, може се покретати самостално или бити хостована код другог провајдера као што су AWS DocumentDB или MongoDB Atlas.
FastComments је тренутно тестирано са MongoDB 7, међутим циљ нам је да буде компатибилно са DocumentDB како бисмо олакшали размештање.
Instance Sizes
Установићете да је FastComments прилично добро оптимизован и да за саму апликацију не захтева велике машине да би одржао ниске P99 вредности.
Сви батч и cron задаци користе стриминг да би ограничили укупну употребу меморије.
Доње табеле за апликациони сервер и базу података могу помоћи при одређивању величине.
Application Server Instances
| Конкурентни корисници | Укупни CPU-ови у кластеру | Укупна меморија кластера |
|---|---|---|
| 100 | 1 | 256mb |
| 1K | 2 | 512mb |
| 10K | 8 | 1gb |
| 100K | 32 | 8gb |
| 1M | 64 | 64gb |
На пример, једно језгро које служи око 100 нитова коментара у секунди обично никада не користи више од 250mb RSS.
Database Server Instances
Размер базе података зависи од величине радног сета (working set), што је количина података којој приступате у одређеном тренутку, као и од конкуретних захтева.
FastComments је прилично благ према Mongo-у, јер за „вреле“ упите користи index hints, streaming cursors, и има ограничења у погледу конкурентности у различитим областима како би спречио преоптерећење низводних система.
Следеће представља опште смернице за величину инстанци базе података. Имајте у виду да је ово по инстанци, а не укупни ресурси у кластеру.
| Конкурентни корисници | Сачувани коментари | CPU-ови по инстанци | Меморија по инстанци |
|---|---|---|---|
| 100 | 1k | 1 | 256mb |
| 1K | 5k | 2 | 512mb |
| 10K | 100k | 8 | 2gb |
| 100K | 500k | 16 | 8gb |
| 1M | 5M | 32 | 32gb |
Горње табеле су конзервативне процене. Можда ћете утврдити да се стварни захтеви разликују у зависности од ваше конкретне конфигурације (великина страница, запремина коментара итд.).
Конфигурација 
FastComments користи променљиве окружења за конфигурацију. Следећа листа наводи све подржане променљиве које су релевантне за On-Prem.
| Променљива | Подразумевано | Информације | Обавезно | Примери или валидне вредности |
|---|---|---|---|---|
| NODE_ENV | Тип окружења. | Yes | production, dev | |
| MONGO_URI | DB Connection URI. | Yes | ||
| MONGO_ENABLE_SSL | false | Омогућава коришћење SSL-а за повезивање са базом података. | No | true, false |
| MONGO_ENABLE_SSL_VALIDATE | false | Омогућава валидацију сертификата у односу на CA када се повезује на Mongo. | No | true, false |
| MONGO_SSL_CA | Mongo SSL CA pem фајл. | No | /path/to/some-cert.pem | |
| ADMIN_NOTIFICATIONS_EMAIL | Email на који би требало да стижу важне системске обавештења. | No | admin-group@bigcorp.com | |
| IP_HASH_SALT | Салт за хеширање IP адреса. | Yes | ||
| SESSION_SECRET | Кључ који се користи за потписивање сесија. | Yes | ||
| SESSION_STORE_SECRET | Кључ који се користи за потписивање/хеширање сесија у складишту. Мора се разликовати од SESSION_SECRET. | Yes | ||
| HOSTNAME | Име хоста на којем је FastComments размењен (админски панел итд). НЕ сме да садржи порт или протокол. | Yes | example.com | |
| HOST_ADDR | Приступачан URI где је FastComments размењен (админски панел итд). | Yes | https://example.com | |
| EMAIL_CONFIG_PATH | Путања на локалном фајл систему где се налази email конфигурација (SMTP, мапирање домена/провајдера итд). | Yes | /my/config.json | |
| EMAIL_DEFAULT_FROM_NAME | FastComments Robot | Заглавље "From Name" у имејлу. | No | My Company Name |
| EMAIL_DEFAULT_FOOTER_LOGO | /images/logo-32-2020-01.png | Лого у подножју имејла. | No | https://exmaple.com/footer.png |
| EMAIL_DEFAULT_TRANSPORT | Замена за "defaultTransport" у EMAIL_CONFIG_PATH. Корисно за распоређивање исте конфигурационе датотеке у различитим окружењима. | No | myTransportName | |
| ON_PREM_TENANT_ID | ИД вашег налога на fastcomments.com. Користи се за регистрацију вашег лиценцног кључа. | No | ||
| ON_PREM_LICENSE_KEY | Лиценцни кључ за on-prem инсталацију. | No | ||
| GIPHY_API_KEY | Giphy API кључ. Ако није наведен, требало би да направите правило конфигурације које онемогућава бирач GIF-ова. | No | ||
| GIPHY_DEFAULT_RATING | pg | Користи се за Giphy интеграцију. Такође може бити промењен правилима прилагођавања виџета. | No | g, pg, pg-13, r |
| OPENAI_SECRET_KEY | Користи се за OpenAI могућности као што су опционална GPT-базирана детекција спама. | No | ||
| CDN_HOST_ADDR | Име хоста са којег ће се преузимати ресурси. По подразумеваној вредности користи се вредност HOSTNAME. | No | example.com | |
| LARGE_FILE_HOST_ADDR | Име хоста са којег се преузимају велики фајлови (као што су експорти). По подразумеваној вредности користи се вредност CDN_HOST_ADDR. | No | example.com | |
| LARGE_FILE_LOCATION_TYPE | local_disk | Где треба да се чувају велики фајлови, као што су експорти. | No | local_disk, s3 |
| FROM_EMAIL_HOST | Име хоста са којег треба да се шаљу имејлови. | No | example.com | |
| COOKIE_ID | fastcomments.sid | Име fastcomments колачића. | No | |
| COOKIE_HOSTNAME | .fastcomments.com | Вредност поља "hostname" у колачићу. Препоручује се да има префикс са тачком. | No | .example.com |
| S3_ACCESS_KEY | Користи се за корисничка отпремања фајлова, аватаре итд. По подразумеваној вредности користи локални фајл систем ако није дефинисано. | No | ||
| S3_SECRET_KEY | Користи се за корисничка отпремања фајлова, аватаре итд. | No | ||
| S3_REGION | Користи се за корисничка отпремања фајлова, аватаре итд. | No | ||
| S3_BUCKET | Користи се за корисничка отпремања фајлова, аватаре итд. | No | ||
| S3_HOST | Користи се за корисничка отпремања фајлова, аватаре итд. | No | ||
| CACHE_DIR | Локација за чување опционалног офлајн кеша, за случај када БД није доступна. Периодично се освежава са 100 најактивнијих тема коментара. | No | ||
| BACKUP_DIR | Локација за чување података за случај када БД није доступна. Ако се коментар пошаље када је БД недоступна, он се овде чува и касније обрађује. | No |
Имајте у виду да све променљиве везане за домене користе суфиксе _HOST или _ADDR. Разлика је:
_HOST:example.com_ADDR:https://example.com
Путanja у EMAIL_CONFIG_PATH треба да садржи путању до JSON фајла са следећим примером формата:

У горњем примеру дефинишемо подразумевани SMTP имејл транспорт под називом mailgun. Такође дефинишемо посебан транспорт који користимо специфично за имејлове са @yahoo.com. У неким сценаријима је пожељно користити специфичног провајдера или IP за слање за одређени домен како би се подесила испорука. Ово је опционално.
DocumentDB
Када се повезујете на DocumentDB, желећете да наведете MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem да бисте били компатибилни са подразумеваним подешавањима.
Недоступност базе података и режим одржавања 
FastComments подржава аутоматски режим одржавања. Ако база података падне, апликација може наставити да пружа популарне нитове коментара.
Поред тога, у режиму одржавања сви коментари се чувају у BACKUP_DIR. Они ће бити обрађени (проверани на спам итд.) и сачувани када систем поново буде доступан.
То ради тако што, сваки сат, одређује 100 најпопуларнијих нити коментара и кешира њихов садржај на диск. Одређивање 100 најпопуларнијих нити већ се врши из претходно израчунатог стања, па то није тежак периодични задатак.
Ово је потпуно опционo и омогућава се само ако су подешени CACHE_DIR и BACKUP_DIR. Ово, наравно, чини нодове апликације стањним, међутим то је стање које
може бити изгубљено у било ком тренутку без изазивања неправилног понашања апликације.
Имајте у виду да у режиму одржавања није могуће правилно аутентификовати нитове коментара, тако да се периодично праве резервне копије само оних нити које се безбедно сматрају јавним.
У режиму одржавања многе функције нису доступне.
Закључавања 
Као и сваки расподељени систем, FastComments треба неки механизам за закључавање ресурса и процедура. Ова закључавања могу се пратити преко ендпоинта /locks-in-progress.
На пример, ево ендпоинта на нашем US шарду.
Ово може бити корисно да се види зашто је систем закочен или под оптерећењем. Ако, на пример, SRE жели да види зашто систем има високо оптерећење CPU-а, може да провери овај ендпоинт да би добио име cron задатка који се понаша неправилно.
Код виџета 
Фрагменти фронт-енд кода и библиотеке за On-Prem су исти као и за SaaS производ. Међутим, морате да наведете apiHost и тачан пут до скрипте:

Горњи пример је веома једноставан. Такође можемо користити 1st-party библиотеке за React, Angular, Vue, Svelte итд.
АПИ 
Приступ API-ју је могућ на исти начин као и код редовног SaaS производа: пријавите се у On-Prem контролни панел да бисте креирали API кључеве и користили те кључеве за приступ API-ју. API endpoints су исти on-prem као и за SaaS производ.
Више домена 
Ваша On-Prem FastComments инсталација може да служи коментаре за више унутрашњих домена, на пример app.mycorp.org и hr.mycorp.org.
Можете да их конфигуришете
посебно али их хостовати на једном On-Prem setup-у креирањем појединачних Customization Rules како бисте конфигурисали њихова појединачна понашања.
У закључку
Дошли сте до краја документације за On Prem. Обавестите нас о даљим коментарима или питањима која имате испод - можете такође нам се обратити путем странице за подршку.