by: Linux Insider
Αν τρέχετε ένα project όπου απαιτείται η ύπαρξη μιας πλατφόρμας συζητήσεων, μην ψάχνετε άλλο. Το Discourse είναι μια ανοικτού κώδικα λύση που μπορεί εύκολα να καλύψει τις ανάγκες σας τόσο για forum όσο και για mailing list ή για chat room.
Το Discourse ξεκίνησε να αναπτύσσεται το 2014 και από τότε προσφέρει όλο και περισσότερες λειτουργίες. Σύμφωνα με την ομάδα ανάπτυξης, πρόκειται για μια προσπάθεια να φτιαχτεί μια πλατφόρμα φόρουμ που θα καλύπτει τις ανάγκες των επόμενων 10 ετών του Internet. Φιλόδοξος στόχος, αλλά περί ορέξεως κολοκυθόπιτα… Πάντως το Discourse το προτιμούν πολλά projects για να στήσουν τα community forums τους, όπως π.χ. το Rust, το Codeacademy, τo New Relic, το Docker αλλά και εταιρείες όπως η Wyze, The Atlantic κλπ.
Γιατί το επιλέγουν όλοι αυτοί; Γιατί είναι “Simple. Modern. Fun.” Βασίζεται στην ιδέα των συζητήσεων (σκεφτείτε κάτι σαν τα σχόλια σε social media τύπου Facebook, Twitter) όπου όλα φορτώνονται just-in-time και όχι σε ξεχωριστές σελίδες.
Δηλαδή προσφέρει ένα flat φόρουμ, όπου η συζήτηση και οι απαντήσεις εμφανίζονται γραμμικά η μία κάτω από την άλλη, ενώ παράλληλα έχουν και context: μπορείς να ανοίξεις επι μέρους απαντήσεις που έχουν γίνει σε ένα σχόλιο χωρίς να φύγεις από εκεί όπου βρίσκεσαι…
Το Discourse είναι mobile-first και ενσωματώνει όλα όσα θες σε ένα φόρουμ και ακόμα περισσότερα: Single sign-on & Social login, app για Two-factor authentication, Community moderation, Spam blocking, Emoji & Badges, απάντηση μέσω email, κλπ.
Για να μην σας τρελάνω στη πολυλογία, απλά δοκιμάστε το εδώ: https://try.discourse.org/
Στα τεχνικά, η εφαρμογή είναι client-server και αποτελείται από state of the art και φυσικά open-source «υλικά»:
- back-end app σε Ruby on Rails που ακούει σε REST αιτήματα και απαντά μέσω JSON.
- front-end app σε Ember.js, που μιλάει με το back-end μέσω του Rails API. Το Ember.js για όσους δεν γνωρίζουν είναι ένα Javascript framework για ανάπτυξη εφαρμογών που χρησιμοποιούν εκατοντάδες projects και εταιρείες, από το Travis CI μέχρι το Netflix και το LinkedIn (πάρτε μια γεύση εδώ)
- PostgreSQL για την αποθήκευση των δεδομένων
- Redis για κασάρισμα
Εγκατάσταση
Μια και πρόκειται για λίαν πολύπλοκη εφαρμογή, θα περίμενε κανείς ότι η εγκατάσταση του Discourse δεν θα είναι παιχνιδά κι. Ωστόσο, το project προσφέρει αναλυτικούς οδηγούς για Linux, MacOS και Windows. Τελικά η εγκατάσταση π.χ. στο Ubuntu αλλά και κάθε άλλη Debian-based διανομή είναι ζήτημα 10 λεπτών.
Το Discourse απαιτεί τα παρακάτω πακέτα:
- Git
- rbenv
- ruby-build
- Ruby (stable)
- Rails
- PostgreSQL
- SQLite
- Redis
- Bundler
- MailCatcher
- ImageMagick
Αλλά για να μην κουραζόμαστε να τα εγκαθιστούμε ένα-ένα, με την παρακάτω εντολή κατεβάζουμε ένα script που αναλαμβάνει όλη τη δουλειά ενώ εμείς πίνουμε καφέ.
bash <(wget -qO- https://raw.githubusercontent.com/techAPJ/install-rails/master/linux)
Μετά, αρκεί να κάνουμε clone το Discourse από το Github:
git clone https://github.com/discourse/discourse.git ~/discourse
Σετάρουμε τη βάση δεδομένων:
sudo -u postgres createuser -s ΟΝΟΜΑ_ΧΡΗΣΤΗ
Εδώ θέλει λίγη προσοχή, γιατί περιέργως το ΟΝΟΜΑ_ΧΡΗΣΤΗ στην PostgresSQL χρειάζεται να είναι το ίδιο με τον χρήστη του Linux.
Εκκίνηση Discourse
Σε αυτό το σημείο έχουμε τελειώσει την εγκατάσταση, και μένει να μπούμε στο φάκελο του Discourse:
cd ~/discourse
να τρέξουμε τις παρακάτω δύο εντολές για την ρύθμιση της σύνδεσης με τη βάση δεδομένων:
source ~/.bashrc bundle install
Και έπειτα ακόμα δύο εντολές για την αρχική ρύθμιση του Discourse (δημιουργία βάσης δεδομένων κλπ)
bundle exec rake db:create db:migrate RAILS_ENV=test bundle exec rake db:create db:migrate
Τέλος, δίνουμε την εντολή:
bundle exec rake autospec
Και είμαστε έτοιμοι να ξεκινήσουμε τον rails server. Με την παρακάτω εντολή θα μπορούμε να δούμε το Discourse μόνο locally:
bundle exec rails server
Εναλλακτικά, με την παρακάτω εντολή ο rails server θα ακούει σε όλα τα interfaces και θα μπορούμε να συνδεθούμε και από απόσταση:
bundle exec rails server --binding=0.0.0.0
Ειμαστε έτοιμοι. Απλά πάμε στο http://localhost:3000 για να δοκιμάσουμε το discourse!
Στη συνέχεια μένει να φτιάξουμε έναν admin χρήστη:
RAILS_ENV=development bundle exec rake admin:create
και να τρέξουμε το mailcatcher:
mailcatcher --http-ip 0.0.0.0
Δείτε περισσότερα για την βήμα-προς βήμα εγκατάσταση εδώ.
Εναλλακτικά, αν δεν έχετε ιδέα από Ruby, bash, Javascript ή απλά θέλετε να γλυτώσετε τα τεχνικά, μπορείτε να εγκαστήσετε το Discourse σε λιγότερο από 30 λεπτά σε οποιονδήποτε cloud provider υποστηρίζει Docker (digital ocean, amazon ec2, rackspace, azure), χρησιμοποιώντας αυτόν τον οδηγό.
Τέλος να αναφέρω ότι το Discourse είναι μεν ανοικτού κώδικα και μπορείς να το εγκαταστήσεις δωρεάν στον server σου, αλλά προσφέρεται και ως έτοιμη hosted λύση από 100 δολάρια το μήνα. Εναλλακτικά, με 5 δολάρια το μήνα το τρέχετε από το Docker container στην Digital Ocean και ξεμπερδεύετε!
Πηγή άρθρου: https://planet.ellak.gr/ https://www.linuxinsider.gr/