README update

This commit is contained in:
Athou
2024-08-12 22:43:41 +02:00
parent 044694487d
commit 21ce9db4b0
2 changed files with 56 additions and 33 deletions

View File

@@ -1,6 +1,6 @@
# CommaFeed # CommaFeed
Google Reader inspired self-hosted RSS reader, based on Dropwizard and React/TypeScript. Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeScript.
![preview](https://user-images.githubusercontent.com/1256795/184886828-1973f148-58a9-4c6d-9587-ee5e5d3cc2cb.png) ![preview](https://user-images.githubusercontent.com/1256795/184886828-1973f148-58a9-4c6d-9587-ee5e5d3cc2cb.png)
@@ -16,6 +16,12 @@ Google Reader inspired self-hosted RSS reader, based on Dropwizard and React/Typ
- OPML import/export - OPML import/export
- REST API and a Fever-compatible API for native mobile apps - REST API and a Fever-compatible API for native mobile apps
- [Browser extension](https://github.com/Athou/commafeed-browser-extension) - [Browser extension](https://github.com/Athou/commafeed-browser-extension)
- Compiles to native code for very fast startup and low memory usage
- Supports 4 databases
- H2 (embedded database)
- PostgreSQL
- MySQL
- MariaDB
## Deployment ## Deployment
@@ -33,28 +39,31 @@ PikaPods shares 20% of the revenue back to CommaFeed.
[![PikaPods](https://www.pikapods.com/static/run-button.svg)](https://www.pikapods.com/pods?run=commafeed) [![PikaPods](https://www.pikapods.com/static/run-button.svg)](https://www.pikapods.com/pods?run=commafeed)
### Download precompiled package ### Download a precompiled package
mkdir commafeed && cd commafeed Go to the [release page](https://github.com/Athou/commafeed/releases) and download the latest version for your operating
wget https://github.com/Athou/commafeed/releases/latest/download/commafeed.jar system and database of choice.
wget https://github.com/Athou/commafeed/releases/latest/download/config.yml.example -O config.yml
java -Djava.net.preferIPv4Stack=true -jar commafeed.jar server config.yml
The server will listen on http://localhost:8082. The default There are two types of packages:
user is `admin` and the default password is `admin`.
- The `linux` and `windows` packages are compiled natively and contain an executable that can be run directly.
- The `jvm` package contains a Java `.jar` file that works on all platforms and is started with
`java -jar quarkus-run.jar`.
If available for your operating system, the native package is recommended because it has a faster startup time and lower
memory usage.
### Build from sources ### Build from sources
git clone https://github.com/Athou/commafeed.git ./mvnw clean package -P<database> [-DskipTests] [-Pnative]
cd commafeed
./mvnw clean package
cp commafeed-server/config.yml.example config.yml
java -Djava.net.preferIPv4Stack=true -jar commafeed-server/target/commafeed.jar server config.yml
The server will listen on http://localhost:8082. The default - `<database>` can be one of `h2`, `postgresql`, `mysql` or `mariadb`.
user is `admin` and the default password is `admin`. - `-DskipTests` is optional but recommended because tests require a Docker environment to run against a real database.
- `-Pnative` compiles the application to native code. This requires GraalVM to be installed (GRAALVM_HOME environment
variable
pointing to a GraalVM installation).
### Memory management ### Memory management (`jvm` package only)
The Java Virtual Machine (JVM) is rather greedy by default and will not release unused memory to the The Java Virtual Machine (JVM) is rather greedy by default and will not release unused memory to the
operating system. This is because acquiring memory from the operating system is a relatively expensive operation. operating system. This is because acquiring memory from the operating system is a relatively expensive operation.
@@ -86,6 +95,36 @@ IBM provides precompiled binaries for OpenJ9
named [Semeru](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/). named [Semeru](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/).
This is the JVM used in the [Docker image](https://github.com/Athou/commafeed/blob/master/Dockerfile). This is the JVM used in the [Docker image](https://github.com/Athou/commafeed/blob/master/Dockerfile).
## Configuration
There are multiple ways to configure CommaFeed:
- a properties file in `config/application.properties` (kebab-case)
- Command line arguments prefixed with `-D` (kebab-case)
- Environment variables (UPPER_CASE)
- an .env file in the working directory (UPPER_CASE)
The properties file is recommended because CommaFeed will be able to warn about invalid properties and typos.
CommaFeed only requires 3 properties to be configured:
- `quarkus.datasource.username`
- `quarkus.datasource.password`
- `quarkus.datasource.jdbc-url`
- e.g. for H2: `jdbc:h2:/commafeed/data/db;DEFRAG_ALWAYS=TRUE`
- e.g. for PostgreSQL: `jdbc:postgresql://localhost:5432/commafeed`
- e.g. for MySQL:
`jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC`
- e.g. for MariaDB:
`jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC`
All
other [CommaFeed settings](https://github.com/Athou/commafeed/blob/master/commafeed-server/src/main/java/com/commafeed/CommaFeedConfiguration.java)
are optional and have sensible default values.
When started, the server will listen on http://localhost:8082.
The default user is `admin` and the default password is `admin`.
## Translation ## Translation
Files for internationalization are Files for internationalization are
@@ -108,7 +147,7 @@ two-letters [ISO-639-1 language code](http://en.wikipedia.org/wiki/List_of_ISO_6
- Open `commafeed-server` in your preferred Java IDE. - Open `commafeed-server` in your preferred Java IDE.
- CommaFeed uses Lombok, you need the Lombok plugin for your IDE. - CommaFeed uses Lombok, you need the Lombok plugin for your IDE.
- Start `CommaFeedApplication.java` in debug mode with `server config.dev.yml` as arguments - run `mvn quarkus:dev`
### Frontend ### Frontend

View File

@@ -1,16 +0,0 @@
TODO
----
MVP:
- update readme
- update docker readme
- update release notes (+ mention h2 migration has been removed, upgrade to last 4.x is required)
Nice to have:
- find a better way to scan rome classes
- remove suppresswarnings "deprecation"
- remove rest assured or use only rest assured
- rename "servlets" since they are now rest endpoints
- warnings hibernate on startup