FastComments.com

FastComments on-premises hosten

FastComments biedt verschillende oplossingen voor implementatie. De meest voorkomende is waar wij hosten de applicatie voor u.

We begrijpen echter dat sommige klanten hun gegevens niet in de cloud kunnen opslaan, en vereisen het hosten van al hun gegevens on-premises.

Deze documentatie behandelt dat gebruiksscenario.

Wat is inbegrepen Internal Link


FastComments On Prem stelt u in staat onze oplossing voor live reacties uit te rollen, inclusief alle moderatie- en beheertools, op uw eigen hardware.

Dit betekent dat u controle heeft over uw gegevens, en dat het reactiesysteem beperkt kan worden tot uw lokale LAN of bedrijfsnetwerk.


Instanties Internal Link

Vereiste componenten

Voor On-Prem bestaat FastComments alleen uit een applicatieserver en een database. We hebben de deployment vereenvoudigd zodat de applicatie al het verkeer direct kan afhandelen zonder extra componenten toe te voegen.

De applicatieserver wordt geleverd in een Docker image en kan worden ingezet met elke containerbeheeroplossing.

De database, MongoDB, kan zelf worden beheerd of gehost worden door een andere provider zoals AWS DocumentDB of MongoDB Atlas.

FastComments is momenteel getest met MongoDB 7, maar we streven ernaar DocumentDB-compatibel te zijn om de deployment te vereenvoudigen.

Instancegroottes

Je zult merken dat FastComments redelijk goed geoptimaliseerd is en geen grote machines voor de applicatie zelf vereist om lage P99s te behouden.

Alle batch- en cron-jobs gebruiken streaming om het totale geheugengebruik te beperken.

De onderstaande tabellen voor de applicatieserver en database kunnen helpen bij het bepalen van de juiste grootte.

Applicatieserverinstanties

Concurrent UsersTotal Cluster CPUsTotal Cluster Memory
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

Bijvoorbeeld gebruikt een enkele core die ongeveer 100 reactiedraden per seconde bedient gewoonlijk nooit meer dan 250mb RSS.

Databaseserverinstanties

Het dimensioneren van de database hangt af van de grootte van de werkset, dat is de hoeveelheid data die je op een gegeven moment benadert, evenals gelijktijdige verzoeken.

FastComments is redelijk vriendelijk voor Mongo, in die zin dat voor de hot queries het gebruikmaakt van index hints, streaming cursors, en er in verschillende gebieden concurrency limits zijn om overbelasting van downstream-systemen te voorkomen.

Hieronder staat een algemene richtlijn voor database-instantiegroottes. Let op dat dit per instantie is, niet de totale resources in het cluster.

Concurrent UsersComments StoredCPUs Per InstanceMemory Per Instance
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

De bovenstaande tabellen zijn conservatieve schattingen. Je kunt merken dat de daadwerkelijke vereisten verschillen op basis van je specifieke configuratie (paginagroottes, commentaargrootte, enz.).

Configuratie Internal Link

FastComments gebruikt omgevingsvariabelen voor configuratie. De volgende lijst geeft alle ondersteunde variabelen weer die relevant zijn voor On-Prem.

