ttrss

Ansible role "papanito.ttrss"

Ansible Role GitHub issues GitHub pull requests

Installs an dedicated instance of Tiny Tiny RSS and all it's dependencies (php, PostgreSQL, Lighttpd).

Some restriction/caveats:

  • The role does currently install and use lighttpd
  • The role is not yet intended to install side-by-side of another app
  • Very limited lighttpd configuration e.g. no ssl}

I recommend to use the role on a dedicate cloud instance - see below for an example on how I use it.

Requirements

TTRSS requires now PHP > 7.4

Also be aware of this:

Host installations are not supported starting 2021.

Role Variables

ttrss-specifc

These variables are specific for the tt-rss config incl. lighttpd

Variable Description Default Value
ttrss_hostname Hostname of the url on which the site can be reached {{ ansible_default_ipv4.address }}
ttrss_url_prefix url-prefix, mainly used for default value of ttrss_url https://
ttrss_url SELF_URL_PATH Full URL of your tt-rss installation. This should be set to the location of tt-rss directory, e.g. http://example.org/tt-rss/
You need to set this option correctly otherwise several features including PUSH, bookmarklets and browser integration will not work properly.
"{{ ttrss_url_prefix }}{{ ttrss_hostname }}
ttrss_init_system Service backend for update daemon. systemd or system-v systemd
ttrss_db_user Database user ttrss
ttrss_url Public url of ttrss http://{{ ansible_default_ipv4.address }}
ttrss_db_password Database password, please change when using the role ttrss
ttrss_db_name Database name ttrss
ttrss_db_encoding Database encoding UTF-8
ttrss_db_collate Database collation, defines sort order and character classification en_US.UTF-8
ttrss_db_ctype Database ctype, defines character classification en_US.UTF-8
ttrss_git_repo URL of the Tiny Tiny RSS git repository, change when you want to use a fork https://tt-rss.org/gitlab/fox/tt-rss.git
ttrss_install_path Path to the folder, where Tiny Tiny RSS will be installed /var/www/rss
ttrss_url_path URL PATH of the Tiny Tiny RSS installation, change only when you know what you do `{{ ttrss_install_path
ttrss_enable_gzip Enable gzip out to improve wire performance, This requires PHP Zlib extension on the server true
ttrss_log_destination Sets log destination
  • syslog - logs to system log
  • sql - logs to database, can be seen in Preferences -> System
  • '' - uses PHP logging, usually the http server error log
syslog
ttrss_hostname Hostname (FQDN) of the server ''
ttrss_smtp_from_address address and subject for sending outgoing mail [email protected]
ttrss_smtp_server Hostname:port combination to send outgoing mail (i.e. localhost:25). Blank - use system MTA ''
ttrss_smtp_login Username for SMTP authentication when sending outgoing mail ''
ttrss_smtp_password Password for SMTP authentication when sending outgoing mail ''
ttrss_smtp_secure Select a secure SMTP connection. Allowed values: ssl, tls or empty. ''
ttrss_plugins_git List of git-urls to plugins to install feediron
ttrss_php_executable Path to cli binary /usr/bin/php7.4

The ttrss_plugins_git is a list wherase the nameis also the target folder e.g. {ttrss_install_path}/plugins.local/feediron:

- name: feediron
  url: https://github.com/feediron/ttrss_plugin-feediron.git

php-specific

The role used for php offers much more configuration parameters. Currently we only pass a few which we consider useful

see link above

postgres-specific

These parameters are specific to the postgres installation

The role used for postgres offers much more configuration parameters. Currently we only pass a few which we consider necessary

Variable Description Default Value
ttrss_postgresql_user Postgres admin user postgres
ttrss_postgresql_group User group for admin user postgres
ttrss_postgresql_locales Debian only. Used to generate the locales used by PostgreSQL databases en_US.UTF-8'
ttrss_postgres_users_no_log Whether to output user data when managing users true

Dependencies

Example Playbook

The following playbook creates a server (cx11) on Hetzner Cloud - the instance costs about 2.68€ per month which is quite a nice price:

- hosts: localhost
  gather_facts: no

  pre_tasks:
  - name: Add ssh-keys to hcloud
    hcloud_ssh_key:
      name: "{{ item.key }}"
      public_key: "{{ item.value }}"
      state: present
    with_dict: "{{ ssh_keys }}"
    delegate_to: localhost
    tags:
      - ansible
      - authorised_key


  - name: Create a basic server for ttrss
    hcloud_server:
      name: ttrss
      server_type: cx11
      image: debian-10
      state: present
      ssh_keys: 
        - ansible-user
    delegate_to: localhost
    register: result

  - name: Store ipv4 of host
    set_fact:
      ttrss_server_ipv4: "{{ result.hcloud_server.ipv4_address }}"

- hosts: ttrss
  vars:
  roles:
    { role: papanito.ttrss, ttrss_db_password: secret }

License

This is Free Software, released under the terms of the Apache v2 license.

Author Information

Written by Papanito - Gitlab / Github

About

Role for simplified git repo handling

Install
ansible-galaxy install papanito/ansible-role-ttrss
GitHub repository
License
apache-2.0
Downloads
27
Owner
A passionate DevOps Engineer from Switzerland, father of five and husband of the most beautiful and most amazing woman in the world.