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
(ключи в регистре kebab).env
в рабочем каталоге (ключи в UPPER_CASE)Рекомендуется использовать файл свойств, поскольку CommaFeed сможет предупреждать о недопустимых свойствах и опечатках.
Все настройки CommaFeed не являются обязательными и имеют разумные значения по умолчанию.
При входе в систему учетные данные сохраняются в зашифрованном файле cookie. Ключ шифрования генерируется случайным образом при запуске, а это означает, что вам придется входить в систему после каждого перезапуска приложения. Чтобы предотвратить это, вы можете установить для свойства quarkus.http.auth.session.encryption-key
фиксированное значение (минимум 16 символов). Все остальные настройки Quarkus можно найти здесь.
При запуске сервер будет прослушивать http://localhost:8082. Пользователь по умолчанию — admin
, а пароль по умолчанию — admin
.
Когда CommaFeed заработает, вы можете подписаться на этот канал, чтобы получать уведомления о новых выпусках.
Виртуальная машина Java (JVM) по умолчанию довольно жадна и не освобождает неиспользуемую память операционной системе. Это связано с тем, что получение памяти от операционной системы является относительно дорогостоящей операцией. Это может быть проблематично в системах с ограниченной памятью.
native
пакеты и пакеты jvm
) JVM можно настроить на использование максимального объема памяти с помощью параметра -Xmx
. Например, чтобы ограничить JVM объемом памяти 256 МБ, используйте -Xmx256m
.
jvm
)В дополнение к предыдущему параметру JVM можно настроить на освобождение неиспользуемой памяти операционной системе со следующими параметрами:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Смотрите здесь и здесь для получения дополнительной информации.
jvm
)JVM OpenJ9 — это более эффективная с точки зрения использования памяти альтернатива JVM HotSpot, но за счет немного более медленной пропускной способности.
IBM предоставляет предварительно скомпилированные двоичные файлы для OpenJ9 под названием Semeru. Это JVM, используемая в образе Docker.
Файлы для интернационализации находятся здесь.
Чтобы добавить новый язык:
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
в предпочитаемой вами Java IDE../mvnw quarkus:dev
commafeed-client
в предпочитаемой вами среде разработки JavaScript.npm install
npm run dev
Интерфейсный сервер теперь работает по адресу http://localhost:8082 и передает запросы REST на серверную часть, работающую на порту 8083.