VariabeleStandaardInfoVerplichtVoorbeelden of Geldige Waarden
NODE_ENVOmgevingstype.Japroduction, dev
MONGO_URIDB-verbinding URI.Ja
MONGO_ENABLE_SSLfalseSchakelt het gebruik van SSL in om verbinding te maken met de database.Neetrue, false
MONGO_ENABLE_SSL_VALIDATEfalseSchakelt validatie van het certificaat tegen de CA in bij het verbinden met Mongo.Neetrue, false
MONGO_SSL_CAMongo SSL CA PEM-bestand.Nee/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILE-mail waar belangrijke systeemgerelateerde meldingen naartoe moeten worden gestuurd.Neeadmin-group@bigcorp.com
IP_HASH_SALTSalt voor het hashen van IP-adressen.Ja
SESSION_SECRETDe sleutel die wordt gebruikt om sessies te ondertekenen.Ja
SESSION_STORE_SECRETDe sleutel die wordt gebruikt om sessies in opslag te ondertekenen/hashten. Moet anders zijn dan SESSION_SECRET.Ja
HOSTNAMEDe hostnaam waar FastComments is geïmplementeerd (admin-dashboard enz.). Mag NIET poort of protocol bevatten.Jaexample.com
HOST_ADDREen toegankelijke URI waar FastComments is ingezet (admin-dashboard enz.).Jahttps://example.com
EMAIL_CONFIG_PATHEen pad op het lokale bestandssysteem waar de e-mailconfiguratie (SMTP, domein/provider-koppelingen, enz.) staat.Ja/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments RobotE-mail "From Name"-header.NeeMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngE-mail voettekstlogo.Neehttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTOverschrijving voor "defaultTransport" in EMAIL_CONFIG_PATH. Handig om hetzelfde configuratiebestand in verschillende omgevingen te gebruiken.NeemyTransportName
ON_PREM_TENANT_IDDe ID van uw account op fastcomments.com. Gebruikt om uw licentiesleutel te registreren.Nee
ON_PREM_LICENSE_KEYEen on-prem licentiesleutel.Nee
GIPHY_API_KEYGiphy API-sleutel. Als deze niet is opgegeven, moet u een configuratieregel maken die de gifkiezer uitschakelt.Nee
GIPHY_DEFAULT_RATINGpgGebruikt voor giphy-integratie. Kan ook worden overschreven met widget-aanpassingsregels.Neeg, pg, pg-13, r
OPENAI_SECRET_KEYGebruikt voor OpenAI-aangedreven functies zoals optionele GPT-gebaseerde spamdetectie.Nee
CDN_HOST_ADDRDe hostnaam van waar assets worden opgehaald. Standaard waarde is HOSTNAME.Neeexample.com
LARGE_FILE_HOST_ADDRDe hostnaam waar grote bestanden (zoals exports) worden opgehaald. Standaard waarde is CDN_HOST_ADDR.Neeexample.com
LARGE_FILE_LOCATION_TYPElocal_diskWaar grote bestanden, zoals exports, moeten worden opgeslagen.Neelocal_disk, s3
FROM_EMAIL_HOSTDe hostnaam waar e-mails van verzonden moeten worden.Neeexample.com
COOKIE_IDfastcomments.sidDe naam van de fastcomments-cookie.Nee
COOKIE_HOSTNAME.fastcomments.comDe waarde van het "hostname"-veld van de cookie. Aanbevolen te prefixen met een punt.Nee.example.com
S3_ACCESS_KEYWordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Standaard lokale FS als niet gedefinieerd.Nee
S3_SECRET_KEYWordt gebruikt voor gebruikersbestandsuploads, avatars, enz.Nee
S3_REGIONWordt gebruikt voor gebruikersbestandsuploads, avatars, enz.Nee
S3_BUCKETWordt gebruikt voor gebruikersbestandsuploads, avatars, enz.Nee
S3_HOSTWordt gebruikt voor gebruikersbestandsuploads, avatars, enz.Nee
CACHE_DIRLocatie om optionele offline cache op te slaan, voor wanneer de DB niet beschikbaar is. Periodiek ververst met de top 100 reactiedraden.Nee
BACKUP_DIRLocatie om gegevens op te slaan voor wanneer de DB niet beschikbaar is. Als een reactie wordt ingediend wanneer de DB niet beschikbaar is, gaat deze hierheen en wordt later verwerkt.Nee

Let op dat alle domeingerelateerde variabelen de achtervoegsels _HOST of _ADDR gebruiken. Het verschil is:

  • _HOST: example.com
  • _ADDR: https://example.com

Het EMAIL_CONFIG_PATH moet een pad naar een JSON-bestand bevatten met het volgende voorbeeldformaat:

