summaryrefslogtreecommitdiffstats
path: root/modules/ttrss
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-11-13 00:19:06 -0500
committerJesse Luehrs <doy@tozt.net>2018-11-13 00:19:06 -0500
commitbf33ac997636c4b6c199cfff1e171ffaff437c91 (patch)
tree2f3d94f0ad3fddde69fec83c4d65356d60dea479 /modules/ttrss
parentb5fe67cdda8f05ffe814a923b1a69f7169b9db5c (diff)
downloadpuppet-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.php47
-rw-r--r--modules/ttrss/files/pacman-hook10
-rw-r--r--modules/ttrss/manifests/init.pp126
-rw-r--r--modules/ttrss/templates/postgres-service3
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