لقد ألهم 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
عبارة عن ملف مضغوط يحتوي على كافة ملفات .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
المتعلق بدليل العمل (المفاتيح في حالة الكباب)-D
(المفاتيح في حالة الكباب).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 بـ 256 ميجابايت، استخدم -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