
Taal 🇳🇱 Nederlands
Achtergrond
Aan de slag
Implementatie
Architectuur
Installatie en integratie
Beveiligingstips
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 
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.
Waar te beginnen 
Om te beginnen met het uitrollen van FastComments On Prem, neem contact met ons op.
Zodra het is ingesteld kun je altijd de nieuwste Docker-image downloaden van de licentiepagina.
Instanties 
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 
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:

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 
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.
Vergrendelingen 
Zoals elk gedistribueerd systeem heeft FastComments een manier nodig om bronnen en procedures te vergrendelen. Deze vergrendelingen kunnen worden bewaakt via het /locks-in-progress eindpunt.
Bijvoorbeeld, hier is het eindpunt op onze US shard.
Dit kan nuttig zijn om te zien waarom het systeem vastloopt of onder belasting staat. Als een SRE bijvoorbeeld wil zien waarom het systeem een hoge CPU-belasting ervaart, kunnen ze dit eindpunt raadplegen om de naam van de cron te achterhalen die zich misdraagt.
Widgetcode 
De front-end codefragmenten en bibliotheken voor On-Prem zijn hetzelfde als het SaaS-product. Je moet echter apiHost en het juiste scriptpad opgeven:

Bovenstaand is een heel eenvoudig voorbeeld. We kunnen ook de officiële React-, Angular-, Vue-, Svelte- enz. bibliotheken gebruiken.
API 
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 
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 
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.