Production deployment
Οι ελάχιστες απαιτήσεις και οι ευθύνες για ασφαλή λειτουργία του Bubllio CRM σε production.
Για μια καθοδηγούμενη εγκατάσταση Dokploy, χρησιμοποιήστε Install Bubllio CRM με Dokploy.
Αυτό το runbook αναπτύσσει το Bubllio CRM ως τρία δοχεία: PostgreSQL, το Django API πίσω από το Gunicorn, και την εφαρμογή React πίσω από το Nginx. Τοποθετήστε ένα TLS-τεμάχιο αντίστροφο διαμεσολαβητή ή διαχειριζόμενο ισοσταθμιστή φορτίου μπροστά από τη θύρα 8080. Μην εκθέσετε τα δοχεία PostgreSQL ή Django απευθείας στο διαδίκτυο.
Πρώτη εγκατάσταση
-
Αντιγραφή
.env.production.exampleστον εξυπηρετητή.env.production. -
Αντικατάσταση κάθε τιμής
CHANGE_ME. Ποτέ μην κάνετε το αρχείο που προκύπτει. -
Σημείωσε το δημόσιο αρχείο DNS στον διαμεσολαβητή TLS ή τον ισοσταθμιστή φορτίου.
-
Εκκίνηση των αμετάβλητων εικόνων εφαρμογής:
docker compose --env-file .env.production -f compose.production.yaml up -d --build -
Επαλήθευση της υγείας των εμπορευματοκιβωτίων και του τελικού σημείου ετοιμότητας του κοινού:
docker compose --env-file .env.production -f compose.production.yaml ps curl --fail https://crm.example.com/health/ -
Ανοίξτε την εφαρμογή, ολοκληρώστε την υποστηριζόμενη ροή ρύθμισης, και δοκιμάστε ένα πρόσκληση, επαναφορά κωδικού πρόσβασης και εγκατάσταση SMTP μηνύματος.
-
Η ρύθμιση κλειδώνει αυτόματα μετά την επιτυχία. Προαιρετικά αφαίρεση
BUBLLIO_SETUP_TOKENκατά τη διάρκεια μεταγενέστερης ανάπτυξης συντήρησης ως άμυνα σε βάθος· δεν απαιτείται άμεση επανεκκίνηση.
Το σημείο εισόδου backend εφαρμόζει migrations πριν από την έναρξη του Gunicorn και συλλέγει Django admin στατικά αρχεία. Το δημόσιο frontend στέλνει αιτήματα του /api/ για Django, οπότε το browser δεν χρειάζεται ποτέ βάση δεδομένων ή πιστοποιητικά API.
TLS και απαιτήσεις διαμεσολαβητή
Ο εξωτερικός διαμεσολαβητής πρέπει να τερματίσει το HTTPS και να αντικαταστήσει το X-Forwarded-Proto με το https. Ορισμός DJANGO_TRUST_X_FORWARDED_PROTO=true μόνο ενώ Django παραμένει προσβάσιμο αποκλειστικά μέσω αυτών των έμπιστων πληρεξουσίων. Εκκίνηση HSTS στην τιμή του παραδείγματος μιας ώρας· αύξησή της μόνο μετά τη λειτουργία HTTPS και έχουν επαληθευτεί όλα τα σχετικά υποdomain.
Ενημέρωση
Πριν την ενημέρωση, συμπληρώστε και επαληθεύστε ένα αντίγραφο ασφαλείας βάσης δεδομένων. Τραβήξτε την επιλεγμένη έκδοση GitHub ή την αμετάβλητη εικόνα, ανακατασκευάστε/εκκινήστε τις υπηρεσίες, στη συνέχεια ελέγξτε /health/ και την κρίσιμη ροή του πελάτη. Διατήρηση του προηγούμενου αναγνωριστικού έκδοσης διαθέσιμου για επιστροφή. Η μετάβαση στη βάση δεδομένων μπορεί να απαιτεί ένα προκαθορισμό και όχι μια επαναφορά μόνο εφαρμογών.
Αντιγράφων ασφαλείας
Αποθήκευση αντιγράφων ασφαλείας βάσεων δεδομένων εκτός του υπολογιστή εφαρμογής ή Docker όγκου, κρυπτογράφησή τους, καθορισμός κατακράτησης, και δοκιμή αποκατάστασης σε ένα απομονωμένο περιβάλλον. Μετά την πραγματική επιτυχία της εργασίας, αναφέρετέ την στο Bubllio με το record_backup_event όπως περιγράφεται στο Ενημέρωση και αντίγραφα ασφαλείας. Η εξαγωγή της εφαρμογής είναι χρήσιμη για τη φορητότητα αλλά δεν είναι ένα αντίγραφο ασφαλείας βάσης δεδομένων.
Λοιπές εργασίες ειδικού παρόχου
Το αποθετήριο δεν μπορεί να επιλέξει ή να ρυθμίσει τον δημόσιο τομέα, τον πάροχο TLS, το τείχος προστασίας, την αποθήκευση αντιγράφων ασφαλείας off-host, τον λογαριασμό email συναλλαγών, τον πωλητή παρακολούθησης, ή τους παραλήπτες ειδοποιήσεων. Καταγράψτε τις αποφάσεις αυτές με τα αποδεικτικά στοιχεία του πιλότου και εκτελέστε την πλήρη λίστα ελέγχου στην Ετοιμότητα παραγωγής Pilot πριν επιβιβαστείτε σε πελάτη.
