FreshRSS로 RSS 리더를 자체 호스팅하는 방법

카페 안 테이블 위에 있는 노트북의 사진.

FreshRSS는 리눅스 서버를 위한 간단하고 쉽게 배포할 수 있는 웹 기반 RSS 피드 리더입니다. Tiny Tiny RSS와 유사하게, 웹 브라우저에서 접근할 수 있는 깔끔하고 크로스 플랫폼 인터페이스를 제공합니다.

이 문서에서는 Ubuntu에 FreshRSS를 설치하는 방법을 보여줍니다. 또한 다중 사용자 세션을 위해 리더를 구성하는 방법도 강조할 것입니다.

목차

  • FreshRSS의 장점
  • FreshRSS 설치하기
  • 리버스 프록시 및 SSL 설정하기
  • FreshRSS 접근 및 구성하기

FreshRSS의 장점?

FreshRSS의 가장 큰 장점 중 하나는 내장된 웹 스크래퍼가 포함되어 있다는 것입니다. 이는 지원하지 않는 웹사이트에서도 기본 RSS 피드를 생성할 수 있음을 의미합니다.

FreshRSS의 웹 스크래핑 도구를 보여주는 스크린샷.

FreshRSS는 현대 콘텐츠 플랫폼에서 푸시 알림도 지원합니다. 결과적으로 이 플랫폼은 게시물 업데이트에 대해 매우 빠르고 반응적일 수 있습니다. 마지막으로, 설치가 간단하여 자가 호스팅을 시작하는 초보 사용자에게 이상적인 프로젝트입니다.

완전히 실행 중인 FreshRSS 인스턴스를 보여주는 스크린샷.

FreshRSS 설치하기

가정: 이 문서는 A 및 PTR 레코드가 VPS 인스턴스의 IP 주소 및 호스트 이름을 가리키는 작동하는 도메인 이름이 있다고 가정합니다.

우리는 FreshRSS를 설치하기 위해 Docker를 사용할 것입니다.

Docker 설치하기

프로젝트 웹사이트에서 Docker 저장소의 서명 키를 가져옵니다:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg  
sudochmod a+r /etc/apt/keyrings/docker.gpg

Docker를 위한 새로운 저장소 파일을 만듭니다:

sudonano/etc/apt/sources.list.d/docker.list

새로운 저장소 파일 안에 다음 줄의 코드를 작성합니다:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

시스템 저장소를 새로 고치고, 시스템을 업데이트한 후 Docker 바이너리를 설치합니다:

sudo apt update &&sudo apt upgrade  
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

FreshRSS Docker 컨테이너 빌드하기

사용자의 홈 디렉토리에 FreshRSS를 위한 새로운 디렉토리를 만들고 그 안으로 들어갑니다:

mkdir ~/freshrss &&cd ~/freshrss

좋아하는 텍스트 편집기를 사용하여 “docker-compose.yml” 파일을 만듭니다:

nano ./docker-compose.yml

새로운 docker-compose 파일 안에 다음 코드 블록을 붙여넣습니다:

---  
version: "2.4"  
volumes:  
  data: null  
  extensions: null  
services:  
  freshrss:  
    image: freshrss/freshrss:latest  
    build:  
      context: https://github.com/FreshRSS/FreshRSS.git#latest  
      dockerfile: Docker/Dockerfile-Alpine  
    container_name: freshrss  
    hostname: freshrss  
    restart: unless-stopped  
    logging:  
      options:  
        max-size: 10m  
    volumes:  
      - data:/var/www/FreshRSS/data  
      - extensions:/var/www/FreshRSS/extensions  
    ports:  
      - "8080:80"  
    environment:  
      TZ: Asia/Manila # CHANGE TO YOUR TIMEZONE  
      CRON_MIN: 3,33

docker-compose.yml 파일을 저장합니다. 다음 명령어를 실행하여 Docker 컨테이너를 빌드합니다:

sudodocker compose up -d

리버스 프록시 및 SSL 설정하기

FreshRSS 인스턴스가 실행 중이면, 다음으로 Nginx를 구성하여 리버스 프록시를 설정하여 도메인 이름을 통해 공개적으로 접근할 수 있도록 합니다.

먼저, 인스턴스를 위한 Nginx 사이트 구성 파일을 만듭니다:

sudonano/etc/nginx/sites-available/freshrss

새로운 사이트 구성 파일 안에 다음 코드 블록을 붙여넣습니다:

