FreshRSS on NetBSD

At time of this post, FreshRSS is not packaged in pkgsrc. So we install it manually to test its features before starting a packaging process.

Installation

First we fetch the last release available at https://github.com/FreshRSS/FreshRSS/releases/latest/:

ftp -o FreshRSS-1.27.1.tar.gz https://github.com/FreshRSS/FreshRSS/archive/refs/tags/1.27.1.tar.gz

Then we create a directory where our HTTP server can serve the files and we extract them:

mkdir -p /srv/http/freshrss"
tar -x -f FreshRSS-1.27.1.tar.gz -C /srv/http/freshrss

PostgreSQL

We use PostgreSQL as DBMS. We need some packages to be installed:

Ajout d’un nom de domaine

L’ajout d’un nouveau nom de domaine dans son réseau peut impliquer la modification de plusieurs fichiers de configuration, la création de nouvelles clés et le redémarrage de plusieurs services.

BIND

La clé générée servira à Certbot pour renouveler les certificats en requêtant le serveur de noms grâce au protocole RFC2136.

# tsig-keygen -a sha512 triaxx.io
acl "localnet" {
  127.0.0.1/32;
  192.168.42.0/24;        
  ::1/128;               
  2003:ab4:4213:101::/64;
};

key "triaxx.io" {
  algorithm              hmac-sha512;
  secret                 "ThE_vErY_sEcReT_kEy==";
};

view "internal" {
  match-clients {
    "localnet";
  };
  zone "triaxx.io" {
    type                 primary;
    file                 "/etc/namedb/zones/internal/triaxx.io.db";
  };
};

view "external" {
  match-clients {
    "any";
  };
    zone "triaxx.io" {
    type                 primary;
    file                 "/etc/namedb/zones/external/triaxx.io.db";
    allow-transfer       { ns1; };
    update-policy {
      grant              "triaxx.io."      name    "_acme-challenge.triaxx.io."        "txt";
      grant              "triaxx.io."      name    "_acme-challenge.mx.triaxx.io."     "txt";
      grant              "triaxx.io."      name    "_acme-challenge.ns0.triaxx.io."    "txt";
      grant              "triaxx.io."      name    "_acme-challenge.ns1.triaxx.io."    "txt";
      grant              "triaxx.io."      name    "_acme-challenge.www.triaxx.io."    "txt";
    };
    dnssec-policy        default;
    inline-signing       yes;
  };
};

La zone externe peut être configurée de la manière suivante :

NGINX + Apache httpd sous NetBSD

Introduction

NGINX peut faire office de serveur web mais également de reverse proxy. Nous allons ici l’utiliser pour relayer les requêtes vers le serveur Apache httpd.

Apache http

Ci-dessous un fichier de configuration minimal permettant de servir les fichiers statiques produits par Hugo et installés dans le répertoire /srv/www/hugo/public.

Listen         127.0.0.1:8080
ServerRoot     "/usr/pkg"

LoadModule     authz_core_module               lib/httpd/mod_authz_core.so
LoadModule     mpm_event_module                lib/httpd/mod_mpm_event.so
LoadModule     dir_module                      lib/httpd/mod_dir.so
LoadModule     log_config_module               lib/httpd/mod_log_config.so
LoadModule     unixd_module                    lib/httpd/mod_unixd.so

DocumentRoot   "/srv/www/hugo/public"
ErrorLog       "/var/log/www/httpd-error.log"
LogLevel       info

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<IfModule log_config_module>
  LogFormat    "%h %l %u %t \"%r\" %>s %b"     common
  CustomLog    "/var/log/www/httpd-access.log" common
</IfModule>

<IfModule unixd_module>
  User         httpd
  Group        www 
</IfModule>

<Directory "/">
  Require      all                             granted
</Directory>

NGINX

Ci-dessous un fichier de configuration minimal permettant de relayer les requêtes HTTP/HTTPS reçu à destination de l’hôte www.

Premier billet avec Hugo

Créer rapidement un blogue à partir de fichiers Markdown, nous en avons toujours rêvé… et la communauté des développeurs Go l’a fait !

Introduction

Hugo est un logiciel pour générer un site statique à partir d’une arborescence de fichiers Markdown.

Création du site

L’arborescence du site est créée dans le répertoire triaxx.io avec la commande ci-dessous.

$ hugo new site triaxx.io

Cette arborescence contient un ensemble de répertoires et de fichiers.

$ cd triaxx.io
$ find .
.
./archetypes
./archetypes/default.md
./content
./layouts
./static
./i18n
./data
./assets
./themes
./hugo.toml

Création du thème

Hugo a besoin d’un thème pour générer les pages du site. Il est possible d’en créer un vierge avec la commande suivante.