Copyright (C) 2021-2022 Berkhan Berkdemir <berkhan@tekdanisman.com> Copyright (C) 2022 Maciej Delmanowski <drybjed@gmail.com> Copyright (C) 2022 DebOps <https://debops.org/> SPDX-License-Identifier: GPL-3.0-only

debops.miniflux default variables

Web service configuration

miniflux__domain

The DNS domain used by other variables in the debops.miniflux role.

miniflux__domain: '{{ ansible_domain }}'
miniflux__fqdn

String of the Fully Qualified domain names on which the Miniflux application will be available, used by the webserver.

miniflux__fqdn: 'miniflux.{{ miniflux__domain }}'
miniflux__bind

The ip address on which this Miniflux listens on.

miniflux__bind: '127.0.0.1'
miniflux__port

Port number on which this Miniflux listens on.

miniflux__port: '3366'

Application user, group, home

miniflux__user

Name of the UNIX system account used by the Miniflux service.

miniflux__user: 'miniflux'
miniflux__group

Name of the UNIX system group used by the Miniflux service.

miniflux__group: 'miniflux'
miniflux__gecos

Contents of the GECOS field set for the Miniflux account.

miniflux__gecos: 'Miniflux'
miniflux__shell

The default shell set on the Miniflux account.

miniflux__shell: '/usr/sbin/nologin'
miniflux__home

The Miniflux account home directory.

miniflux__home: '{{ (ansible_local.fhs.home | d("/var/local"))
                    + "/" + miniflux__user }}'

PostgreSQL database configuration

The Miniflux database configuration is managed by the debops.postgresql Ansible role. See its documentation for details about the default variable values used in the Miniflux role.

miniflux__database_host

The hostname or IP address of the PostgreSQL database server to use for the Miniflux database.

miniflux__database_host: '{{ ansible_local.postgresql.server | d("localhost") }}'
miniflux__database_port

The TCP port of the PostgreSQL database server which should be used by Miniflux.

miniflux__database_port: '{{ ansible_local.postgresql.port | d("5432") }}'
miniflux__database_name

Name of the PostgreSQL database and its corresponding role used by Miniflux. This role won't be able to login to the database server directly.

miniflux__database_name: 'miniflux_production'
miniflux__database_user

Name of the PostgreSQL role used by Miniflux. This role will be able to login to the PostgreSQL server and access the Miniflux database.

miniflux__database_user: 'miniflux'
miniflux__database_password

Autogenerated password to the Miniflux PostgreSQL user role.

miniflux__database_password: '{{ lookup("password", secret + "/postgresql/" +
                                    (ansible_local.postgresql.delegate_to | d("localhost")) + "/" +
                                    (ansible_local.postgresql.port | d("5432")) + "/credentials/" +
                                    miniflux__database_user + "/password") }}'

Go application deployment

These variables control how the miniflux binary is installed on the host. The installation is performed by the debops.golang role, refer to its documentation for details. The installation definition can be found in the miniflux__golang__dependent_packages variable.

miniflux__upstream_gpg_key

The fingerprint of the GPG key which is used to sign the Miniflux releases. It will be used to verify the downloaded signature file as well as the git tags in the source repository.

miniflux__upstream_gpg_key: '5A7A 89AC F055 24CA A0F3  6F9B AEB7 A164 0710 8DB5'
miniflux__upstream_type

Specify the method which should be used to install Miniflux binary. The apt method will install Miniflux via the configured APT repository, if it's available. The url method will download the miniflux compiled binary and install it directly after verification with the official GPG key. The git method will download Miniflux source code and compile it locally (this method doesn't work on Debian Bullseye due to missing "embed" Go library).

miniflux__upstream_type: 'apt'
miniflux__upstream_version

Version of the Miniflux upstream.

miniflux__upstream_version: '2.0.35'
miniflux__upstream_url_mirror

The base URL of the Miniflux download page, should end with the / character.

miniflux__upstream_url_mirror: 'https://github.com/miniflux/v2/releases/'
miniflux__upstream_platform

Specify the OS type and platform architecture to use for installation. The list of supported architectures and OS types can be found on the https://github.com/miniflux/v2/releases/ page.

miniflux__upstream_platform: 'linux-amd64'
miniflux__upstream_git_repository

The URL of the upstream git repository which contains Miniflux source code.

miniflux__upstream_git_repository: 'https://github.com/miniflux/miniflux'
miniflux__binary

Absolute path to the miniflux Go binary installed on the host. See the debops.golang role for more details.

miniflux__binary: '{{ ansible_local.golang.binaries["miniflux"]
                      if (ansible_local.golang.binaries | d() and
                          ansible_local.golang.binaries.miniflux | d())
                      else "" }}'

Miniflux configuration

The variables below define the contents of the /etc/miniflux.conf configuration file. See miniflux__configuration for more details.

miniflux__default_configuration

Miniflux configuration options defined by the role by default.

