À mon avis, vous feriez mieux d’attendre le Raspberry Pi 5 éventuel, qui — si l’on projette les progrès de la performance des Pi depuis le modèle 2, puis 3, jusqu’au 4 — devrait avoir assez de puissance pour exécuter Discourse.
Je ne suis pas certain non plus que les dépendances x86 (x64 ?) soient surmontables pour le moment, mais ce n’est pas une mauvaise idée d’examiner cette piste pour le long terme.
Un cluster de Raspberry Pi 4 avec un processeur quadricœur 64 bits à 1,5 GHz, éventuellement des disques USB 3 pour le stockage (~300 Mo/s) ou un magasin de blobs externe (S3 ou GCP), et un CDN placé devant ces utilisateurs anonymes, pourrait constituer une alternative de plateforme viable L’avenir nous le dira !
Vous n’avez pas précisé quelle carte microSD il s’agissait, mais elle se situe dans le même ordre de grandeur qu’une Lexar Professional 1800x, qui peut maintenir des vitesses de lecture séquentielle d’environ 300 Mo/s et des écritures approchant les 250 Mo/s. Les lectures et écritures séquentielles ne sont pas le problème avec les cartes microSD ; il faut examiner les lectures/écritures aléatoires pour avoir une idée réelle de ce qui se passera lorsque plusieurs utilisateurs accéderont à la base de données et aux ressources locales.
Les SSD modernes atteignent généralement des vitesses de lecture séquentielle de 500 Mo/s et plus, et des écritures séquentielles de 475 Mo/s et plus, ce qui n’est pas très éloigné des chiffres ci-dessus. Cependant, l’écart de performance sur les lectures/écritures aléatoires est énorme : le même SSD peut atteindre jusqu’à 400 Mo/s sur un test 4KiBQ8T8, tandis que la Lexar chute à des valeurs à deux chiffres, autour de 15 Mo/s. Les écritures aléatoires sont encore pires, le SSD maintenant jusqu’à 300 Mo/s, alors que la carte microSD tombe bien en dessous de 10 Mo/s (2 Mo/s).
Je suis un grand fan du Raspberry Pi et je les utilise dans de nombreux endroits, mais ils sont encore loin d’atteindre le niveau dont nous avons besoin.
C’est une carte Sandisk 64 Go à 20 USD (en Suède), classée A2, je crois. Je voulais juste prouver que la vitesse séquentielle pure n’est pas aussi mauvaise que vous l’avez décrite
Si cela ne fonctionne pas sur le rPi, même avec un SSD externe sur les ports USB 3, je supposerais qu’exécuter la base de données en externe résoudrait ce goulot d’étranglement spécifique. Mais je suis partial car j’aime l’idée de mettre en place un cluster ARM avec les nouvelles cartes réseau 1 Gbit/s réelles du Pi 4. J’aime aussi remettre en question la mentalité du « ça ne marche pas » en général
Si vous investissez suffisamment de temps, d’argent et de ressources dans n’importe quoi, vous pouvez le faire fonctionner.
Les demandes d’exécution de Discourse sur un Raspberry Pi ces dernières années proviennent généralement d’utilisateurs qui possèdent un Pi et ne souhaitent pas dépenser plus que cela. C’est essentiellement ce que nous explorons ici.
Dès l’instant où vous commencez à ajouter des SSD externes et à déporter la base de données vers un autre système, vous ne parlez plus vraiment d’héberger Discourse sur un Raspberry Pi.
Prenez un Raspberry Pi 4 avec 4 Go ou 8 Go de RAM , puis commandez une carte MicroSD (INDUSTRIELLE) sur Amazon, eBay, etc.
Écrivez l’image Docker depuis le site : https://blog.hypriot.com/, précisément dans la section : Télécharger, dernière version.
Une fois l’image écrite sur la carte SD, insérez-la dans le Raspberry Pi et connectez-vous via SSH. Les identifiants par défaut pour SSH Docker sont : “pirate” et “hypriot” (Utilisateur : pirate, Mot de passe : hypriot). Bien sûr, après la connexion SSH, modifiez les identifiants selon vos préférences en exécutant : sudo raspi-config, puis redémarrez le Raspberry Pi.
Après le redémarrage, reconnectez-vous via SSH et installez “Discourse” en suivant ce guide : https://linoxide.com/how-tos/install-discourse-docker-container/. Notez que vous commencerez directement à l’étape 2), car Docker est déjà installé depuis le début.
$ ./launcher bootstrap app
standard_init_linux.go:211: exec user process caused "exec format error"
Votre installation Docker ne fonctionne pas correctement
Voir : https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
Je vous remercie vraiment pour votre réponse rapide, Rafael.
Apparemment, je me suis trompé en déduisant que Massym avait réussi à faire fonctionner Discourse sur un Raspberry Pi 4, car en relisant son message, il n’affirme pas explicitement cela. Une perte de temps de mon côté, mais au moins, une séance d’apprentissage.
Quel composant spécifique de Discourse n’est pas pris en charge ? Je suis certain que beaucoup d’autres seraient impatients de le faire fonctionner.
J’ai hâte de voir cela fonctionner. L’un de mes forums, hébergé sur Discourse, est le dernier élément en suspens pendant que je migre vers un cluster Raspberry Pi 4, qui consomme infiniment moins d’énergie que le serveur basé sur Intel.
Relance : y a-t-il eu des progrès concernant le gem v8 pour ARM ? J’ai essayé de compiler les images, mais je suis toujours bloqué sur ce gem. C’est un peu complexe : l’échec se produit principalement parce que les scripts tentent de télécharger des outils x86_64 (pour la construction) et de les exécuter sur ARM…
ARM sur le serveur (et en Ruby) fera de grands progrès très bientôt grâce à la puce M1 incroyable d’Apple qui apparaît enfin dans un véritable ordinateur portable.
Mais le Raspberry Pi lui-même — même le 4 bien amélioré — est lamentablement sous-dimensionné pour servir de serveur. Selon ce post et les résultats de Speedometer 2.0…
Bientôt visible, j’ai exécuté d’autres applications Rails sur un Raspberry Pi 4 et j’étais satisfait des performances, mais je dois admettre qu’elles étaient beaucoup plus simples que Discourse.