FastComments.com

Φιλοξενία του FastComments επιτόπου

Το FastComments παρέχει διάφορες λύσεις για ανάπτυξη. Η πιο συνηθισμένη περίπτωση είναι εκεί που εμείς φιλοξενούμε την εφαρμογή για εσάς.

Ωστόσο, κατανοούμε ότι κάποιοι πελάτες δεν μπορούν να αποθηκεύουν τις πληροφορίες τους στο cloud, και απαιτούν τη φιλοξενία όλων των δεδομένων τους τοπικά.

Αυτή η τεκμηρίωση καλύπτει αυτή την περίπτωση χρήσης.


Τι περιλαμβάνεται Internal Link


FastComments On Prem σας επιτρέπει να αναπτύξετε τη λύση σχολιασμού σε πραγματικό χρόνο μας, συμπεριλαμβανομένων όλων των εργαλείων εποπτείας και διαχείρισης, στο δικό σας υλικό.

Αυτό σημαίνει ότι έχετε τον έλεγχο των δεδομένων σας, και το σύστημα σχολιασμού μπορεί να περιοριστεί στο τοπικό σας LAN ή στο εταιρικό δίκτυο.


Κόμβοι Internal Link

Απαιτούμενα Συστατικά

Για επιτόπια (On-Prem), το FastComments αποτελείται απλώς από έναν διακομιστή εφαρμογής και μια βάση δεδομένων. Έχουμε απλοποιήσει την ανάπτυξη έτσι ώστε η εφαρμογή να μπορεί να εξυπηρετεί όλη την κίνηση απευθείας χωρίς την προσθήκη άλλων στοιχείων.

Ο διακομιστής εφαρμογής παρέχεται σε εικόνα Docker και μπορεί να αναπτυχθεί με οποιαδήποτε λύση διαχείρισης κοντέινερ.

Η βάση δεδομένων, MongoDB, μπορεί να τρέξει τοπικά ή να φιλοξενηθεί από άλλον πάροχο όπως AWS DocumentDB ή MongoDB Atlas.

Το FastComments αυτή τη στιγμή δοκιμάζεται με MongoDB 7, ωστόσο στοχεύουμε σε συμβατότητα με DocumentDB για να διευκολύνουμε την ανάπτυξη.

Μεγέθη Περιπτώσεων

Θα διαπιστώσετε ότι το FastComments είναι αρκετά βελτιστοποιημένο και δεν απαιτεί μεγάλες μηχανές για την ίδια την εφαρμογή ώστε να διατηρεί χαμηλά P99s.

Όλες οι εργασίες batch και cron χρησιμοποιούν streaming για να περιορίσουν τη συνολική χρήση μνήμης.

Οι παρακάτω πίνακες για τον διακομιστή εφαρμογής και τη βάση δεδομένων μπορούν να βοηθήσουν στον καθορισμό μεγέθους.

Παραδείγματα Διακομιστή Εφαρμογής

Ταυτόχρονοι Χρήστες Συνολικοί CPU του Cluster Συνολική Μνήμη του Cluster
100 1 256mb
1K 2 512mb
10K 8 1gb
100K 32 8gb
1M 64 64gb

Για παράδειγμα, ένας μόνος πυρήνας που εξυπηρετεί περίπου 100 νήματα σχολίων το δευτερόλεπτο συνήθως δεν χρησιμοποιεί ποτέ περισσότερα από 250mb RSS.

Παραδείγματα Διακομιστή Βάσης Δεδομένων

Το μέγεθος της βάσης δεδομένων εξαρτάται από το μέγεθος του working set (το ποσό δεδομένων που προσπελάζετε σε μια δεδομένη χρονική στιγμή), καθώς και από τις ταυτόχρονες αιτήσεις.

Το FastComments είναι σχετικά φιλικό προς το Mongo, καθώς για τα "hot" ερωτήματα χρησιμοποιεί index hints, streaming cursors, και έχει όρια ταυτόχρονης εκτέλεσης σε διάφορες περιοχές για να αποτρέψει την υπερφόρτωση των downstream συστημάτων.

Παρακάτω είναι ένας γενικός οδηγός για τα μεγέθη των περιπτώσεων βάσης δεδομένων. Σημειώστε ότι αυτό ισχύει ανά περίπτωση, όχι για τους συνολικούς πόρους στο cluster.

Ταυτόχρονοι Χρήστες Αποθηκευμένα Σχόλια CPUs ανά περίπτωση Μνήμη ανά περίπτωση
100 1k 1 256mb
1K 5k 2 512mb
10K 100k 8 2gb
100K 500k 16 8gb
1M 5M 32 32gb

Οι παραπάνω πίνακες είναι συντηρητικές εκτιμήσεις. Μπορεί να διαπιστώσετε ότι οι πραγματικές απαιτήσεις διαφέρουν ανάλογα με τη συγκεκριμένη διαμόρφωσή σας (μεγέθη σελίδων, όγκος σχολίων, κ.λπ).


Διαμόρφωση Internal Link

Το FastComments χρησιμοποιεί μεταβλητές περιβάλλοντος για διαμόρφωση. Η παρακάτω λίστα περιγράφει όλες τις υποστηριζόμενες μεταβλητές που σχετίζονται με την On-Prem.

Μεταβλητή Προεπιλογή Πληροφορίες Απαραίτητο Παραδείγματα ή Έγκυρες Τιμές
NODE_ENV Τύπος περιβάλλοντος. Ναι production, dev
MONGO_URI URI σύνδεσης βάσης δεδομένων. Ναι
MONGO_ENABLE_SSL false Ενεργοποιεί τη χρήση SSL για σύνδεση στη βάση δεδομένων. Όχι true, false
MONGO_ENABLE_SSL_VALIDATE false Ενεργοποιεί την επαλήθευση του πιστοποιητικού έναντι της CA κατά τη σύνδεση στο Mongo. Όχι true, false
MONGO_SSL_CA Mongo SSL CA pem αρχείο. Όχι /path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAIL Email στο οποίο θα αποστέλλονται σημαντικές ειδοποιήσεις σχετικές με το σύστημα. Όχι admin-group@bigcorp.com
IP_HASH_SALT Salt για hashing διευθύνσεων IP. Ναι
SESSION_SECRET Το κλειδί που χρησιμοποιείται για την υπογραφή των συνεδριών. Ναι
SESSION_STORE_SECRET Το κλειδί που χρησιμοποιείται για την υπογραφή/κατακερματισμό των συνεδριών στο storage. Πρέπει να είναι διαφορετικό από SESSION_SECRET. Ναι
HOSTNAME Το hostname όπου έχει αναπτυχθεί το FastComments (π.χ. admin dashboard). Δεν πρέπει να περιλαμβάνει θύρα ή πρωτόκολλο. Ναι example.com
HOST_ADDR Μια προσβάσιμη URI όπου έχει αναπτυχθεί το FastComments (π.χ. admin dashboard). Ναι https://example.com
EMAIL_CONFIG_PATH Μια διαδρομή στο τοπικό σύστημα αρχείων όπου βρίσκεται η διαμόρφωση email (SMTP, αντιστοιχίσεις domain/provider, κ.λπ.). Ναι /my/config.json
EMAIL_DEFAULT_FROM_NAME FastComments Robot Email "From Name" header. Όχι My Company Name
EMAIL_DEFAULT_FOOTER_LOGO /images/logo-32-2020-01.png Email footer logo. Όχι https://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORT Override για το "defaultTransport" στο EMAIL_CONFIG_PATH. Χρήσιμο για ανάπτυξη του ίδιου αρχείου ρύθμισης σε διαφορετικά περιβάλλοντα. Όχι myTransportName
ON_PREM_TENANT_ID Το ID του λογαριασμού σας στο fastcomments.com. Χρησιμοποιείται για την εγγραφή του license key. Όχι
ON_PREM_LICENSE_KEY Ένα on-prem license key. Όχι
GIPHY_API_KEY Giphy API Key. Αν δεν καθοριστεί, πρέπει να δημιουργήσετε κανόνα ρύθμισης που να απενεργοποιεί τον επιλογέα gif. Όχι
GIPHY_DEFAULT_RATING pg Χρησιμοποιείται για ενσωμάτωση με το Giphy. Μπορεί επίσης να παρακαμφθεί με κανόνες εξατομίκευσης του widget. Όχι g, pg, pg-13, r
OPENAI_SECRET_KEY Χρησιμοποιείται για λειτουργίες με OpenAI, όπως προαιρετικός εντοπισμός spam βασισμένος σε GPT. Όχι
CDN_HOST_ADDR Το hostname από όπου θα ανακτώνται τα assets. Προεπιλογή στην τιμή του HOSTNAME. Όχι example.com
LARGE_FILE_HOST_ADDR Το hostname από όπου ανακτώνται μεγάλα αρχεία (π.χ. εξαγωγές). Προεπιλογή στην τιμή του CDN_HOST_ADDR. Όχι example.com
LARGE_FILE_LOCATION_TYPE local_disk Πού θα αποθηκεύονται μεγάλα αρχεία, όπως εξαγωγές. Όχι local_disk, s3
FROM_EMAIL_HOST Το hostname από το οποίο θα αποστέλλονται τα emails. Όχι example.com
COOKIE_ID fastcomments.sid Το όνομα του cookie του fastcomments. Όχι
COOKIE_HOSTNAME .fastcomments.com Η τιμή του πεδίου "hostname" του cookie. Συνιστάται να προστεθεί προθέμα τελείας. Όχι .example.com
S3_ACCESS_KEY Χρησιμοποιείται για ανέβασμα αρχείων από χρήστες, avatars, κ.λπ. Προεπιλογή στο τοπικό FS αν δεν οριστεί. Όχι
S3_SECRET_KEY Χρησιμοποιείται για ανέβασμα αρχείων από χρήστες, avatars, κ.λπ. Όχι
S3_REGION Χρησιμοποιείται για ανέβασμα αρχείων από χρήστες, avatars, κ.λπ. Όχι
S3_BUCKET Χρησιμοποιείται για ανέβασμα αρχείων από χρήστες, avatars, κ.λπ. Όχι
S3_HOST Χρησιμοποιείται για ανέβασμα αρχείων από χρήστες, avatars, κ.λπ. Όχι
CACHE_DIR Τοποθεσία για αποθήκευση προαιρετικού offline cache, για όταν η DB δεν είναι διαθέσιμη. Ενημερώνεται περιοδικά με τα 100 κορυφαία νήματα σχολίων. Όχι
BACKUP_DIR Τοποθεσία για αποθήκευση δεδομένων όταν η DB δεν είναι διαθέσιμη. Αν ένα σχόλιο υποβληθεί όταν η DB δεν είναι διαθέσιμη, αποθηκεύεται εδώ και επεξεργάζεται αργότερα. Όχι

Σημειώστε ότι όλες οι μεταβλητές που σχετίζονται με domain χρησιμοποιούν την κατάληξη _HOST ή _ADDR. Η διαφορά είναι:

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

Το EMAIL_CONFIG_PATH πρέπει να περιέχει μια διαδρομή προς ένα αρχείο JSON με το ακόλουθο παράδειγμα μορφής:

Ρυθμίσεις Email
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

Στο παραπάνω παράδειγμα ορίζουμε έναν προεπιλεγμένο μεταφορέα email SMTP με όνομα mailgun. Επίσης ορίζουμε έναν ειδικό μεταφορέα που χρησιμοποιείται ειδικά για emails @yahoo.com. Σε ορισμένα σενάρια είναι επιθυμητό να χρησιμοποιηθεί συγκεκριμένος πάροχος ή διεύθυνση IP αποστολής για ένα domain προκειμένου να βελτιωθεί η παράδοση. Αυτό είναι προαιρετικό.

DocumentDB

Όταν συνδέεστε στο DocumentDB θα θέλετε να ορίσετε MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem για να είστε συμβατοί με τις προεπιλεγμένες ρυθμίσεις.


Διακοπή λειτουργίας της βάσης δεδομένων και λειτουργία συντήρησης Internal Link


Το FastComments υποστηρίζει αυτόματη λειτουργία συντήρησης. Αν η βάση δεδομένων παραμείνει εκτός λειτουργίας, μπορεί να συνεχίσει να εξυπηρετεί δημοφιλή νήματα σχολίων.

Επιπλέον, σε λειτουργία συντήρησης, όλα τα σχόλια αποθηκεύονται στο BACKUP_DIR. Θα υποβληθούν σε επεξεργασία (ελεγχθούν για spam, κ.λπ.) και θα αποθηκευτούν μόλις το σύστημα επιστρέψει σε λειτουργία.

Το κάνει αυτό προσδιορίζοντας, κάθε ώρα, τα 100 πιο δημοφιλή νήματα σχολίων και αποθηκεύοντας προσωρινά το περιεχόμενό τους στον δίσκο. Ο προσδιορισμός των κορυφαίων 100 νημάτων γίνεται ήδη από προ-υπολογισμένη κατάσταση, οπότε δεν αποτελεί βαριά περιοδική εργασία.

Αυτό είναι εντελώς προαιρετικό και ενεργοποιείται μόνο αν έχουν οριστεί τα CACHE_DIR και BACKUP_DIR. Αυτό, φυσικά, καθιστά τους κόμβους της εφαρμογής καταστάσιμους, ωστόσο πρόκειται για κατάσταση που μπορεί να χαθεί ανά πάσα στιγμή χωρίς να προκαλέσει δυσλειτουργία στην εφαρμογή.

Σημειώστε ότι σε λειτουργία συντήρησης δεν είναι δυνατή η σωστή αυθεντικοποίηση των νημάτων σχολίων, οπότε μόνο νήματα που θεωρούνται με ασφάλεια δημόσια γίνονται περιοδικά αντίγραφα ασφαλείας.

Σε λειτουργία συντήρησης πολλές λειτουργίες δεν είναι διαθέσιμες.


Κώδικας widget Internal Link

The front end code snippets and libraries for On-Prem are the same as the SaaS product. However, you must specify apiHost and the correct script path:

Κώδικας σχολίων για 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 // ... μπορείτε επίσης να περάσετε δεδομένα SSO κ.λπ.
9 });
10</script>
11

Το παραπάνω είναι ένα πολύ απλό παράδειγμα. Μπορούμε επίσης να χρησιμοποιήσουμε τις επίσημες βιβλιοθήκες για React, Angular, Vue, Svelte κ.λπ.

Διεπαφή προγραμματισμού εφαρμογών (API) Internal Link

Το API μπορεί να προσπελαστεί όπως και το κανονικό προϊόν SaaS, δηλαδή θα συνδεθείτε στον πίνακα ελέγχου On-Prem για να δημιουργήσετε API keys και να χρησιμοποιήσετε αυτά τα keys για να αποκτήσετε πρόσβαση στο API. Το API endpoints είναι τα ίδια on-prem όπως και για το προϊόν SaaS.

Πολλαπλοί τομείς Internal Link

Η On-Prem εγκατάσταση του FastComments μπορεί να εξυπηρετεί σχόλια σε πολλούς εσωτερικούς τομείς, για παράδειγμα app.mycorp.org και hr.mycorp.org. Μπορείτε να τα διαμορφώσετε ξεχωριστά αλλά να τα φιλοξενήσετε σε μία εγκατάσταση On-Prem δημιουργώντας ξεχωριστούς Customization Rules για να ρυθμίσετε τις ατομικές τους συμπεριφορές.

Ασφάλεια Internal Link

Κατ' προεπιλογή, το FastComments υποθέτει ότι τα νήματα σχολίων είναι δημόσια. Για να προσθέσετε ένα επίπεδο ασφάλειας, συνιστάται να δημιουργήσετε έναν Κανόνα Προσαρμογής με την Requires SSO επιλογή επιλεγμένη. Αυτό θα κάνει όλα τα endpoints που σχετίζονται με σχόλια να απαιτούν πιστοποίηση SSO.

Συμπερασματικά

Έχετε φτάσει στο τέλος της τεκμηρίωσης On Prem. Ενημερώστε μας για τυχόν επιπλέον σχόλια ή ερωτήσεις που έχετε παρακάτω - μπορείτε επίσης να επικοινωνήσετε μαζί μας μέσω της Σελίδα Υποστήριξης.