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 Users Total Cluster CPUs Total Cluster Memory
100 1 256mb
1K 2 512mb
10K 8 1gb
100K 32 8gb
1M 64 64gb

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 Users Comments Stored CPUs Per Instance Memory Per Instance
100 1k 1 256mb
1K 5k 2 512mb
10K 100k 8 2gb
100K 500k 16 8gb
1M 5M 32 32gb

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.

Variabele Standaard Info Verplicht Voorbeelden of Geldige Waarden
NODE_ENV Omgevingstype. Ja production, dev
MONGO_URI DB-verbinding URI. Ja
MONGO_ENABLE_SSL false Schakelt het gebruik van SSL in om verbinding te maken met de database. Nee true, false
MONGO_ENABLE_SSL_VALIDATE false Schakelt validatie van het certificaat tegen de CA in bij het verbinden met Mongo. Nee true, false
MONGO_SSL_CA Mongo SSL CA PEM-bestand. Nee /path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAIL E-mail waar belangrijke systeemgerelateerde meldingen naartoe moeten worden gestuurd. Nee admin-group@bigcorp.com
IP_HASH_SALT Salt voor het hashen van IP-adressen. Ja
SESSION_SECRET De sleutel die wordt gebruikt om sessies te ondertekenen. Ja
SESSION_STORE_SECRET De sleutel die wordt gebruikt om sessies in opslag te ondertekenen/hashten. Moet anders zijn dan SESSION_SECRET. Ja
HOSTNAME De hostnaam waar FastComments is geïmplementeerd (admin-dashboard enz.). Mag NIET poort of protocol bevatten. Ja example.com
HOST_ADDR Een toegankelijke URI waar FastComments is ingezet (admin-dashboard enz.). Ja https://example.com
EMAIL_CONFIG_PATH Een pad op het lokale bestandssysteem waar de e-mailconfiguratie (SMTP, domein/provider-koppelingen, enz.) staat. Ja /my/config.json
EMAIL_DEFAULT_FROM_NAME FastComments Robot E-mail "From Name"-header. Nee My Company Name
EMAIL_DEFAULT_FOOTER_LOGO /images/logo-32-2020-01.png E-mail voettekstlogo. Nee https://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORT Overschrijving voor "defaultTransport" in EMAIL_CONFIG_PATH. Handig om hetzelfde configuratiebestand in verschillende omgevingen te gebruiken. Nee myTransportName
ON_PREM_TENANT_ID De ID van uw account op fastcomments.com. Gebruikt om uw licentiesleutel te registreren. Nee
ON_PREM_LICENSE_KEY Een on-prem licentiesleutel. Nee
GIPHY_API_KEY Giphy API-sleutel. Als deze niet is opgegeven, moet u een configuratieregel maken die de gifkiezer uitschakelt. Nee
GIPHY_DEFAULT_RATING pg Gebruikt voor giphy-integratie. Kan ook worden overschreven met widget-aanpassingsregels. Nee g, pg, pg-13, r
OPENAI_SECRET_KEY Gebruikt voor OpenAI-aangedreven functies zoals optionele GPT-gebaseerde spamdetectie. Nee
CDN_HOST_ADDR De hostnaam van waar assets worden opgehaald. Standaard waarde is HOSTNAME. Nee example.com
LARGE_FILE_HOST_ADDR De hostnaam waar grote bestanden (zoals exports) worden opgehaald. Standaard waarde is CDN_HOST_ADDR. Nee example.com
LARGE_FILE_LOCATION_TYPE local_disk Waar grote bestanden, zoals exports, moeten worden opgeslagen. Nee local_disk, s3
FROM_EMAIL_HOST De hostnaam waar e-mails van verzonden moeten worden. Nee example.com
COOKIE_ID fastcomments.sid De naam van de fastcomments-cookie. Nee
COOKIE_HOSTNAME .fastcomments.com De waarde van het "hostname"-veld van de cookie. Aanbevolen te prefixen met een punt. Nee .example.com
S3_ACCESS_KEY Wordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Standaard lokale FS als niet gedefinieerd. Nee
S3_SECRET_KEY Wordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Nee
S3_REGION Wordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Nee
S3_BUCKET Wordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Nee
S3_HOST Wordt gebruikt voor gebruikersbestandsuploads, avatars, enz. Nee
CACHE_DIR Locatie om optionele offline cache op te slaan, voor wanneer de DB niet beschikbaar is. Periodiek ververst met de top 100 reactiedraden. Nee
BACKUP_DIR Locatie 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 het SaaS-product. Je moet echter apiHost en het juiste scriptpad opgeven:

Reactiecode voor On-Prem
Copy Copy
1
2<script src="https://my.host.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 FastCommentsUI(document.getElementById('fastcomments-widget'), {
6 tenantId: "demo",
7 apiHost: "https://my.host.com"
8 // ... kan ook SSO-payload enz. doorgeven.
9 });
10</script>
11

Bovenstaand is een heel 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.