Google Reader เป็นแรงบันดาลใจให้โปรแกรมอ่าน RSS โฮสต์เอง โดยใช้ Quarkus และ React/TypeScript
Docker เป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งาน CommaFeed
อิมเมจ Docker ถูกสร้างขึ้นโดยอัตโนมัติและมีอยู่ที่ https://hub.docker.com/r/athou/commafeed
PikaPods นำเสนอโซลูชั่นโฮสติ้งคลาวด์แบบคลิกเดียวเริ่มต้นที่ $1/เดือน พร้อมเครดิตต้อนรับฟรี $5 และรองรับ CommaFeed อย่างเป็นทางการ PikaPods แบ่งรายได้ 20% คืนให้กับ CommaFeed
ไปที่หน้าเผยแพร่และดาวน์โหลดเวอร์ชันล่าสุดสำหรับระบบปฏิบัติการและฐานข้อมูลที่คุณเลือก
แพ็คเกจมีสองประเภท:
linux-x86_64
และ windows-x86_64
ได้รับการคอมไพล์โดยกำเนิดและมีไฟล์ปฏิบัติการที่สามารถเรียกใช้ได้โดยตรงjvm
เป็นไฟล์ zip ที่มีไฟล์ .jar
ทั้งหมดที่จำเป็นในการรันแอปพลิเคชัน แพ็คเกจนี้ทำงานได้บนทุกแพลตฟอร์มและเริ่มต้นด้วย java -jar quarkus-run.jar
หากมีให้ใช้งานสำหรับระบบปฏิบัติการของคุณ แนะนำให้ใช้แพ็คเกจดั้งเดิมเนื่องจากมีเวลาเริ่มต้นที่เร็วกว่าและการใช้หน่วยความจำน้อยกว่า
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
สามารถเป็นหนึ่งใน h2
, postgresql
, mysql
หรือ mariadb
ค่าเริ่มต้นคือ h2
-Pnative
รวบรวมแอปพลิเคชันเป็นโค้ดเนทีฟ สิ่งนี้จำเป็นต้องติดตั้ง GraalVM (ตัวแปรสภาพแวดล้อม GRAALVM_HOME
ชี้ไปที่การติดตั้ง GraalVM)-DskipTests
เพื่อเร่งกระบวนการสร้างโดยการข้ามการทดสอบเมื่อสร้างเสร็จแล้ว:
commafeed-server/target/commafeed-<version>-<database>-jvm.zip
แตกไฟล์และรันแอปพลิเคชันด้วย java -jar quarkus-run.jar
commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]
CommaFeed ไม่ต้องการการกำหนดค่าใดๆ เพื่อทำงานกับฐานข้อมูลแบบฝัง (H2) ไฟล์ฐานข้อมูลจะถูกจัดเก็บไว้ในไดเร็กทอรี data
ของไดเร็กทอรีปัจจุบัน
หากต้องการใช้ฐานข้อมูลอื่น คุณจะต้องกำหนดค่าคุณสมบัติต่อไปนี้:
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
มีหลายวิธีในการกำหนดค่า CommaFeed:
config/application.properties
สัมพันธ์กับไดเร็กทอรีการทำงาน (คีย์ใน kebab-case)-D
(คีย์ใน kebab-case).env
ในไดเร็กทอรีการทำงาน (คีย์ใน UPPER_CASE)แนะนำให้ใช้ไฟล์คุณสมบัติเนื่องจาก CommaFeed จะสามารถเตือนเกี่ยวกับคุณสมบัติที่ไม่ถูกต้องและการพิมพ์ผิดได้
การตั้งค่า CommaFeed ทั้งหมดเป็นทางเลือกและมีค่าเริ่มต้นที่สมเหตุสมผล
เมื่อเข้าสู่ระบบ ข้อมูลประจำตัวจะถูกจัดเก็บไว้ในคุกกี้ที่เข้ารหัส คีย์เข้ารหัสจะถูกสร้างขึ้นแบบสุ่มเมื่อเริ่มต้นระบบ ซึ่งหมายความว่าคุณจะต้องเข้าสู่ระบบอีกครั้งหลังจากรีสตาร์ทแอปพลิเคชันแต่ละครั้ง เพื่อป้องกันสิ่งนี้ คุณสามารถตั้งค่าคุณสมบัติ quarkus.http.auth.session.encryption-key
ให้เป็นค่าคงที่ (อักขระขั้นต่ำ 16 ตัว) สามารถดูการตั้งค่า Quarkus อื่นๆ ทั้งหมดได้ที่นี่
เมื่อเริ่มต้น เซิร์ฟเวอร์จะฟังบน http://localhost:8082 ผู้ใช้เริ่มต้นคือ admin
และรหัสผ่านเริ่มต้นคือ admin
เมื่อ CommaFeed เปิดใช้งาน คุณสามารถสมัครรับฟีดนี้เพื่อรับการแจ้งเตือนเกี่ยวกับการเปิดตัวใหม่
Java Virtual Machine (JVM) ค่อนข้างโลภโดยค่าเริ่มต้นและจะไม่ปล่อยหน่วยความจำที่ไม่ได้ใช้ไปยังระบบปฏิบัติการ เนื่องจากการรับหน่วยความจำจากระบบปฏิบัติการเป็นการดำเนินการที่ค่อนข้างแพง นี่อาจเป็นปัญหาได้บนระบบที่มีหน่วยความจำจำกัด
native
และ jvm
) JVM สามารถกำหนดค่าเพื่อใช้จำนวนหน่วยความจำสูงสุดด้วยพารามิเตอร์ -Xmx
ตัวอย่างเช่น หากต้องการจำกัดหน่วยความจำ JVM ไว้ที่ 256MB ให้ใช้ -Xmx256m
jvm
)นอกเหนือจากการตั้งค่าก่อนหน้านี้แล้ว JVM ยังสามารถกำหนดค่าให้ปล่อยหน่วยความจำที่ไม่ได้ใช้ไปยังระบบปฏิบัติการด้วยพารามิเตอร์ต่อไปนี้:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
ดูที่นี่และที่นี่สำหรับข้อมูลเพิ่มเติม
jvm
)OpenJ9 JVM เป็นทางเลือกที่ประหยัดหน่วยความจำมากกว่า HotSpot JVM โดยมีปริมาณการประมวลผลที่ช้ากว่าเล็กน้อย
IBM จัดให้มีไบนารีที่คอมไพล์แล้วสำหรับ OpenJ9 ชื่อ Semeru นี่คือ JVM ที่ใช้ในอิมเมจ Docker
ไฟล์สำหรับการทำให้เป็นสากลอยู่ที่นี่
หากต้องการเพิ่มภาษาใหม่:
locales
ใน:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
ที่สร้างขึ้นใหม่ชื่อของสถานที่ควรเป็นรหัสภาษา ISO-639-1 ตัวอักษรสองตัว
commafeed-server
ใน Java IDE ที่คุณต้องการ./mvnw quarkus:dev
commafeed-client
ใน JavaScript IDE ที่คุณต้องการnpm install
npm run dev
ขณะนี้เซิร์ฟเวอร์ส่วนหน้าทำงานที่ http://localhost:8082 และกำลังพร็อกซีคำขอ REST ไปยังแบ็กเอนด์ที่ทำงานบนพอร์ต 8083