Google Reader 启发了自托管 RSS 阅读器,基于 Quarkus 和 React/TypeScript。
Docker 是开始使用 CommaFeed 的最简单方法。
Docker 镜像是自动构建的,可从 https://hub.docker.com/r/athou/commafeed 获取
PikaPods 提供一键式云托管解决方案,起价为每月 1 美元,并提供 5 美元的免费欢迎积分,并正式支持 CommaFeed。 PikaPods 将 20% 的收入分享给 CommaFeed。
转到发行页面并下载适合您选择的操作系统和数据库的最新版本。
有两种类型的包:
linux-x86_64
和windows-x86_64
软件包是本机编译的,并且包含可以直接运行的可执行文件。jvm
包是一个 zip 文件,其中包含运行应用程序所需的所有.jar
文件。该包适用于所有平台,并以java -jar quarkus-run.jar
启动。如果您的操作系统可用,建议使用本机包,因为它具有更快的启动时间和更低的内存使用量。
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
可以是h2
、 postgresql
、 mysql
或mariadb
之一。默认为h2
。-Pnative
将应用程序编译为本机代码。这需要安装 GraalVM( GRAALVM_HOME
环境变量指向 GraalVM 安装)。-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
属性文件(短横线大小写的键)-D
为前缀(短横线大小写的键).env
文件(大写字母)建议使用属性文件,因为 CommaFeed 将能够警告无效属性和拼写错误。
所有 CommaFeed 设置都是可选的,并且具有合理的默认值。
登录时,凭据存储在加密的 cookie 中。加密密钥是在启动时随机生成的,这意味着您每次重新启动应用程序后都必须重新登录。为了防止这种情况,您可以将quarkus.http.auth.session.encryption-key
属性设置为固定值(最少 16 个字符)。所有其他 Quarkus 设置都可以在此处找到。
启动后,服务器将侦听 http://localhost:8082。默认用户是admin
,默认密码是admin
。
当 CommaFeed 启动并运行时,您可以订阅此源以获取新版本的通知。
Java 虚拟机 (JVM) 默认情况下相当贪婪,不会将未使用的内存释放给操作系统。这是因为从操作系统获取内存是一个相对昂贵的操作。这在内存有限的系统上可能会出现问题。
native
和jvm
包)可以使用-Xmx
参数将 JVM 配置为使用最大内存量。例如,要将 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 为 OpenJ9 提供了名为 Semeru 的预编译二进制文件。这是 Docker 镜像中使用的 JVM。
国际化文件位于此处。
添加新语言:
locales
数组中:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
文件区域设置的名称应该是两个字母的 ISO-639-1 语言代码。
commafeed-server
。./mvnw quarkus:dev
commafeed-client
。npm install
npm run dev
前端服务器现在在 http://localhost:8082 上运行,并将 REST 请求代理到在端口 8083 上运行的后端