nixos/modules/services/mediawiki.nix

109 lines
2.9 KiB
Nix

{ lib, pkgs, config, ... }:
let
version = pkgs.mediawiki.version;
major = lib.versions.major version;
minor = lib.versions.minor version;
in
{
age.secrets.mediawiki-admin-passwd = {
file = ../../secrets/mediakiwi/mediawiki-admin-passwd.age;
owner = "mediawiki";
};
services.mediawiki = {
enable = true;
name = "Wiki Crans";
nginx.hostName = "mediakiwi.crans.org";
webserver = "nginx";
passwordFile = config.age.secrets.mediawiki-admin-passwd.path;
extraConfig = ''
# Server settings
$wgFavicon = 'https://www.crans.org/images/favicon.ico';
$wgLogo = 'https://www.crans.org/images/crans.svg';
# E-mail settings
$wgEnableEmail = true;
# $wgSMTP = [
# 'host' => 'smtp.adm.crans.org',
# 'IDHost' => 'crans.org',
# 'localhost' => 'crans.org',
# 'port' => ,
# 'auth' => false,
# # 'username' => ,
# # 'password' => ,
# ];
$wgPasswordSender = 'root@crans.org';
$wgEmergencyContact = 'contact@crans.org';
$wgNoReplyAddress = 'root@crans.org';
$wgEnableUserEmail = true;
$wgEnableSpecialMute = true;
$wgAllowHTMLEmail = true;
$wgEnotifUseRealName = false;
$wgEnotifFromEditor = false;
$wgEnotifRevealEditorAddress = false;
$wgEnotifUserTalk = true;
$wgEnotifMinorEdits = true;
$wgEnotifWatchlist = true;
# Peut-être utilisé pour les Wikistes
$wgUsersNotifiedOnAllChanges = [];
# Theme
$wgDefaultSkin = 'citizen';
$wgCitizenThemeColor = '#AD1F1F';
$wgCitizenEnableARFonts = true;
$wgCitizenEnableCJKFonts = true;
$wgLanguageCode = 'fr';
# Disable anonymous editing
$wgGroupPermissions['*']['edit'] = false;
# Extensions
$wgWikiEditorRealtimePreview = true;
# Debug
# $wgShowExceptionDetails = true;
$wgDebugToolbar = true;
# $wgShowDebug = true;
# $wgDevelopmentWarnings = true;
'';
skins = {
Citizen = pkgs.fetchFromGitHub {
owner = "StarCitizenTools";
repo = "mediawiki-skins-Citizen";
tag = "v3.2.0";
sha256 = "sha256-XtjYMBK2pINwbAzAKFJ+nWxcFXQd2E/Gqf3x+3Pa8VE=";
};
};
extensions = {
# Enables embedded extensions
Math = null;
MultimediaViewer = null;
SyntaxHighlight_GeSHi = null;
VisualEditor = null;
WikiEditor = null;
# Popups
TextExtracts = null;
PageImages = null;
Popups = pkgs.fetchFromGitHub {
owner = "wikimedia";
repo = "mediawiki-extensions-Popups";
rev = "REL" + major + "_" + minor;
# Le SHA doit être changé à chaque nouveau commit de traduction.
# Pas de meilleure solution à ma connaissance pour suivre les releases.
sha256 = "sha256-deKDEC87yTQrToZC5yNAH9tmV/5pFa4gsaSuOYXfIEo=";
};
};
};
}