Leitor RSS auto-hospedado inspirado no Google Reader, baseado em Quarkus e React/TypeScript.
Docker é a maneira mais fácil de começar a usar o CommaFeed.
As imagens Docker são criadas automaticamente e estão disponíveis em https://hub.docker.com/r/athou/commafeed
PikaPods oferece soluções de hospedagem em nuvem com 1 clique a partir de US$ 1/mês com um crédito de boas-vindas gratuito de US$ 5 e oferece suporte oficial ao CommaFeed. PikaPods compartilha 20% da receita com a CommaFeed.
Vá para a página de lançamento e baixe a versão mais recente para o sistema operacional e banco de dados de sua escolha.
Existem dois tipos de pacotes:
linux-x86_64
e windows-x86_64
são compilados nativamente e contêm um executável que pode ser executado diretamente.jvm
é um arquivo zip que contém todos os arquivos .jar
necessários para executar o aplicativo. Este pacote funciona em todas as plataformas e é iniciado com java -jar quarkus-run.jar
.Se disponível para o seu sistema operacional, o pacote nativo é recomendado porque possui um tempo de inicialização mais rápido e menor uso de memória.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
pode ser h2
, postgresql
, mysql
ou mariadb
. O padrão é h2
.-Pnative
compila o aplicativo em código nativo. Isso requer que o GraalVM seja instalado (variável de ambiente GRAALVM_HOME
apontando para uma instalação do GraalVM).-DskipTests
para acelerar o processo de construção, ignorando testes.Quando a compilação for concluída:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
. Extraia-o e execute o aplicativo com java -jar quarkus-run.jar
commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
O CommaFeed não requer nenhuma configuração para funcionar com seu banco de dados incorporado (H2). O arquivo de banco de dados será armazenado no diretório data
do diretório atual.
Para usar um banco de dados diferente, você precisará configurar as seguintes propriedades:
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
Existem várias maneiras de configurar o CommaFeed:
config/application.properties
relativo ao diretório de trabalho (chaves no kebab-case)-D
(chaves no kebab-case).env
no diretório de trabalho (chaves em UPPER_CASE)O arquivo de propriedades é recomendado porque o CommaFeed poderá avisar sobre propriedades inválidas e erros de digitação.
Todas as configurações do CommaFeed são opcionais e possuem valores padrão razoáveis.
Ao fazer login, as credenciais são armazenadas em um cookie criptografado. A chave de criptografia é gerada aleatoriamente na inicialização, o que significa que você terá que fazer login novamente após cada reinicialização do aplicativo. Para evitar isso, você pode definir a propriedade quarkus.http.auth.session.encryption-key
para um valor fixo (mín. 16 caracteres). Todas as outras configurações do Quarkus podem ser encontradas aqui.
Quando iniciado, o servidor escutará http://localhost:8082. O usuário padrão é admin
e a senha padrão é admin
.
Quando o CommaFeed estiver instalado e funcionando, você poderá assinar este feed para ser notificado sobre novos lançamentos.
A Java Virtual Machine (JVM) é bastante gananciosa por padrão e não libera memória não utilizada para o sistema operacional. Isso ocorre porque adquirir memória do sistema operacional é uma operação relativamente cara. Isto pode ser problemático em sistemas com memória limitada.
native
e jvm
) A JVM pode ser configurada para usar uma quantidade máxima de memória com o parâmetro -Xmx
. Por exemplo, para limitar a JVM a 256 MB de memória, use -Xmx256m
.
jvm
)Além da configuração anterior, a JVM pode ser configurada para liberar memória não utilizada para o sistema operacional com os seguintes parâmetros:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Veja aqui e aqui para mais informações.
jvm
)A JVM OpenJ9 é uma alternativa com maior eficiência de memória à JVM HotSpot, ao custo de um rendimento um pouco mais lento.
A IBM fornece binários pré-compilados para OpenJ9 chamados Semeru. Esta é a JVM usada na imagem Docker.
Os arquivos para internacionalização estão localizados aqui.
Para adicionar um novo idioma:
locales
em:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
recém-criadoO nome da localidade deve ser o código de idioma ISO-639-1 de duas letras.
commafeed-server
em seu Java IDE preferido../mvnw quarkus:dev
commafeed-client
em seu IDE JavaScript preferido.npm install
npm run dev
O servidor front-end agora está em execução em http://localhost:8082 e está fazendo proxy de solicitações REST para o back-end em execução na porta 8083