Google Reader は、Quarkus と React/TypeScript をベースにした自己ホスト型 RSS リーダーにインスピレーションを受けました。
Docker は、CommaFeed を始める最も簡単な方法です。
Docker イメージは自動的に構築され、https://hub.docker.com/r/athou/commafeed から入手できます。
PikaPods は、無料の 5 ドルのウェルカム クレジット付きで月額 1 ドルから始まるワンクリック クラウド ホスティング ソリューションを提供し、CommaFeed を正式にサポートしています。 PikaPods は収益の 20% を CommaFeed に分配します。
リリース ページに移動し、選択したオペレーティング システムとデータベースに対応する最新バージョンをダウンロードします。
パッケージには次の 2 種類があります。
linux-x86_64
およびwindows-x86_64
パッケージはネイティブにコンパイルされており、直接実行できる実行可能ファイルが含まれています。jvm
パッケージは、アプリケーションの実行に必要なすべての.jar
ファイルを含む zip ファイルです。このパッケージはすべてのプラットフォームで動作し、 java -jar quarkus-run.jar
で開始されます。オペレーティング システムで利用可能な場合は、起動時間が速く、メモリ使用量が少ないネイティブ パッケージをお勧めします。
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
は、 h2
、 postgresql
、 mysql
、またはmariadb
のいずれかを指定できます。デフォルトはh2
です。-Pnative
アプリケーションをネイティブ コードにコンパイルします。これには、GraalVM がインストールされている必要があります (GraalVM インストールを指すGRAALVM_HOME
環境変数)。-DskipTests
、テストをスキップしてビルド プロセスを高速化します。ビルドが完了したら:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
にあります。それを抽出し、 java -jar quarkus-run.jar
でアプリケーションを実行します。commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
にあります。 CommaFeed は、組み込みデータベース (H2) で実行するための構成を必要としません。データベース ファイルは、現在のディレクトリのdata
ディレクトリに保存されます。
別のデータベースを使用するには、次のプロパティを構成する必要があります。
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
CommaFeed を設定するには複数の方法があります。
config/application.properties
プロパティ ファイル (kebab の場合のキー)-D
のプレフィックスが付いたコマンド ライン引数 (ケバブケースのキー).env
ファイル (キーは大文字)CommaFeed は無効なプロパティやタイプミスについて警告できるため、プロパティ ファイルの使用をお勧めします。
すべての CommaFeed 設定はオプションであり、適切なデフォルト値があります。
ログインすると、認証情報は暗号化された Cookie に保存されます。暗号化キーは起動時にランダムに生成されるため、アプリケーションを再起動するたびに再度ログインする必要があります。これを防ぐには、 quarkus.http.auth.session.encryption-key
プロパティを固定値 (最小 16 文字) に設定します。他のすべての Quarkus 設定はここにあります。
起動すると、サーバーは http://localhost:8082 でリッスンします。デフォルトのユーザーはadmin
、デフォルトのパスワードはadmin
です。
CommaFeed が起動して実行されている場合、このフィードを購読して新しいリリースの通知を受け取ることができます。
Java 仮想マシン (JVM) は、デフォルトではかなり貪欲で、未使用のメモリをオペレーティング システムに解放しません。これは、オペレーティング システムからメモリを取得するのは比較的高価な操作であるためです。これは、メモリが限られているシステムでは問題になる可能性があります。
native
およびjvm
パッケージ) JVM は、 -Xmx
パラメーターを使用して最大量のメモリーを使用するように構成できます。たとえば、JVM のメモリを 256MB に制限するには、 -Xmx256m
を使用します。
jvm
パッケージ)前の設定に加えて、次のパラメータを使用して、未使用のメモリをオペレーティング システムに解放するように JVM を構成できます。
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
詳細については、こことここを参照してください。
jvm
パッケージ)OpenJ9 JVM は、HotSpot JVM に代わるメモリ効率の高い代替手段ですが、スループットは若干遅くなります。
IBM は、Semeru という名前の OpenJ9 用のプリコンパイル済みバイナリを提供しています。これは、Docker イメージで使用される JVM です。
国際化用のファイルはここにあります。
新しい言語を追加するには:
locales
配列に追加します。commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
ファイルに翻訳を追加します。ロケールの名前は、2 文字の ISO-639-1 言語コードである必要があります。
commafeed-server
開きます。./mvnw quarkus:dev
を実行しますcommafeed-client
を開きます。npm install
実行するnpm run dev
フロントエンド サーバーは現在 http://localhost:8082 で実行されており、ポート 8083 で実行されているバックエンドに REST リクエストをプロキシしています。