fasheng / elfeed-protocol

Provide extra protocols to make like Fever, NewsBlur, Nextcloud/ownCloud News and Tiny Tiny RSS work with elfeed
GNU General Public License v3.0
100 stars 18 forks source link

Instructions to help configure and install TTRSS #70

Open samtux opened 2 weeks ago

samtux commented 2 weeks ago

After a long, long time trying to set up various RSS services, I have finally succeeded through TTRSS. I share instructions if these can be of help:

  1. Download some of the plugins TTRSS on a shared volume with Docker:
mkdir -p /home/myuser/srv/ttrss/plugins/
cd /home/myuser/srv/ttrss/plugins/
git clone https://github.com/SqrtMinusOne/elfeed-sync.git elfeed_sync
git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever

with the following content according to the recommendation of https://github.com/SqrtMinusOne/elfeed-sync.

server {
  listen 80;
  root /srv/ttrss;
  client_max_body_size 10M;

  index index.php index.html;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass localhost:9000;
    fastcgi_read_timeout 600;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
  }

  location /cache {
    deny all;
  }

  location = /config.php {
    deny all;
  }
}

elfeed-syn can also be an alternative synchronization solution:

https://github.com/SqrtMinusOne/elfeed-sync

  1. install TTRSS with Docker, in this case I made use of the following project for my Orange PI ARM64, but it can work for any architecture:

https://github.com/nVentiveUX/docker-ttrss

docker network create ttrss_net
docker run \
        -d \
        --name ttrss_database \
        -v ttrss_db_vol:/var/lib/postgresql/data \
        -e POSTGRES_USER=ttrss \
        -e POSTGRES_PASSWORD=ttrss \
        -p 5432:5433 \
        --network ttrss_net \
        postgres:12.6-alpine
docker run
        -d \
        --name ttrss
        -e TTRSS_DB_HOST=“ttrss_database” \
        -e TTRSS_SELF_URL_PATH="https://ttrss.duckdns.org/” \
        -e “TTRSS_PLUGINS=auth_internal, auth_remote, nginx_xaccel, elfeed_sync, fever” \
        -v /home/myuser/srv/ttrss/plugins:/srv/ttrss/plugins.local \
        -v /home/myuser/srv/ttrss/nginx/conf.d/ttrss.conf:/etc/nginx/http.d/ttrss.conf \
        -e TTRSS_DB_TYPE=“pgsql” \
        -p 9000:80 \
        --network ttrss_net \
        nventiveux/ttrss:latest
  1. In emacs, after installing elfeed-protocol, elfeed-goodies, use the following configuration:
(use-package elfeed
  :ensure t
  :bind (("C-x w" . elfeed))
  :custom
    (elfeed-db-directory  (concat (getenv "HOME") "/.elfeed")))

(use-package elfeed-goodies
 :init
 (elfeed-goodies/setup)
 :config
 (setq elfeed-goodies/entry-pane-size 0.6))

(use-package elfeed-protocol
  :ensure t
  :demand t
  :after elfeed
  :config
  (elfeed-protocol-enable)
  :custom
  (setq elfeed-use-curl t)
  (elfeed-set-timeout 36000)
  (setq elfeed-curl-extra-arguments '("--insecure")) ;necessary for https without a trust certificate
  (setq elfeed-protocol-ttrss-maxsize 200) ;; bigger than 200 is invalid
  (setq elfeed-protocol-ttrss-fetch-category-as-tag t)
  :config
  (setq elfeed-protocol-feeds '(("ttrss+https://samuelmesa@ttrss.duckdns.org"
                                 :password "myultrasecretpassword"))))

(let* ((proto-id "ttrss+https://samuelmesa@ttrss.duckdns.org"))
  (elfeed-protocol-ttrss-set-update-mark
   proto-id 'update (+ elfeed-protocol-ttrss-api-max-limit
                       (elfeed-protocol-ttrss-get-update-mark proto-id 'update))))
  1. Finally, use the elfeed-protocol-reinit and elfeed-protocol-update commands to update the synchronization.

https://gist.github.com/samtux/0750dd8c76ba03ac4cf2ad22bf3f8f87