E-mailconfiguratie
Copy Copy
1
2{
3 "defaultDKIM": {
4 "domainName": "mycompany.org",
5 "keySelector": "2024",
6 "privateKey": "-----BEGIN PRIVATE KEY-----\nABCDEFG\n-----END PRIVATE KEY-----"
7 },
8 "providerTransports": {
9 "yahoo.com": "specialTransport"
10 },
11 "defaultTransport": "mailgun",
12 "transports": {
13 "mailgun": {
14 "host": "smtp.mailgun.org",
15 "port": 587,
16 "secure": false,
17 "auth": {
18 "user": "admin@somewhere.com",
19 "pass": "password"
20 },
21 "tls": {
22 "ciphers": "SSLv3"
23 }
24 },
25 "specialTransport": {
26 "host": "smtp.someplace.org",
27 "port": 587,
28 "secure": false,
29 "auth": {
30 "user": "admin@example.com",
31 "pass": "password"
32 },
33 "tls": {
34 "ciphers": "SSLv3"
35 }
36 }
37 }
38}
39

In het bovenstaande voorbeeld definiëren we een standaard SMTP e-mailtransport genaamd mailgun. We definiëren ook een speciaal transport dat we specifiek gebruiken voor @yahoo.com-e-mails. In sommige scenario's is het wenselijk om voor een domein een specifieke provider of verzend-IP te gebruiken om de aflevering te optimaliseren. Dit is optioneel.

DocumentDB

Bij het verbinden met DocumentDB wilt u MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem opgeven om compatibel te zijn met de standaardinstellingen.


Database-uitval en onderhoudsmodus Internal Link

FastComments ondersteunt een automatische onderhoudsmodus. Als de database uitvalt, kan het populaire reactiedraden blijven bedienen.

Bovendien worden in de onderhoudsmodus alle opmerkingen opgeslagen in BACKUP_DIR. Ze worden verwerkt (gecontroleerd op spam, enz.) en opgeslagen zodra het systeem weer online is.

Dit gebeurt doordat elk uur de top 100 meest populaire reactiedraden wordt bepaald en hun inhoud op schijf wordt gecachet. Het bepalen van de top 100 reactiedraden wordt al gedaan op basis van vooraf berekende staat, dus het is geen zware periodieke taak.

Dit is volledig optioneel en wordt alleen ingeschakeld als CACHE_DIR en BACKUP_DIR zijn ingesteld. Dit maakt de applicatieknooppunten uiteraard stateful, maar het is staat die op elk moment verloren kan gaan zonder dat de applicatie zich verkeerd gedraagt.

Let op dat in de onderhoudsmodus een correcte authenticatie van reactiedraden niet mogelijk is, dus worden alleen reeksen die veilig als openbaar worden beschouwd periodiek geback-upt.

In de onderhoudsmodus zijn veel functies niet beschikbaar.

Widgetcode Internal Link


De front-end codefragmenten en bibliotheken voor On-Prem zijn hetzelfde als bij het SaaS-product. Je moet echter apiHost en het juiste scriptpad opgeven:

Reactiescode voor On-Prem
Copy Copy
1
2<script async src="https://my.host.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: "demo",
8 apiHost: "https://my.host.com"
9 // ... kan ook SSO-payload etc. doorgeven.
10 }];
11</script>
12

Het bovenstaande is een zeer eenvoudig voorbeeld. We kunnen ook de officiële React-, Angular-, Vue-, Svelte- enz. bibliotheken gebruiken.


API Internal Link

De API is op dezelfde manier toegankelijk als het reguliere SaaS-product: u logt in op het On-Prem dashboard om API-sleutels aan te maken en gebruikt die sleutels om toegang tot de API te krijgen. De API endpoints zijn on-prem hetzelfde als voor het SaaS-product.

Meerdere domeinen Internal Link

Uw On-Prem FastComments-installatie kan reacties serveren aan meerdere interne domeinen, bijvoorbeeld app.mycorp.org en hr.mycorp.org. U kunt deze apart configureren maar host ze op één On-Prem-installatie door aparte Customization Rules aan te maken om hun individuele gedrag te configureren.

Beveiliging Internal Link

Standaard gaat FastComments ervan uit dat discussiedraden openbaar zijn. Om een extra beveiligingslaag toe te voegen, wordt aanbevolen een Aanpassingsregel te maken met de Requires SSO optie aangevinkt. Hierdoor zullen alle endpoints die met reacties te maken hebben SSO-authenticatie vereisen.


Tot slot

Je hebt het einde van de On Prem documentatie bereikt. Laat ons weten welke opmerkingen of vragen je hieronder nog hebt - je kunt ook contact met ons opnemen via de Supportpagina.