Von Google Reader inspirierter, selbst gehosteter RSS-Reader, basierend auf Quarkus und React/TypeScript.
Docker ist der einfachste Weg, mit CommaFeed zu beginnen.
Docker-Images werden automatisch erstellt und sind unter https://hub.docker.com/r/athou/commafeed verfügbar
PikaPods bietet 1-Klick-Cloud-Hosting-Lösungen ab 1 $/Monat mit einem kostenlosen Willkommensguthaben von 5 $ und unterstützt offiziell CommaFeed. PikaPods gibt 20 % des Umsatzes an CommaFeed zurück.
Gehen Sie zur Release-Seite und laden Sie die neueste Version für Ihr Betriebssystem und die Datenbank Ihrer Wahl herunter.
Es gibt zwei Arten von Paketen:
linux-x86_64
und windows-x86_64
werden nativ kompiliert und enthalten eine ausführbare Datei, die direkt ausgeführt werden kann.jvm
-Paket ist eine ZIP-Datei, die alle zum Ausführen der Anwendung erforderlichen .jar
-Dateien enthält. Dieses Paket funktioniert auf allen Plattformen und wird mit java -jar quarkus-run.jar
gestartet.Sofern für Ihr Betriebssystem verfügbar, wird das native Paket empfohlen, da es eine schnellere Startzeit und eine geringere Speichernutzung bietet.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
kann eines von h2
, postgresql
, mysql
oder mariadb
sein. Der Standardwert ist h2
.-Pnative
kompiliert die Anwendung in nativen Code. Dazu muss GraalVM installiert sein (Umgebungsvariable GRAALVM_HOME
die auf eine GraalVM-Installation verweist).-DskipTests
um den Build-Prozess durch Überspringen von Tests zu beschleunigen.Wenn der Build abgeschlossen ist:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
. Extrahieren Sie es und führen Sie die Anwendung mit java -jar quarkus-run.jar
auscommafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
CommaFeed erfordert keine Konfiguration, um mit seiner eingebetteten Datenbank (H2) ausgeführt zu werden. Die Datenbankdatei wird im data
des aktuellen Verzeichnisses gespeichert.
Um eine andere Datenbank zu verwenden, müssen Sie die folgenden Eigenschaften konfigurieren:
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
Es gibt mehrere Möglichkeiten, CommaFeed zu konfigurieren:
config/application.properties
-Eigenschaftendatei relativ zum Arbeitsverzeichnis (Schlüssel in Kebab-Schreibweise)-D
(Schlüssel in Kebab-Schreibweise).env
Datei im Arbeitsverzeichnis (Schlüssel in GROSSBUCHSTABEN)Die Eigenschaftendatei wird empfohlen, da CommaFeed vor ungültigen Eigenschaften und Tippfehlern warnen kann.
Alle CommaFeed-Einstellungen sind optional und haben sinnvolle Standardwerte.
Beim Anmelden werden die Anmeldedaten in einem verschlüsselten Cookie gespeichert. Der Verschlüsselungsschlüssel wird beim Start zufällig generiert, was bedeutet, dass Sie sich nach jedem Neustart der Anwendung erneut anmelden müssen. Um dies zu verhindern, können Sie die Eigenschaft quarkus.http.auth.session.encryption-key
auf einen festen Wert (mindestens 16 Zeichen) setzen. Alle weiteren Quarkus-Einstellungen finden Sie hier.
Beim Start überwacht der Server http://localhost:8082. Der Standardbenutzer ist admin
und das Standardkennwort ist admin
.
Wenn CommaFeed in Betrieb ist, können Sie diesen Feed abonnieren, um über neue Versionen benachrichtigt zu werden.
Die Java Virtual Machine (JVM) ist standardmäßig ziemlich gierig und gibt nicht genutzten Speicher nicht an das Betriebssystem frei. Dies liegt daran, dass der Erwerb von Speicher vom Betriebssystem ein relativ kostspieliger Vorgang ist. Dies kann auf Systemen mit begrenztem Speicher problematisch sein.
native
und jvm
-Pakete) Mit dem Parameter -Xmx
kann die JVM so konfiguriert werden, dass sie eine maximale Speichermenge verwendet. Um beispielsweise die JVM auf 256 MB Speicher zu beschränken, verwenden Sie -Xmx256m
.
jvm
Paket)Zusätzlich zur vorherigen Einstellung kann die JVM mit den folgenden Parametern so konfiguriert werden, dass ungenutzter Speicher an das Betriebssystem freigegeben wird:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Weitere Informationen finden Sie hier und hier.
jvm
Paket)Die OpenJ9-JVM ist eine speichereffizientere Alternative zur HotSpot-JVM, allerdings auf Kosten eines etwas langsameren Durchsatzes.
IBM stellt vorkompilierte Binärdateien für OpenJ9 mit dem Namen Semeru bereit. Dies ist die im Docker-Image verwendete JVM.
Dateien zur Internationalisierung finden Sie hier.
So fügen Sie eine neue Sprache hinzu:
locales
-Array hinzu in:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
hinzuDer Name des Gebietsschemas sollte der aus zwei Buchstaben bestehende ISO-639-1-Sprachcode sein.
commafeed-server
in Ihrer bevorzugten Java-IDE../mvnw quarkus:dev
auscommafeed-client
in Ihrer bevorzugten JavaScript-IDE.npm install
npm run dev
Der Frontend-Server läuft jetzt unter http://localhost:8082 und leitet REST-Anfragen per Proxy an das Backend weiter, das auf Port 8083 läuft