Lecteur RSS auto-hébergé inspiré de Google Reader, basé sur Quarkus et React/TypeScript.
Docker est le moyen le plus simple de démarrer avec CommaFeed.
Les images Docker sont créées automatiquement et sont disponibles sur https://hub.docker.com/r/athou/commafeed
PikaPods propose des solutions d'hébergement cloud en 1 clic à partir de 1 $/mois avec un crédit de bienvenue gratuit de 5 $ et prend officiellement en charge CommaFeed. PikaPods partage 20 % des revenus avec CommaFeed.
Accédez à la page de version et téléchargez la dernière version pour votre système d'exploitation et la base de données de votre choix.
Il existe deux types de forfaits :
linux-x86_64
et windows-x86_64
sont compilés nativement et contiennent un exécutable pouvant être exécuté directement.jvm
est un fichier zip contenant tous les fichiers .jar
requis pour exécuter l'application. Ce package fonctionne sur toutes les plateformes et démarre avec java -jar quarkus-run.jar
.S'il est disponible pour votre système d'exploitation, le package natif est recommandé car il offre un temps de démarrage plus rapide et une utilisation moindre de la mémoire.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
peut être l'un des h2
, postgresql
, mysql
ou mariadb
. La valeur par défaut est h2
.-Pnative
compile l'application en code natif. Cela nécessite que GraalVM soit installé (variable d'environnement GRAALVM_HOME
pointant vers une installation GraalVM).-DskipTests
pour accélérer le processus de construction en sautant les tests.Une fois la construction terminée :
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
. Extrayez-le et exécutez l'application avec java -jar quarkus-run.jar
commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
CommaFeed ne nécessite aucune configuration pour fonctionner avec sa base de données intégrée (H2). Le fichier de base de données sera stocké dans le répertoire data
du répertoire courant.
Pour utiliser une autre base de données, vous devrez configurer les propriétés suivantes :
quarkus.datasource.jdbc.url
jdbc:h2:./data/db;DEFRAG_ALWAYS=TRUE
jdbc:postgresql://localhost:5432/commafeed
jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
quarkus.datasource.username
quarkus.datasource.password
Il existe plusieurs façons de configurer CommaFeed :
config/application.properties
relatif au répertoire de travail (clés dans kebab-case)-D
(touches dans le cas kebab).env
dans le répertoire de travail (clés dans UPPER_CASE)Le fichier de propriétés est recommandé car CommaFeed pourra avertir des propriétés non valides et des fautes de frappe.
Tous les paramètres CommaFeed sont facultatifs et ont des valeurs par défaut raisonnables.
Lors de la connexion, les informations d'identification sont stockées dans un cookie crypté. La clé de cryptage est générée aléatoirement au démarrage, ce qui signifie que vous devrez vous reconnecter après chaque redémarrage de l'application. Pour éviter cela, vous pouvez définir la propriété quarkus.http.auth.session.encryption-key
sur une valeur fixe (min. 16 caractères). Tous les autres paramètres Quarkus peuvent être trouvés ici.
Une fois démarré, le serveur écoutera sur http://localhost:8082. L'utilisateur par défaut est admin
et le mot de passe par défaut est admin
.
Lorsque CommaFeed est opérationnel, vous pouvez vous abonner à ce flux pour être informé des nouvelles versions.
La Machine Virtuelle Java (JVM) est plutôt gourmande par défaut et ne libérera pas de mémoire inutilisée au système d'exploitation. En effet, l'acquisition de mémoire auprès du système d'exploitation est une opération relativement coûteuse. Cela peut être problématique sur les systèmes dont la mémoire est limitée.
native
et jvm
) La JVM peut être configurée pour utiliser une quantité maximale de mémoire avec le paramètre -Xmx
. Par exemple, pour limiter la JVM à 256 Mo de mémoire, utilisez -Xmx256m
.
jvm
)En plus du paramètre précédent, la JVM peut être configurée pour libérer de la mémoire inutilisée vers le système d'exploitation avec les paramètres suivants :
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Voir ici et ici pour plus d'informations.
jvm
)La JVM OpenJ9 est une alternative plus économe en mémoire à la JVM HotSpot, au prix d'un débit légèrement plus lent.
IBM fournit des binaires précompilés pour OpenJ9 nommés Semeru. Il s'agit de la JVM utilisée dans l'image Docker.
Les fichiers pour l'internationalisation se trouvent ici.
Pour ajouter une nouvelle langue :
locales
dans :commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
nouvellement crééLe nom des paramètres régionaux doit être le code de langue ISO-639-1 à deux lettres.
commafeed-server
dans votre IDE Java préféré../mvnw quarkus:dev
commafeed-client
dans votre IDE JavaScript préféré.npm install
npm run dev
Le serveur frontal s'exécute désormais sur http://localhost:8082 et transmet les requêtes REST au backend exécuté sur le port 8083.