diff options
author | Jesse Luehrs <doy@tozt.net> | 2018-11-13 00:19:06 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2018-11-13 00:19:06 -0500 |
commit | bf33ac997636c4b6c199cfff1e171ffaff437c91 (patch) | |
tree | 2f3d94f0ad3fddde69fec83c4d65356d60dea479 /modules/ttrss | |
parent | b5fe67cdda8f05ffe814a923b1a69f7169b9db5c (diff) | |
download | puppet-tozt-bf33ac997636c4b6c199cfff1e171ffaff437c91.tar.gz puppet-tozt-bf33ac997636c4b6c199cfff1e171ffaff437c91.zip |
actually, let's make this shared again
Diffstat (limited to 'modules/ttrss')
-rw-r--r-- | modules/ttrss/files/config.php | 47 | ||||
-rw-r--r-- | modules/ttrss/files/pacman-hook | 10 | ||||
-rw-r--r-- | modules/ttrss/manifests/init.pp | 126 | ||||
-rw-r--r-- | modules/ttrss/templates/postgres-service | 3 |
4 files changed, 186 insertions, 0 deletions
diff --git a/modules/ttrss/files/config.php b/modules/ttrss/files/config.php new file mode 100644 index 0000000..5f1eb51 --- /dev/null +++ b/modules/ttrss/files/config.php @@ -0,0 +1,47 @@ +<?php + +define('DB_TYPE', "pgsql"); +define('DB_HOST', "localhost"); +define('DB_USER', "ttrss"); +define('DB_NAME', "ttrss"); +define('DB_PASS', ""); +define('DB_PORT', '5432'); +define('MYSQL_CHARSET', 'UTF8'); + +define('SELF_URL_PATH', 'https://rss.tozt.net/'); +define('SINGLE_USER_MODE', false); +define('SIMPLE_UPDATE_MODE', false); + +define('PHP_EXECUTABLE', '/usr/bin/php'); +define('LOCK_DIRECTORY', 'lock'); +define('CACHE_DIR', 'cache'); +define('ICONS_DIR', 'feed-icons'); +define('ICONS_URL', 'feed-icons'); + +define('AUTH_AUTO_CREATE', true); +define('AUTH_AUTO_LOGIN', true); + +define('FORCE_ARTICLE_PURGE', 0); + +define('SPHINX_SERVER', 'localhost:9312'); +define('SPHINX_INDEX', 'ttrss, delta'); + +define('ENABLE_REGISTRATION', false); +define('REG_NOTIFY_ADDRESS', 'ttrss@tozt.net'); +define('REG_MAX_USERS', 2); + +define('SESSION_COOKIE_LIFETIME', 86400); + +define('SMTP_FROM_NAME', 'Tiny Tiny RSS'); +define('SMTP_FROM_ADDRESS', 'ttrss-noreply@tozt.net'); +define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours'); +define('SMTP_SERVER', ''); +define('SMTP_LOGIN', ''); +define('SMTP_PASSWORD', ''); +define('SMTP_SECURE', 'tls'); + +define('CHECK_FOR_UPDATES', false); +define('ENABLE_GZIP_OUTPUT', false); +define('PLUGINS', 'auth_internal, note'); +define('LOG_DESTINATION', 'sql'); +define('CONFIG_VERSION', 26); diff --git a/modules/ttrss/files/pacman-hook b/modules/ttrss/files/pacman-hook new file mode 100644 index 0000000..f9cf938 --- /dev/null +++ b/modules/ttrss/files/pacman-hook @@ -0,0 +1,10 @@ +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = tt-rss + +[Action] +Description = Updating TT-RSS Database +When = PostTransaction +Exec = /usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/tt-rss/update.php --update-schema diff --git a/modules/ttrss/manifests/init.pp b/modules/ttrss/manifests/init.pp new file mode 100644 index 0000000..e7c9d2f --- /dev/null +++ b/modules/ttrss/manifests/init.pp @@ -0,0 +1,126 @@ +class ttrss($dbpath) { + include systemd + + package { + [ + "tt-rss", + "postgresql", + "php-pgsql", + "php-fpm", + ]: + ensure => installed; + } + + file { + $dbpath: + ensure => directory, + owner => 'postgres', + group => 'postgres', + require => Package["postgresql"]; + "$dbpath/data": + ensure => directory, + owner => 'postgres', + group => 'postgres', + require => [ + Package["postgresql"], + File[$dbpath], + ]; + "/etc/systemd/system/postgresql.service.d": + ensure => directory; + "/etc/systemd/system/postgresql.service.d/override.conf": + content => template('ttrss/postgres-service'), + notify => Exec["/usr/bin/systemctl daemon-reload"], + require => File["/etc/systemd/system/postgresql.service.d"]; + "/etc/webapps/tt-rss/config.php": + source => "puppet:///modules/ttrss/config.php", + require => Package["tt-rss"]; + "/etc/pacman.d/hooks": + ensure => directory; + "/etc/pacman.d/hooks/tt-rss.hook": + source => "puppet:///modules/ttrss/pacman-hook", + require => [ + File["/etc/pacman.d/hooks"], + Package["tt-rss"], + ] + } + + exec { "initialize db path": + command => "/usr/bin/initdb -D $dbpath/data", + user => 'postgres', + creates => "$dbpath/data/PG_VERSION", + require => [ + File["$dbpath/data"], + Package["postgresql"], + ]; + } + + service { "postgresql": + ensure => running, + enable => true, + require => [ + Package["postgresql"], + Exec["initialize db path"], + ]; + } + + exec { "create db user": + provider => shell, + command => "createuser -d ttrss", + user => 'postgres', + unless => "psql -Atc 'select usename from pg_catalog.pg_user' | grep -F ttrss", + require => [ + Package["postgresql"], + Service["postgresql"], + ]; + } + + exec { "create db": + provider => shell, + command => "createdb -U ttrss ttrss", + user => 'postgres', + unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F ttrss", + require => [ + Exec["create db user"], + Package["postgresql"], + Service["postgresql"], + ]; + } + + exec { "fixup php.ini": + provider => shell, + command => "sed -i 's/^;\\(extension=.*pgsql\\)$/\\1/' /etc/php/php.ini", + unless => "grep -q '^extension=pgsql$' /etc/php/php.ini && grep -q '^extension=pdo_pgsql$' /etc/php/php.ini", + require => Package["php-pgsql"]; + } + + exec { "initialize tt-rss db": + provider => shell, + command => "psql ttrss -U ttrss -f /usr/share/webapps/tt-rss/schema/ttrss_schema_pgsql.sql", + user => 'postgres', + unless => "psql -d ttrss -Atc 'select relname from pg_catalog.pg_class;' | grep -q '^ttrss'", + require => [ + Package["postgresql"], + Service["postgresql"], + Exec["create db"], + Package["tt-rss"], + File["/etc/webapps/tt-rss/config.php"], + ] + } + + service { "tt-rss": + ensure => running, + enable => true, + require => [ + Package["tt-rss"], + Exec["fixup php.ini"], + File["/etc/webapps/tt-rss/config.php"], + Exec["create db"], + ] + } + + service { "php-fpm": + ensure => running, + enable => true, + require => Package["php-fpm"]; + } +} diff --git a/modules/ttrss/templates/postgres-service b/modules/ttrss/templates/postgres-service new file mode 100644 index 0000000..aa63550 --- /dev/null +++ b/modules/ttrss/templates/postgres-service @@ -0,0 +1,3 @@ +[Service] +Environment=PGROOT=<%= @dbpath %> +PIDFile=<%= @dbpath %>/data/postmaster.pid |