class shiori ( $port = 8080, $dir = '/var/www/shiori', ) { # on arch this is available through the aur package { 'shiori-bin': ensure => installed, } user { 'shiori': ensure => present, system => true, home => $dir, } file { $dir: ensure => directory, owner => shiori, group => shiori, mode => '0750', } file { [ "${dir}/archive", "${dir}/thumb", ] : ensure => directory, owner => shiori, group => shiori, mode => '0770', } file { "${dir}/shiori.db": owner => 'shiori', group => 'shiori', mode => '0660', } file { '/etc/systemd/system/shiori.service': ensure => file, source => 'puppet:///modules/shiori/shiori.service', } file { '/etc/conf.d/shiori': ensure => 'file', content => @("EOF") # This file is managed by Puppet. PORT=${port} SHIORI_DIR=${dir} | EOF } service { 'shiori': ensure => running, enable => true, require => [ File['/etc/systemd/system/shiori.service'], File['/etc/conf.d/shiori'], ], } # Users could be managed here, through shioris HTTP API }