mediawiki: enable SemanticMediaWiki
This commit is contained in:
parent
fe34704699
commit
44b6fe7e8b
17
flake.lock
17
flake.lock
|
@ -1,5 +1,21 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"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": {
|
"affection-src": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
@ -487,6 +503,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"MediaWikiExtensionsComposer": "MediaWikiExtensionsComposer",
|
||||||
"affection-src": "affection-src",
|
"affection-src": "affection-src",
|
||||||
"alert2muc": "alert2muc",
|
"alert2muc": "alert2muc",
|
||||||
"bevy-julia": "bevy-julia",
|
"bevy-julia": "bevy-julia",
|
||||||
|
|
11
flake.nix
11
flake.nix
|
@ -93,7 +93,11 @@
|
||||||
utils.follows = "flake-utils";
|
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 = {
|
microvm = {
|
||||||
url = "github:astro/microvm.nix";
|
url = "github:astro/microvm.nix";
|
||||||
inputs = {
|
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
|
let
|
||||||
inherit (nixos) lib;
|
inherit (nixos) lib;
|
||||||
|
|
||||||
|
@ -475,6 +479,9 @@
|
||||||
modules = [
|
modules = [
|
||||||
self.nixosModules.microvm
|
self.nixosModules.microvm
|
||||||
./hosts/mediawiki
|
./hosts/mediawiki
|
||||||
|
{
|
||||||
|
_module.args = { inherit MediaWikiExtensionsComposer; };
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, libC, pkgs, ... }:
|
{ config, lib, libC, MediaWikiExtensionsComposer, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.mediawiki;
|
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";
|
url = "https://web.archive.org/web/20230710142618/https://extdist.wmflabs.org/dist/extensions/PluggableAuth-REL1_40-519c6d2.tar.gz";
|
||||||
sha256 = "sha256-N1+OV1UdzvU4iXhaS/+fuEoAXqrkVyyEPDirk0vrT8A=";
|
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";
|
name = "C3D2";
|
||||||
|
@ -157,9 +184,9 @@ in
|
||||||
|
|
||||||
wfLoadExtension('ConfirmEdit/QuestyCaptcha');
|
wfLoadExtension('ConfirmEdit/QuestyCaptcha');
|
||||||
$wgCaptchaClass = '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;
|
$wgGroupPermissions['sysop']['interwiki'] = true;
|
||||||
|
|
||||||
wfLoadExtension('Cite');
|
wfLoadExtension('Cite');
|
||||||
|
@ -178,6 +205,20 @@ in
|
||||||
# LDAP
|
# LDAP
|
||||||
$LDAPProviderDomainConfigs = "${config.sops.secrets."mediawiki/ldapprovider".path}";
|
$LDAPProviderDomainConfigs = "${config.sops.secrets."mediawiki/ldapprovider".path}";
|
||||||
$wgPluggableAuth_EnableLocalLogin = true;
|
$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/
|
# for some reason nginx adds a port for the 301 redirect from / to /wiki/
|
||||||
port_in_redirect off;
|
port_in_redirect off;
|
||||||
'';
|
'';
|
||||||
virtualHosts."wiki.c3d2.de" = {
|
virtualHosts."${config.services.mediawiki.nginx.hostName}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
listen = libC.defaultListen;
|
listen = libC.defaultListen;
|
||||||
|
|
Loading…
Reference in New Issue