mediawiki: enable SemanticMediaWiki
This commit is contained in:
parent
fe34704699
commit
44b6fe7e8b
17
flake.lock
17
flake.lock
|
@ -1,5 +1,21 @@
|
|||
{
|
||||
"nodes": {
|
||||
"MediaWikiExtensionsComposer": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1710203136,
|
||||
"narHash": "sha256-yn4ZzzaYTZu46SvgctwtiISwC7rzda+1PwvaX6Zxq58=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "f4489ac8400b1570d49204ff27b958f49c554007",
|
||||
"revCount": 1,
|
||||
"type": "git",
|
||||
"url": "https://gitea.c3d2.de/c3d2/MediaWikiExtensionsComposer.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://gitea.c3d2.de/c3d2/MediaWikiExtensionsComposer.git"
|
||||
}
|
||||
},
|
||||
"affection-src": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
|
@ -487,6 +503,7 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"MediaWikiExtensionsComposer": "MediaWikiExtensionsComposer",
|
||||
"affection-src": "affection-src",
|
||||
"alert2muc": "alert2muc",
|
||||
"bevy-julia": "bevy-julia",
|
||||
|
|
11
flake.nix
11
flake.nix
|
@ -93,7 +93,11 @@
|
|||
utils.follows = "flake-utils";
|
||||
};
|
||||
};
|
||||
# hydra-ca.url = "github:mlabs-haskell/hydra/aciceri/ca-derivations";
|
||||
# extra repository to not infalte this repository's size
|
||||
MediaWikiExtensionsComposer = {
|
||||
url = "git+https://gitea.c3d2.de/c3d2/MediaWikiExtensionsComposer.git";
|
||||
flake = false;
|
||||
};
|
||||
microvm = {
|
||||
url = "github:astro/microvm.nix";
|
||||
inputs = {
|
||||
|
@ -215,7 +219,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, alert2muc, c3d2-user-module, deployment, disko, fenix, heliwatch, microvm, naersk, nixos, nixos-hardware, nixos-modules, buzzrelay, caveman, oparl-scraper, scrapers, secrets, skyflake, sshlogd, sops-nix, spacemsg, ticker, tigger, yammat, zentralwerk, ... }:
|
||||
outputs = inputs@{ self, alert2muc, c3d2-user-module, deployment, disko, fenix, heliwatch, MediaWikiExtensionsComposer, microvm, naersk, nixos, nixos-hardware, nixos-modules, buzzrelay, caveman, oparl-scraper, scrapers, secrets, skyflake, sshlogd, sops-nix, spacemsg, ticker, tigger, yammat, zentralwerk, ... }:
|
||||
let
|
||||
inherit (nixos) lib;
|
||||
|
||||
|
@ -475,6 +479,9 @@
|
|||
modules = [
|
||||
self.nixosModules.microvm
|
||||
./hosts/mediawiki
|
||||
{
|
||||
_module.args = { inherit MediaWikiExtensionsComposer; };
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, libC, pkgs, ... }:
|
||||
{ config, lib, libC, MediaWikiExtensionsComposer, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.mediawiki;
|
||||
|
@ -69,6 +69,33 @@ in
|
|||
url = "https://web.archive.org/web/20230710142618/https://extdist.wmflabs.org/dist/extensions/PluggableAuth-REL1_40-519c6d2.tar.gz";
|
||||
sha256 = "sha256-N1+OV1UdzvU4iXhaS/+fuEoAXqrkVyyEPDirk0vrT8A=";
|
||||
};
|
||||
# source https://github.com/Die-KoMa/mediawiki/blob/main/packages/default.nix#L32-L47
|
||||
# TODO: generalize
|
||||
SemanticMediaWiki = let
|
||||
drv = import MediaWikiExtensionsComposer {
|
||||
noDev = true;
|
||||
inherit pkgs;
|
||||
php = pkgs.php81;
|
||||
phpPackages = pkgs.php81Packages;
|
||||
};
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "mediawiki-extensions-composer";
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp -R ${drv}/extensions/SemanticMediaWiki/* $out
|
||||
cp -R ${drv}/vendor vendor
|
||||
|
||||
pushd vendor/composer/
|
||||
substituteInPlace *.json *.php \
|
||||
--replace "/extensions/SemanticMediaWiki" ""
|
||||
popd
|
||||
|
||||
cp -R vendor $out/
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
name = "C3D2";
|
||||
|
@ -157,9 +184,9 @@ in
|
|||
|
||||
wfLoadExtension('ConfirmEdit/QuestyCaptcha');
|
||||
$wgCaptchaClass = 'QuestyCaptcha';
|
||||
$wgCaptchaQuestions[] = array( 'question' => 'How is C3D2 logo in ascii?', 'answer' => '<<</>>' );
|
||||
$wgCaptchaQuestions[] = array('question' => 'How is C3D2 logo in ascii?', 'answer' => '<<</>>');
|
||||
|
||||
wfLoadExtension( 'Interwiki' );
|
||||
wfLoadExtension('Interwiki');
|
||||
$wgGroupPermissions['sysop']['interwiki'] = true;
|
||||
|
||||
wfLoadExtension('Cite');
|
||||
|
@ -178,6 +205,20 @@ in
|
|||
# LDAP
|
||||
$LDAPProviderDomainConfigs = "${config.sops.secrets."mediawiki/ldapprovider".path}";
|
||||
$wgPluggableAuth_EnableLocalLogin = true;
|
||||
|
||||
# SemanticMediaWiki
|
||||
# TODO: expose https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/web-apps/mediawiki.nix#L19
|
||||
$smwgConfigFileDir = "/var/lib/mediawiki";
|
||||
# default was 100 which is already occupied, using 200 to 215
|
||||
# https://www.semantic-mediawiki.org/wiki/Help:$smwgNamespaceIndex
|
||||
$smwgNamespaceIndex = 200;
|
||||
# Doesn't work? Not sure why....
|
||||
# enableSemantics('${config.services.mediawiki.nginx.hostName}');
|
||||
# $smwgURITypeSchemeList = array_merge(
|
||||
# $smwgURITypeSchemeList, [
|
||||
# 'xmpp', 'mumble', 'ssh'
|
||||
# ]
|
||||
# );
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -187,7 +228,7 @@ in
|
|||
# for some reason nginx adds a port for the 301 redirect from / to /wiki/
|
||||
port_in_redirect off;
|
||||
'';
|
||||
virtualHosts."wiki.c3d2.de" = {
|
||||
virtualHosts."${config.services.mediawiki.nginx.hostName}" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
listen = libC.defaultListen;
|
||||
|
|
Loading…
Reference in New Issue