try to switch to postgresql

This commit is contained in:
Winzlieb - 2021-10-22 08:51:43 +02:00
parent 43529e63fe
commit c93749d9a6
2 changed files with 39 additions and 22 deletions

View File

@ -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/urandom 2>/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";
};
};

View File

@ -1,4 +1,4 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
nativeBuildInputs = [ pkgs.postgresql_14 ];
nativeBuildInputs = [ pkgs.postgresql_11 ];
}