define blog::instance ( String $blog_title = $name, String $author, Boolean $has_comments = false, String $subtitle = '', Optional[String] $vcs_repo = undef, ) { $root = "${blog::blog_root}/${title}" $safe_title = base64('encode', $blog_title) vcsrepo { $root: ensure => latest, provider => git, source => 'https://github.com/HugoNikanor/website-blog-2.git', revision => 'master', # keep_local_changes => true, owner => 'hugo', group => 'www-data', } if $vcs_repo { vcsrepo { "${root}/entries": ensure => latest, provider => git, source => $vcs_repo, revision => 'master', owner => 'hugo', group => 'www-data', } } else { file { "${root}/entries": ensure => directory, } } file { "${root}/settings.php": ensure => file, content => epp('blog/settings.php.epp', { author => $author, title => $title, subtitle => $subtitle, has_comments => $has_comments, }), } file { "${root}/footnote": ensure => directory, recurse => true, } $foot_files = [ ['about.md', 'About'], ['contact.md', 'Contact'], ['legal.md', 'Legal'], ['qna.md', '"Q&A"'], ] $foot_files.each |$item| { file { "${root}/footnote/${item[0]}": source => "puppet:///modules/blog/footers/${item[0]}", } } file { "${root}/special-files.ini": ensure => file, content => $foot_files, } $certname = lookup('certname') if $blog::domain { nginx::resource::location { "${safe_title} - server - /": location => '/', try_files => ['$uri', '$uri/', '=404'], index_files => [], ssl => true, autoindex => on, server => [ "${safe_title} - server", ] } nginx::resource::location { "${safe_title} - server - php": location => '~ \.php$', fastcgi_params => 'snippets/fastcgi-php.conf', fastcgi => 'unix:/run/php/php-fpm.sock', ssl => true, server => [ "${safe_title} - server", ], } nginx::resource::location { "${safe_title} - server - ht": location => '~ /\.ht', location_cfg_append => { deny => 'all' }, index_files => [], ssl => true, server => [ "${safe_title} - server", ], } } }