blob: 20442fc72e7b3fdaabeb5ae9730908b68cbea9a3 [file] [log] [blame]
# Run service that spits out an unbound-compatible blocklist of websites,
# as mandated by polish telecommunications law.
#
# https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/gry-hazardowe-17581037/art-15-f
# Dz.U.2019.847 t.j.
# Art. 15f. [Rejestr domen służących do oferowania gier hazardowych niezgodnie z ustawą]
# 5. Przedsiębiorca telekomunikacyjny świadczący usługi dostępu do sieci
# Internet jest obowiązany do:
# 1) nieodpłatnego uniemożliwienia dostępu do stron internetowych
# wykorzystujących nazwy domen internetowych wpisanych do Rejestru
# poprzez ich usunięcie z systemów teleinformatycznych przedsiębiorców
# telekomunikacyjnych, służących do zamiany nazw domen internetowych na
# adresy IP, nie później niż w ciągu 48 godzin od dokonania wpisu do
# Rejestru;
# 2) nieodpłatnego przekierowania połączeń odwołujących się do nazw domen
# internetowych wpisanych do Rejestru do strony internetowej prowadzonej
# przez ministra właściwego do spraw finansów publicznych, zawierającej
# komunikat, skierowany do odbiorców usługi dostępu do Internetu
# obejmujący w szczególności informacje o lokalizacji Rejestru, wpisaniu
# szukanej nazwy domeny internetowej do tego Rejestru, listę podmiotów
# legalnie oferujących gry hazardowe na terytorium Rzeczypospolitej
# Polskiej, a także powiadomienie o grożącej odpowiedzialności
# karno-skarbowej uczestnika gier urządzanych wbrew przepisom ustawy;
# 3) nieodpłatnego umożliwienia dostępu do stron internetowych
# wykorzystujących nazwy domen wykreślonych z Rejestru, nie później niż w
# ciągu 48 godzin od wykreślenia nazwy domeny internetowej z Rejestru.
{ config, pkgs, lib, ... }:
with lib;
let
rshUnbound = pkgs.buildGoModule {
pname = "rsh-unbound";
version = "20200926";
src = pkgs.fetchFromGitHub {
owner = "q3k";
repo = "rsh-unbound";
rev = "3d98c754adadddfae59387d033aef531f47dee5d";
sha256 = "1ia33893m1dknw36vss97limlb1d28z5nkrkw6b4mp1igdgqsfcz";
};
vendorSha256 = "1w94g2dwhf47jmds95frb26ypjmis5zhyy85rmd124v0nz3axzhf";
};
cfg = config.hscloud.rsh;
in {
options.hscloud.rsh = with types; {
enable = mkOption {
type = bool;
default = false;
description = "Enable the RSH-Unboudn service.";
};
out = mkOption {
type = str;
description = "Output file for generated unbound config.";
};
};
config.systemd.services.rsh = mkIf cfg.enable {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${rshUnbound}/bin/rsh-unbound -output ${cfg.out} -register_endpoint https://hazard.mf.gov.pl/api/Register";
Restart = "always";
RestartSec = "60";
};
};
}