try to switch to postgresql
This commit is contained in:
parent
43529e63fe
commit
c93749d9a6
59
flake.nix
59
flake.nix
|
@ -6,10 +6,36 @@
|
||||||
devShell.x86_64-linux = import ./shell.nix {
|
devShell.x86_64-linux = import ./shell.nix {
|
||||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
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";
|
system = "x86_64-linux";
|
||||||
modules =
|
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;
|
boot.isContainer = true;
|
||||||
|
|
||||||
# Let 'nixos-version --json' know about the Git revision
|
# Let 'nixos-version --json' know about the Git revision
|
||||||
|
@ -26,12 +52,12 @@
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableTCPIP = true;
|
enableTCPIP = true;
|
||||||
package = pkgs.postgresql_14;
|
package = pkgs.postgresql_11;
|
||||||
ensureDatabases = [ cfg.database.name ];
|
ensureDatabases = [ cfg.database.name ];
|
||||||
|
|
||||||
ensureUsers = [{
|
ensureUsers = [{
|
||||||
name = cfg.database.user;
|
name = cfg.database.user;
|
||||||
ensurePermissions = { "DATABASE ${cfg.database.user}" = "ALL PRIVILEGES"; };
|
ensurePermissions = { "DATABASE ${cfg.database.name}" = "ALL PRIVILEGES"; };
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
authentication = lib.mkForce ''
|
authentication = lib.mkForce ''
|
||||||
|
@ -48,11 +74,11 @@
|
||||||
let
|
let
|
||||||
cfg = config.services.mediawiki;
|
cfg = config.services.mediawiki;
|
||||||
stateDir = "/var/lib/mediawiki";
|
stateDir = "/var/lib/mediawiki";
|
||||||
pkg = pkgs.mediawiki;
|
pkg = mediaWikiOld;
|
||||||
inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionals optionalString types;
|
inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionals optionalString types;
|
||||||
mediawikiConfig = config.services.phpfpm.pools.mediawiki.phpEnv.MEDIAWIKI_CONFIG;
|
mediawikiConfig = config.services.phpfpm.pools.mediawiki.phpEnv.MEDIAWIKI_CONFIG;
|
||||||
in {
|
in {
|
||||||
enable = false;
|
enable = true;
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
before = [ "phpfpm-mediawiki.service" ];
|
before = [ "phpfpm-mediawiki.service" ];
|
||||||
after = [ "postgresql.service" ];
|
after = [ "postgresql.service" ];
|
||||||
|
@ -60,20 +86,6 @@
|
||||||
if ! test -e "${stateDir}/secret.key"; then
|
if ! test -e "${stateDir}/secret.key"; then
|
||||||
tr -dc A-Za-z0-9 </dev/urandom 2>/dev/null | head -c 64 > ${stateDir}/secret.key
|
tr -dc A-Za-z0-9 </dev/urandom 2>/dev/null | head -c 64 > ${stateDir}/secret.key
|
||||||
fi
|
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
|
${pkgs.php}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -87,11 +99,16 @@
|
||||||
|
|
||||||
services.mediawiki = {
|
services.mediawiki = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = mediaWikiOld;
|
||||||
virtualHost = {
|
virtualHost = {
|
||||||
hostName = "mediawiki";
|
hostName = "mediawiki";
|
||||||
adminAddr = "root@example.com";
|
adminAddr = "root@example.com";
|
||||||
};
|
};
|
||||||
|
skins = {
|
||||||
|
Vector = "${mediaWikiOld}/share/mediawiki/skins/Vector";
|
||||||
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
||||||
$wgShowExceptionDetails = true;
|
$wgShowExceptionDetails = true;
|
||||||
$wgDBserver = "localhost";
|
$wgDBserver = "localhost";
|
||||||
$wgDBport = "5432";
|
$wgDBport = "5432";
|
||||||
|
@ -125,7 +142,7 @@
|
||||||
host = "127.0.0.1";
|
host = "127.0.0.1";
|
||||||
port = 5432;
|
port = 5432;
|
||||||
user = "mediawiki";
|
user = "mediawiki";
|
||||||
name = "wiki";
|
name = "mediawiki";
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue