
Γλώσσα 🇨🇾 Ελληνικά (Κύπρος)
Υπόβαθρο
Πρώτα βήματα
Ανάπτυξη
Αρχιτεκτονική
Εγκατάσταση και Ενσωμάτωση
Συμβουλές ασφάλειας
Φιλοξενία του FastComments επιτόπου
Το FastComments παρέχει διάφορες λύσεις για ανάπτυξη. Η πιο συνηθισμένη περίπτωση είναι εκεί που εμείς φιλοξενούμε την εφαρμογή για εσάς.
Ωστόσο, κατανοούμε ότι κάποιοι πελάτες δεν μπορούν να αποθηκεύουν τις πληροφορίες τους στο cloud, και απαιτούν τη φιλοξενία όλων των δεδομένων τους τοπικά.
Αυτή η τεκμηρίωση καλύπτει αυτή την περίπτωση χρήσης.
Τι περιλαμβάνεται 
FastComments On Prem σας επιτρέπει να αναπτύξετε τη λύση σχολιασμού σε πραγματικό χρόνο μας, συμπεριλαμβανομένων όλων των εργαλείων εποπτείας και διαχείρισης, στο δικό σας υλικό.
Αυτό σημαίνει ότι έχετε τον έλεγχο των δεδομένων σας, και το σύστημα σχολιασμού μπορεί να περιοριστεί στο τοπικό σας LAN ή στο εταιρικό δίκτυο.
Από πού να ξεκινήσετε 
Για να ξεκινήσετε την ανάπτυξη του FastComments On Prem, επικοινωνήστε μαζί μας.
Μόλις ολοκληρωθεί η ρύθμιση, μπορείτε πάντα να κατεβάσετε την πιο πρόσφατη docker image από τη σελίδα αδειοδότησης.
Κόμβοι 
Απαιτούμενα Συστατικά
Για επιτόπια (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 |
Οι παραπάνω πίνακες είναι συντηρητικές εκτιμήσεις. Μπορεί να διαπιστώσετε ότι οι πραγματικές απαιτήσεις διαφέρουν ανάλογα με τη συγκεκριμένη διαμόρφωσή σας (μεγέθη σελίδων, όγκος σχολίων, κ.λπ).
Διαμόρφωση 
Το 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 SMTP με όνομα mailgun. Επίσης ορίζουμε έναν ειδικό μεταφορέα που χρησιμοποιείται ειδικά για emails @yahoo.com. Σε ορισμένα σενάρια είναι επιθυμητό να χρησιμοποιηθεί συγκεκριμένος πάροχος ή διεύθυνση IP αποστολής για ένα domain προκειμένου να βελτιωθεί η παράδοση. Αυτό είναι προαιρετικό.
DocumentDB
Όταν συνδέεστε στο DocumentDB θα θέλετε να ορίσετε MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem για να είστε συμβατοί με τις προεπιλεγμένες ρυθμίσεις.
Διακοπή λειτουργίας της βάσης δεδομένων και λειτουργία συντήρησης 
Το FastComments υποστηρίζει αυτόματη λειτουργία συντήρησης. Αν η βάση δεδομένων παραμείνει εκτός λειτουργίας, μπορεί να συνεχίσει να εξυπηρετεί δημοφιλή νήματα σχολίων.
Επιπλέον, σε λειτουργία συντήρησης, όλα τα σχόλια αποθηκεύονται στο BACKUP_DIR. Θα υποβληθούν σε επεξεργασία (ελεγχθούν για spam, κ.λπ.) και θα αποθηκευτούν μόλις το σύστημα επιστρέψει σε λειτουργία.
Το κάνει αυτό προσδιορίζοντας, κάθε ώρα, τα 100 πιο δημοφιλή νήματα σχολίων και αποθηκεύοντας προσωρινά το περιεχόμενό τους στον δίσκο. Ο προσδιορισμός των κορυφαίων 100 νημάτων γίνεται ήδη από προ-υπολογισμένη κατάσταση, οπότε δεν αποτελεί βαριά περιοδική εργασία.
Αυτό είναι εντελώς προαιρετικό και ενεργοποιείται μόνο αν έχουν οριστεί τα CACHE_DIR και BACKUP_DIR. Αυτό, φυσικά, καθιστά τους κόμβους της εφαρμογής καταστάσιμους, ωστόσο πρόκειται για κατάσταση που
μπορεί να χαθεί ανά πάσα στιγμή χωρίς να προκαλέσει δυσλειτουργία στην εφαρμογή.
Σημειώστε ότι σε λειτουργία συντήρησης δεν είναι δυνατή η σωστή αυθεντικοποίηση των νημάτων σχολίων, οπότε μόνο νήματα που θεωρούνται με ασφάλεια δημόσια γίνονται περιοδικά αντίγραφα ασφαλείας.
Σε λειτουργία συντήρησης πολλές λειτουργίες δεν είναι διαθέσιμες.
Κλειδώματα 
Όπως κάθε κατανεμημένο σύστημα, το FastComments χρειάζεται κάποιο τρόπο για να κλειδώνει πόρους και διαδικασίες. Αυτά τα κλειδώματα μπορούν να παρακολουθηθούν μέσω του endpoint /locks-in-progress.
Για παράδειγμα, εδώ είναι το endpoint στο US shard μας.
Αυτό μπορεί να είναι χρήσιμο για να δείτε γιατί το σύστημα κολλάει ή βρίσκεται υπό φορτίο. Αν, για παράδειγμα, ένας SRE θέλει να δει γιατί το σύστημα παρουσιάζει υψηλή χρήση CPU, θα μπορούσε να ελέγξει αυτό το endpoint για να λάβει το όνομα του cron που παρουσιάζει δυσλειτουργία.
Κώδικας widget 
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:

Το παραπάνω είναι ένα πολύ απλό παράδειγμα. Μπορούμε επίσης να χρησιμοποιήσουμε τις επίσημες βιβλιοθήκες για React, Angular, Vue, Svelte κ.λπ.
Διεπαφή προγραμματισμού εφαρμογών (API) 
Το API μπορεί να προσπελαστεί όπως και το κανονικό προϊόν SaaS, δηλαδή θα συνδεθείτε στον πίνακα ελέγχου On-Prem για να δημιουργήσετε API keys και να χρησιμοποιήσετε αυτά τα keys για να αποκτήσετε πρόσβαση στο API. Το API endpoints είναι τα ίδια on-prem όπως και για το προϊόν SaaS.
Πολλαπλοί τομείς 
Η On-Prem εγκατάσταση του FastComments μπορεί να εξυπηρετεί σχόλια σε πολλούς εσωτερικούς τομείς, για παράδειγμα app.mycorp.org και hr.mycorp.org. Μπορείτε να τα διαμορφώσετε
ξεχωριστά αλλά να τα φιλοξενήσετε σε μία εγκατάσταση On-Prem δημιουργώντας ξεχωριστούς Customization Rules για να ρυθμίσετε τις ατομικές τους συμπεριφορές.
Ασφάλεια 
Κατ' προεπιλογή, το FastComments υποθέτει ότι τα νήματα σχολίων είναι δημόσια. Για να προσθέσετε ένα επίπεδο ασφάλειας, συνιστάται να δημιουργήσετε έναν Κανόνα Προσαρμογής με την
Requires SSO επιλογή επιλεγμένη. Αυτό θα κάνει όλα τα endpoints που σχετίζονται με σχόλια να απαιτούν πιστοποίηση SSO.
Συμπερασματικά
Έχετε φτάσει στο τέλος της τεκμηρίωσης On Prem. Ενημερώστε μας για τυχόν επιπλέον σχόλια ή ερωτήσεις που έχετε παρακάτω - μπορείτε επίσης να επικοινωνήσετε μαζί μας μέσω της Σελίδα Υποστήριξης.