Google Reader menginspirasi pembaca RSS yang dihosting sendiri, berdasarkan Quarkus dan React/TypeScript.
Docker adalah cara termudah untuk memulai CommaFeed.
Gambar Docker dibuat secara otomatis dan tersedia di https://hub.docker.com/r/athou/commafeed
PikaPods menawarkan solusi hosting awan 1-klik mulai dari $1/bulan dengan kredit selamat datang gratis sebesar $5 dan secara resmi mendukung CommaFeed. PikaPods membagikan 20% pendapatannya kembali ke CommaFeed.
Buka halaman rilis dan unduh versi terbaru untuk sistem operasi dan database pilihan Anda.
Ada dua jenis paket:
linux-x86_64
dan windows-x86_64
dikompilasi secara asli dan berisi executable yang dapat dijalankan secara langsung.jvm
adalah file zip yang berisi semua file .jar
yang diperlukan untuk menjalankan aplikasi. Paket ini berfungsi pada semua platform dan dimulai dengan java -jar quarkus-run.jar
.Jika tersedia untuk sistem operasi Anda, paket asli direkomendasikan karena memiliki waktu startup lebih cepat dan penggunaan memori lebih rendah.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
dapat berupa salah satu dari h2
, postgresql
, mysql
atau mariadb
. Standarnya adalah h2
.-Pnative
mengkompilasi aplikasi ke kode asli. Ini memerlukan instalasi GraalVM (variabel lingkungan GRAALVM_HOME
yang menunjuk ke instalasi GraalVM).-DskipTests
untuk mempercepat proses pembangunan dengan melewatkan tes.Ketika pembangunan selesai:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
. Ekstrak dan jalankan aplikasi dengan java -jar quarkus-run.jar
commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
CommaFeed tidak memerlukan konfigurasi apa pun untuk dijalankan dengan database tertanamnya (H2). File database akan disimpan di direktori data
dari direktori saat ini.
Untuk menggunakan database yang berbeda, Anda perlu mengkonfigurasi properti berikut:
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
Ada beberapa cara untuk mengonfigurasi CommaFeed:
config/application.properties
relatif terhadap direktori kerja (kunci dalam kebab-case)-D
(kunci dalam kotak kebab).env
di direktori kerja (kunci dalam UPPER_CASE)File properti direkomendasikan karena CommaFeed akan dapat memperingatkan tentang properti yang tidak valid dan kesalahan ketik.
Semua pengaturan CommaFeed bersifat opsional dan memiliki nilai default yang masuk akal.
Saat masuk, kredensial disimpan dalam cookie terenkripsi. Kunci enkripsi dibuat secara acak saat startup, artinya Anda harus masuk kembali setelah setiap aplikasi dimulai ulang. Untuk mencegah hal ini, Anda dapat mengatur properti quarkus.http.auth.session.encryption-key
ke nilai tetap (minimal 16 karakter). Semua pengaturan Quarkus lainnya dapat ditemukan di sini.
Saat dimulai, server akan mendengarkan di http://localhost:8082. Pengguna default adalah admin
dan kata sandi default adalah admin
.
Saat CommaFeed aktif dan berjalan, Anda dapat berlangganan feed ini untuk mendapat pemberitahuan tentang rilis baru.
Java Virtual Machine (JVM) secara default agak serakah dan tidak akan melepaskan memori yang tidak terpakai ke sistem operasi. Hal ini karena memperoleh memori dari sistem operasi adalah operasi yang relatif mahal. Hal ini dapat menjadi masalah pada sistem dengan memori terbatas.
native
dan jvm
) JVM dapat dikonfigurasi untuk menggunakan jumlah memori maksimum dengan parameter -Xmx
. Misalnya, untuk membatasi memori JVM hingga 256MB, gunakan -Xmx256m
.
jvm
)Selain pengaturan sebelumnya, JVM dapat dikonfigurasi untuk melepaskan memori yang tidak terpakai ke sistem operasi dengan parameter berikut:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Lihat di sini dan di sini untuk informasi lebih lanjut.
jvm
)OpenJ9 JVM adalah alternatif yang lebih hemat memori dibandingkan HotSpot JVM, dengan mengorbankan throughput yang sedikit lebih lambat.
IBM menyediakan biner yang telah dikompilasi sebelumnya untuk OpenJ9 bernama Semeru. Ini adalah JVM yang digunakan pada image Docker.
File untuk internasionalisasi ada di sini.
Untuk menambahkan bahasa baru:
locales
di:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
yang baru dibuatNama lokal harus berupa kode bahasa ISO-639-1 dua huruf.
commafeed-server
di IDE Java pilihan Anda../mvnw quarkus:dev
commafeed-client
di IDE JavaScript pilihan Anda.npm install
npm run dev
Server frontend sekarang berjalan di http://localhost:8082 dan mem-proxy permintaan REST ke backend yang berjalan pada port 8083