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

FreshRSS는 리눅스 서버를 위한 간단하고 쉽게 배포할 수 있는 웹 기반 RSS 피드 리더입니다. Tiny Tiny RSS와 유사하게, 웹 브라우저에서 접근할 수 있는 깔끔하고 크로스 플랫폼 인터페이스를 제공합니다.
이 문서에서는 Ubuntu에 FreshRSS를 설치하는 방법을 보여줍니다. 또한 다중 사용자 세션을 위해 리더를 구성하는 방법도 강조할 것입니다.
목차
- FreshRSS의 장점
- FreshRSS 설치하기
- 리버스 프록시 및 SSL 설정하기
- FreshRSS 접근 및 구성하기
FreshRSS의 장점?
FreshRSS의 가장 큰 장점 중 하나는 내장된 웹 스크래퍼가 포함되어 있다는 것입니다. 이는 지원하지 않는 웹사이트에서도 기본 RSS 피드를 생성할 수 있음을 의미합니다.

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.gpgDocker를 위한 새로운 저장소 파일을 만듭니다:
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 nginxFreshRSS 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,33docker-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-nameFreshRSS 접근 및 구성하기
웹 브라우저를 열고 새로운 FreshRSS 인스턴스의 주소로 이동합니다. 페이지의 드롭다운 목록을 클릭하고 FreshRSS가 실행될 언어를 선택한 후 “제출”을 클릭합니다.

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

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

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

“설치 완료”를 클릭하여 새로운 FreshRSS 인스턴스를 제대로 시작합니다.
사용자 등록 활성화하기
먼저, FreshRSS 관리자 계정에 로그인한 후 페이지 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.

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

페이지 하단의 “제출” 버튼을 클릭하여 새로운 사이트 구성을 저장합니다.
기존 사용자의 데이터 삭제하기
FreshRSS 관리자 계정으로 이동한 후 페이지 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.
“관리” 카테고리로 이동한 후 “사용자 관리”를 선택합니다.
이렇게 하면 현재 FreshRSS 인스턴스의 사용자 목록이 있는 페이지가 열립니다. 비활성화하려는 사용자의 이름을 클릭합니다.

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

자체 웹 기반 RSS 피드 리더를 호스팅하는 것은 온라인에서 개인 데이터를 장악하는 시작에 불과합니다. Peertube로 자신의 비디오 공유 웹사이트를 호스팅하는 방법을 알아보세요.
이미지 출처: Yongma Seo via Unsplash 및 FreshRSS Github (로고). 모든 변경 및 스크린샷은 Ramces Red에 의해 작성되었습니다.