Google 리더는 Quarkus 및 React/TypeScript를 기반으로 하는 자체 호스팅 RSS 리더에서 영감을 받았습니다.
Docker는 CommaFeed를 시작하는 가장 쉬운 방법입니다.
Docker 이미지는 자동으로 빌드되며 https://hub.docker.com/r/athou/commafeed에서 사용할 수 있습니다.
PikaPods는 무료 $5 환영 크레딧과 함께 월 $1부터 시작하는 원클릭 클라우드 호스팅 솔루션을 제공하며 공식적으로 CommaFeed를 지원합니다. PikaPods는 수익의 20%를 CommaFeed에 공유합니다.
릴리스 페이지로 이동하여 선택한 운영 체제 및 데이터베이스에 대한 최신 버전을 다운로드하십시오.
패키지에는 두 가지 유형이 있습니다.
linux-x86_64
및 windows-x86_64
패키지는 기본적으로 컴파일되며 직접 실행할 수 있는 실행 파일을 포함합니다.jvm
패키지는 애플리케이션을 실행하는 데 필요한 모든 .jar
파일이 포함된 zip 파일입니다. 이 패키지는 모든 플랫폼에서 작동하며 java -jar quarkus-run.jar
로 시작됩니다.운영 체제에서 사용할 수 있는 경우 시작 시간이 더 빠르고 메모리 사용량이 적기 때문에 기본 패키지를 사용하는 것이 좋습니다.
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
<database>
h2
, postgresql
, mysql
또는 mariadb
중 하나일 수 있습니다. 기본값은 h2
입니다.-Pnative
애플리케이션을 네이티브 코드로 컴파일합니다. 이를 위해서는 GraalVM을 설치해야 합니다(GraalVM 설치를 가리키는 GRAALVM_HOME
환경 변수).-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가 실행되면 이 피드를 구독하여 새 릴리스에 대한 알림을 받을 수 있습니다.
JVM(Java Virtual Machine)은 기본적으로 욕심이 많으며 사용되지 않은 메모리를 운영 체제에 해제하지 않습니다. 이는 운영 체제에서 메모리를 획득하는 작업이 상대적으로 비용이 많이 들기 때문입니다. 메모리가 제한된 시스템에서는 문제가 될 수 있습니다.
native
및 jvm
패키지) -Xmx
매개변수를 사용하여 최대 메모리 양을 사용하도록 JVM을 구성할 수 있습니다. 예를 들어 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은 Semeru라는 OpenJ9용 사전 컴파일된 바이너리를 제공합니다. Docker 이미지에 사용되는 JVM입니다.
국제화용 파일은 여기에 있습니다.
새 언어를 추가하려면:
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
엽니다../mvnw quarkus:dev
실행commafeed-client
엽니다.npm install
실행npm run dev
실행프런트엔드 서버는 이제 http://localhost:8082에서 실행 중이며 포트 8083에서 실행되는 백엔드에 REST 요청을 프록시하고 있습니다.