Lector RSS autohospedado inspirado en Google Reader, basado en Quarkus y React/TypeScript.
Docker es la forma más sencilla de empezar a utilizar CommaFeed.
Las imágenes de Docker se crean automáticamente y están disponibles en https://hub.docker.com/r/athou/commafeed
PikaPods ofrece soluciones de alojamiento en la nube con 1 clic desde $1/mes con un crédito de bienvenida gratuito de $5 y es compatible oficialmente con CommaFeed. PikaPods comparte el 20% de los ingresos con CommaFeed.
Vaya a la página de lanzamiento y descargue la última versión para su sistema operativo y base de datos de su elección.
Hay dos tipos de paquetes:
linux-x86_64
y windows-x86_64
se compilan de forma nativa y contienen un ejecutable que se puede ejecutar directamente.jvm
es un archivo zip que contiene todos los archivos .jar
necesarios para ejecutar la aplicación. Este paquete funciona en todas las plataformas y se inicia con java -jar quarkus-run.jar
.Si está disponible para su sistema operativo, se recomienda el paquete nativo porque tiene un tiempo de inicio más rápido y un menor uso de memoria.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
puede ser uno de h2
, postgresql
, mysql
o mariadb
. El valor predeterminado es h2
.-Pnative
compila la aplicación en código nativo. Esto requiere que GraalVM esté instalado (variable de entorno GRAALVM_HOME
que apunta a una instalación de GraalVM).-DskipTests
para acelerar el proceso de construcción omitiendo pruebas.Cuando se complete la construcción:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
. Extráigalo y ejecute la aplicación con java -jar quarkus-run.jar
commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
CommaFeed no requiere ninguna configuración para ejecutarse con su base de datos integrada (H2). El archivo de la base de datos se almacenará en el directorio data
del directorio actual.
Para utilizar una base de datos diferente, deberá configurar las siguientes propiedades:
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
Hay varias formas de configurar CommaFeed:
config/application.properties
relativo al directorio de trabajo (claves en kebab-case)-D
(teclas en kebab-case).env
en el directorio de trabajo (claves en MAYÚSCULAS)Se recomienda el archivo de propiedades porque CommaFeed podrá advertir sobre propiedades no válidas y errores tipográficos.
Todas las configuraciones de CommaFeed son opcionales y tienen valores predeterminados sensatos.
Al iniciar sesión, las credenciales se almacenan en una cookie cifrada. La clave de cifrado se genera aleatoriamente al inicio, lo que significa que tendrás que volver a iniciar sesión después de cada reinicio de la aplicación. Para evitar esto, puede establecer la propiedad quarkus.http.auth.session.encryption-key
en un valor fijo (mínimo 16 caracteres). Todas las demás configuraciones de Quarkus se pueden encontrar aquí.
Cuando se inicie, el servidor escuchará en http://localhost:8082. El usuario predeterminado es admin
y la contraseña predeterminada es admin
.
Cuando CommaFeed esté en funcionamiento, podrá suscribirse a este feed para recibir notificaciones sobre nuevos lanzamientos.
La máquina virtual Java (JVM) es bastante codiciosa de forma predeterminada y no liberará memoria no utilizada al sistema operativo. Esto se debe a que adquirir memoria del sistema operativo es una operación relativamente costosa. Esto puede resultar problemático en sistemas con memoria limitada.
native
y jvm
) La JVM se puede configurar para utilizar una cantidad máxima de memoria con el parámetro -Xmx
. Por ejemplo, para limitar la JVM a 256 MB de memoria, utilice -Xmx256m
.
jvm
)Además de la configuración anterior, la JVM se puede configurar para liberar memoria no utilizada al sistema operativo con los siguientes parámetros:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Consulte aquí y aquí para obtener más información.
jvm
)OpenJ9 JVM es una alternativa con mayor eficiencia de memoria que HotSpot JVM, a costa de un rendimiento ligeramente más lento.
IBM proporciona binarios precompilados para OpenJ9 llamados Semeru. Esta es la JVM utilizada en la imagen de Docker.
Los archivos para la internacionalización se encuentran aquí.
Para agregar un nuevo idioma:
locales
en:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
recién creadoEl nombre de la configuración regional debe ser el código de idioma ISO-639-1 de dos letras.
commafeed-server
en su IDE de Java preferido../mvnw quarkus:dev
commafeed-client
en su IDE de JavaScript preferido.npm install
npm run dev
El servidor frontend ahora se ejecuta en http://localhost:8082 y envía solicitudes REST al backend que se ejecuta en el puerto 8083.