server {  
    listen 80;  
    listen [::]:80;  
  
    root                    /var/www/html;  
    server_name             freshrss.your-domain-name.here;  
  
    location /{  
        proxy_set_header    X-Forwarded-For $remote_addr;  
        proxy_set_header    Host $http_host;  
        proxy_set_header    X-Forwarded-Proto $scheme;  
        proxy_pass          http://localhost:8080;  
}  
}

새로운 사이트 구성 파일을 저장하고, 다음 명령어를 실행하여 “/etc/nginx/sites-enabled”에 대한 심볼릭 링크를 생성합니다:

sudoln-s/etc/nginx/sites-available/freshrss /etc/nginx/sites-enabled/

Nginx 구성을 테스트합니다:

sudo nginx -t

모든 것이 괜찮다면, Nginx 서버 데몬을 다시 로드하고 시스템 시작 시 활성화합니다:

sudo systemctl reload nginx

인스턴스에 대한 SSL 활성화하기

SSL 인증서를 얻기 위해, 시스템에 코어 스냅 데몬을 설치합니다:

sudo snap install core

스냅을 사용하여 전자 프론티어 재단(EFF)의 certbot 유틸리티를 가져오고 설치합니다:

sudo snap install certbot --classic

다음 명령어를 실행하여 EFF에 certbot 설치를 등록합니다:

sudo certbot register --agree-tos-m [email protected]

다음 명령어를 실행하여 인스턴스에 대한 SSL 인증서를 요청합니다:

sudo certbot --nginx-d your-freshrss-domain-name

FreshRSS 접근 및 구성하기

웹 브라우저를 열고 새로운 FreshRSS 인스턴스의 주소로 이동합니다. 페이지의 드롭다운 목록을 클릭하고 FreshRSS가 실행될 언어를 선택한 후 “제출”을 클릭합니다.

FreshRSS의 언어 선택 프롬프트를 보여주는 스크린샷.

이 작업을 수행하면 FreshRSS의 자가 테스트 모듈이 로드되어 현재 인스턴스가 제대로 실행되고 있는지 확인합니다. 계속하려면 페이지 하단으로 스크롤한 후 “다음 단계로 이동”을 클릭합니다.

종속성 확인 프롬프트를 보여주는 스크린샷.

드롭다운 목록을 클릭하고 “SQLite”를 선택한 후 “제출”을 클릭합니다.

데이터베이스 선택 프롬프트를 보여주는 스크린샷.

인스턴스의 관리자 사용자 세부 정보를 입력한 후 “제출”을 클릭하여 생성합니다.

이 인스턴스의 관리자 사용자 세부 정보를 보여주는 스크린샷.

“설치 완료”를 클릭하여 새로운 FreshRSS 인스턴스를 제대로 시작합니다.

사용자 등록 활성화하기

먼저, FreshRSS 관리자 계정에 로그인한 후 페이지 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.

FreshRSS의 설정 버튼을 강조하는 스크린샷.

“관리” 카테고리로 스크롤한 후 “시스템 구성”을 선택합니다.

“사용자 등록 양식” 하위 카테고리로 이동하여 “등록 양식” 옆의 드롭다운 상자를 클릭한 후 “활성화: 계정 수 제한 없음” 옵션을 선택합니다.

FreshRSS 인스턴스의 등록 전환을 보여주는 스크린샷.

페이지 하단의 “제출” 버튼을 클릭하여 새로운 사이트 구성을 저장합니다.

기존 사용자의 데이터 삭제하기

FreshRSS 관리자 계정으로 이동한 후 페이지 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.

“관리” 카테고리로 이동한 후 “사용자 관리”를 선택합니다.

이렇게 하면 현재 FreshRSS 인스턴스의 사용자 목록이 있는 페이지가 열립니다. 비활성화하려는 사용자의 이름을 클릭합니다.

사용자 관리 프롬프트 내에서 클릭 가능한 사용자 이름을 강조하는 스크린샷.

“삭제” 버튼을 클릭하여 사용자의 RSS 피드를 삭제합니다.

현재 로드된 사용자에 대한

자체 웹 기반 RSS 피드 리더를 호스팅하는 것은 온라인에서 개인 데이터를 장악하는 시작에 불과합니다. Peertube로 자신의 비디오 공유 웹사이트를 호스팅하는 방법을 알아보세요.

이미지 출처: Yongma Seo via Unsplash 및 FreshRSS Github (로고). 모든 변경 및 스크린샷은 Ramces Red에 의해 작성되었습니다.