
Језик 🇷🇸 Српски
Позадина
Упутство за почетак
Распоређивање
Архитектура
Инсталација и интеграција
Савети за безбедност
Локална инсталација
Хостовање FastComments на локалним серверима
FastComments пружа неколико решења за распоређивање. Најчешће је где ми хостујемо апликацију за вас.
Међутим, разумемо да неки купци не могу да чувају своје податке у облаку, и захтевају хостовање свих својих података на локалним серверима.
Ова документација покрива тај случај употребе.
Шта је укључено 
FastComments On Prem вам омогућава да размествујете наше решење за коментаре уживо, укључујући све алате за модерацију и административне алате, на свом хардверу.
Ово значи да имате контролу над својим подацима, и систем коментарисања може бити ограничен на вашу локалну LAN или корпоративну мрежу.
Где почети 
Да бисте започели распоређивање FastComments On Prem, обратите нам се.
Након подешавања, увек можете преузети најновију docker image са странице лиценцирања.
Инстанце 
Потребне компоненте
За On-Prem, FastComments се састоји само од апликационог сервера и базе података. Поједноставили смо примену тако да апликација може да опслужује сав саобраћај директно, без додавања других компоненти.
Апликациони сервер се испоручује као Docker слика и може се применити са било којим решењем за управљање контејнерима.
База података, MongoDB, може бити самостално покренута или хостована од стране другог провајдера као што су AWS DocumentDB или MongoDB Atlas.
FastComments се тренутно тестира са MongoDB 7, међутим тежимо ка DocumentDB компатибилности како бисмо олакшали примену.
Величине инстанци
Уочићете да је FastComments прилично добро оптимизован и не захтева велике машине за саму апликацију како би одржао ниске P99 вредности.
Сви batch и cron послови користе streaming како би ограничили укупну потрошњу меморије.
Табеле испод за апликациони сервер и базу података могу помоћи при одређивању величине.
Инстанце апликационог сервера
| Конкурентни корисници | Укупно CPU-ја у кластеру | Укупна меморија кластера |
|---|---|---|
| 100 | 1 | 256mb |
| 1K | 2 | 512mb |
| 10K | 8 | 1gb |
| 100K | 32 | 8gb |
| 1M | 64 | 64gb |
На пример, једно језгро које опслужује око 100 коментарских ништи у секунди обично никада не користи више од 250mb RSS.
Инстанце сервера базе података
Одређивање величине базе података зависи од величине радног скупа, односно количине података којима приступате у датом тренутку, као и од конкурентних захтева.
FastComments је прилично благ према Mongo-у, у томе што за hot упите користи index hints, streaming курсоре, и има лимите конкурентности у различитим областима како би спречио преоптерећење низводних система.
Испод је општа смерница за величине инстанци базе података. Имајте у виду да се ово односи на по инстанци, а не на укупне ресурсе у кластеру.
| Конкурентни корисници | Сачуваних коментара | 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 и исправну путању скрипте:

Горњи пример је веома једноставан. Такође можемо користити званичне 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. Обавестите нас о даљим коментарима или питањима која имате испод - можете такође нам се обратити путем странице за подршку.