From c93749d9a630ee073fa27cd9a7d2042b046ea162 Mon Sep 17 00:00:00 2001 From: winzlieb Date: Fri, 22 Oct 2021 08:51:43 +0200 Subject: [PATCH] try to switch to postgresql --- flake.nix | 59 +++++++++++++++++++++++++++++++++++-------------------- shell.nix | 2 +- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/flake.nix b/flake.nix index 6c4b5ca..7ddb161 100644 --- a/flake.nix +++ b/flake.nix @@ -6,10 +6,36 @@ devShell.x86_64-linux = import ./shell.nix { pkgs = import nixpkgs { system = "x86_64-linux"; }; }; - nixosConfigurations.container = nixpkgs.lib.nixosSystem { + + defaultPackage.x86_64-linux = + let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + lib = pkgs.lib; + in + pkgs.mediawiki.overrideAttrs ({ pname, ... }: rec { + version = "1.27.0"; + src = with lib; pkgs.fetchurl { + url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz"; + sha256 = "sha256-x50AMSpLdJkn5PP5YAs7z5/pFKiYt/5PhRjp9Zro0Sg="; + }; + + }); + + + nixosConfigurations.container = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = - [ ({ config, pkgs, lib, ... }: { + [ ({ config, pkgs, lib, ... }: + let + mediaWikiOld = pkgs.mediawiki.overrideAttrs ({pname, ...}: rec { + version = "1.27.0"; + src = with lib; pkgs.fetchurl { + url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz"; + sha256 = "sha256-x50AMSpLdJkn5PP5YAs7z5/pFKiYt/5PhRjp9Zro0Sg="; + }; + }); + in + { boot.isContainer = true; # Let 'nixos-version --json' know about the Git revision @@ -26,12 +52,12 @@ in { enable = true; enableTCPIP = true; - package = pkgs.postgresql_14; + package = pkgs.postgresql_11; ensureDatabases = [ cfg.database.name ]; ensureUsers = [{ name = cfg.database.user; - ensurePermissions = { "DATABASE ${cfg.database.user}" = "ALL PRIVILEGES"; }; + ensurePermissions = { "DATABASE ${cfg.database.name}" = "ALL PRIVILEGES"; }; } ]; authentication = lib.mkForce '' @@ -48,11 +74,11 @@ let cfg = config.services.mediawiki; stateDir = "/var/lib/mediawiki"; - pkg = pkgs.mediawiki; + pkg = mediaWikiOld; inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionals optionalString types; mediawikiConfig = config.services.phpfpm.pools.mediawiki.phpEnv.MEDIAWIKI_CONFIG; in { - enable = false; + enable = true; wantedBy = [ "multi-user.target" ]; before = [ "phpfpm-mediawiki.service" ]; after = [ "postgresql.service" ]; @@ -60,20 +86,6 @@ if ! test -e "${stateDir}/secret.key"; then tr -dc A-Za-z0-9 /dev/null | head -c 64 > ${stateDir}/secret.key fi - echo "exit( wfGetDB( DB_MASTER )->tableExists( 'user' ) ? 1 : 0 );" | \ - ${pkgs.php}/bin/php ${pkg}/share/mediawiki/maintenance/eval.php --conf ${mediawikiConfig} && \ - ${pkgs.php}/bin/php ${pkg}/share/mediawiki/maintenance/install.php \ - --confpath /tmp \ - --scriptpath / \ - --dbtype ${cfg.database.type} \ - --dbserver "${if cfg.database.socket != null then cfg.database.socket else "${cfg.database.host}:${toString cfg.database.port}"}" \ - --dbname ${cfg.database.name} \ - ${optionalString (cfg.database.tablePrefix != null) "--dbprefix ${cfg.database.tablePrefix}"} \ - --dbuser ${cfg.database.user} \ - ${optionalString (cfg.database.passwordFile != null) "--dbpassfile ${cfg.database.passwordFile}"} \ - --passfile ${cfg.passwordFile} \ - ${cfg.name} \ - admin ${pkgs.php}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick ''; @@ -87,11 +99,16 @@ services.mediawiki = { enable = true; + package = mediaWikiOld; virtualHost = { hostName = "mediawiki"; adminAddr = "root@example.com"; }; + skins = { + Vector = "${mediaWikiOld}/share/mediawiki/skins/Vector"; + }; extraConfig = '' + $wgShowExceptionDetails = true; $wgDBserver = "localhost"; $wgDBport = "5432"; @@ -125,7 +142,7 @@ host = "127.0.0.1"; port = 5432; user = "mediawiki"; - name = "wiki"; + name = "mediawiki"; }; }; diff --git a/shell.nix b/shell.nix index 4a0e5bb..5dd131b 100644 --- a/shell.nix +++ b/shell.nix @@ -1,4 +1,4 @@ { pkgs ? import {} }: pkgs.mkShell { - nativeBuildInputs = [ pkgs.postgresql_14 ]; + nativeBuildInputs = [ pkgs.postgresql_11 ]; }