miniflux__default_configuration:

  - name: 'run_migrations'
    value: True

  - name: 'database_url'
    value: '{{ "postgres://" + miniflux__database_user
               + ":" + miniflux__database_password
               + "@" + miniflux__database_host
               + ":" + miniflux__database_port
               + "/" + miniflux__database_name }}'

  - name: 'listen_addr'
    value: '{{ miniflux__bind + ":" + miniflux__port }}'

  - name: 'base_url'
    value: '{{ "https://" + miniflux__fqdn }}'
miniflux__configuration

Miniflux configuration options defined on all hosts in the Ansible inventory.

miniflux__configuration: []
miniflux__group_configuration

Miniflux configuration options defined on hosts in a specific Ansible inventory group.

miniflux__group_configuration: []
miniflux__host_configuration

Miniflux configuration options defined on specific hosts in the Ansible inventory.

miniflux__host_configuration: []
miniflux__combined_configuration

Variable which combines all Miniflux configuration lists and is used in role tasks and templates.

miniflux__combined_configuration: '{{ miniflux__default_configuration
                                      + miniflux__configuration
                                      + miniflux__group_configuration
                                      + miniflux__host_configuration }}'

Configuration variables for other Ansible roles

miniflux__keyring__dependent_apt_keys:

  - id: '{{ miniflux__upstream_gpg_key }}'
    url: 'https://apt.miniflux.app/KEY.gpg'
    repo: 'deb https://apt.miniflux.app/ /'
    state: '{{ "present"
               if (miniflux__upstream_type == "apt")
               else "absent" }}'
miniflux__postgresql__dependent_roles

Role configuration for the debops.postgresql Ansible role.

miniflux__postgresql__dependent_roles:

  - name: '{{ miniflux__database_user }}'

  - name: '{{ miniflux__database_name }}'
    flags: [ 'NOLOGIN' ]
miniflux__postgresql__dependent_groups

Group configuration for the debops.postgresql Ansible role.

miniflux__postgresql__dependent_groups:

  - roles: [ '{{ miniflux__database_user }}' ]
    groups: [ '{{ miniflux__database_name }}' ]
    database: '{{ miniflux__database_name }}'
miniflux__postgresql__dependent_databases

Database configuration for the debops.postgresql Ansible role.

miniflux__postgresql__dependent_databases:

  - name: '{{ miniflux__database_name }}'
    owner: '{{ miniflux__database_name }}'
miniflux__postgresql__dependent_pgpass

~/.pgpass configuration for the debops.postgresql Ansible role.

miniflux__postgresql__dependent_pgpass:

  - owner: '{{ miniflux__user }}'
    group: '{{ miniflux__group }}'
    home: '{{ miniflux__home }}'
    system: True
miniflux__postgresql__dependent_extensions

Configuration of PostgreSQL extensions for the debops.postgresql Ansible role.

miniflux__postgresql__dependent_extensions:

  - database: '{{ miniflux__database_name }}'
    extension: 'hstore'
miniflux__golang__dependent_packages

Configuration for the debops.golang Ansible role.

miniflux__golang__dependent_packages:

  - name: 'miniflux'
    upstream_type: '{{ miniflux__upstream_type }}'
    apt_packages: [ 'miniflux' ]
    gpg:
      - id: '{{ miniflux__upstream_gpg_key }}'
        url: 'https://apt.miniflux.app/KEY.gpg'
    url:
      - src: '{{ miniflux__upstream_url_mirror + "download/" + miniflux__upstream_version + "/miniflux-" + miniflux__upstream_platform }}'
        dest: 'releases/{{ miniflux__upstream_platform }}/miniflux/miniflux/" + miniflux__upstream_version + "/miniflux_" + miniflux__upstream_version + "_linux_amd64'
    url_binaries:
      - src: 'releases/{{ miniflux__upstream_platform }}/miniflux/miniflux/" + miniflux__upstream_version + "/miniflux_" + miniflux__upstream_version + "_linux_amd64'
        dest: 'miniflux'
        notify: [ 'Restart miniflux' ]
    git:
      - repo: '{{ miniflux__upstream_git_repository }}'
        version: '{{ miniflux__upstream_version }}'
        build_script: |
          make clean linux-amd64
    git_binaries:
      - src: 'github.com/miniflux/v2/bin/miniflux.app'
        dest: 'miniflux'
        notify: [ 'Restart miniflux' ]
miniflux__nginx__dependent_upstreams

Upstream configuration for the debops.nginx Ansible role.

miniflux__nginx__dependent_upstreams:

  - name: 'miniflux-upstream'
    server: '{{ miniflux__bind }}:{{ miniflux__port }}'
miniflux__nginx__dependent_servers

Server configuration for the debops.nginx Ansible role.

miniflux__nginx__dependent_servers:

  - name: '{{ miniflux__fqdn }}'
    by_role: 'debops.miniflux'
    filename: 'debops.miniflux'
    type: 'proxy'
    proxy_location: '/'
    proxy_headers: True
    proxy_options: |
      proxy_redirect off;
    proxy_pass: 'http://miniflux-upstream'
miniflux__etc_services__dependent_list

Configuration for the debops.etc_services Ansible role.

miniflux__etc_services__dependent_list:

  - name: 'miniflux'
    port: '{{ miniflux__port }}'