mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
README update
This commit is contained in:
73
README.md
73
README.md
@@ -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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -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.
|
|||||||
|
|
||||||
[](https://www.pikapods.com/pods?run=commafeed)
|
[](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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user