forked from hacc/haccfiles
parsons: init lantifa wiki
This commit is contained in:
parent
41acbdd3e0
commit
95a0e9f04a
2 changed files with 119 additions and 0 deletions
|
@ -20,6 +20,7 @@
|
||||||
../../services/nginx-pages.nix
|
../../services/nginx-pages.nix
|
||||||
../../services/gitlab-runner.nix
|
../../services/gitlab-runner.nix
|
||||||
../../services/unifi.nix
|
../../services/unifi.nix
|
||||||
|
../../services/lantifa.nix
|
||||||
|
|
||||||
./lxc.nix
|
./lxc.nix
|
||||||
];
|
];
|
||||||
|
|
118
services/lantifa.nix
Normal file
118
services/lantifa.nix
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
{ config, lib, pkgs, profiles, modules, evalConfig, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
unstable = import (import ../nix/sources.nix).nixpkgs-unstable {};
|
||||||
|
in {
|
||||||
|
containers.lantifa = {
|
||||||
|
autoStart = true;
|
||||||
|
privateNetwork = true;
|
||||||
|
hostAddress = "192.168.100.1";
|
||||||
|
localAddress = "192.168.100.8";
|
||||||
|
bindMounts = {
|
||||||
|
"/persist" = {
|
||||||
|
hostPath = "/persist/containers/lantifa";
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
path = (evalConfig {hosts = {}; groups = {};} ({ config, lib, pkgs, profiles, modules, sources, ... }: {
|
||||||
|
boot.isContainer = true;
|
||||||
|
networking.useDHCP = false;
|
||||||
|
users.users.root.hashedPassword = "";
|
||||||
|
hexchen.bindmounts."/var/lib/mediawiki" = "/persist/var/lib/mediawiki";
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
((import sources.nix-hexchen) {}).profiles.nopersist
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hosts."127.0.0.1" = [ "wiki.lantifa.org" ];
|
||||||
|
users.users.mediawiki.extraGroups = [ "keys" ];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
networking.defaultGateway = {
|
||||||
|
address = "192.168.100.1";
|
||||||
|
interface = "eth0";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mediawiki = {
|
||||||
|
enable = true;
|
||||||
|
name = "LANtifa";
|
||||||
|
package = unstable.mediawiki;
|
||||||
|
database.createLocally = true;
|
||||||
|
passwordFile = "/var/lib/mediawiki/mediawiki-password";
|
||||||
|
extraConfig = let
|
||||||
|
wikidb = pkgs.fetchzip {
|
||||||
|
url = "http://www.kennel17.co.uk/uploads/testwiki/archive/e/e9/20210407232657%21WikiDB.zip";
|
||||||
|
sha256 = "0d4f2ygglz4w515a7lgw59500q3xmr92xxhsmh8p204yaa769x8v";
|
||||||
|
};
|
||||||
|
in ''
|
||||||
|
// Configure short URLs
|
||||||
|
$wgScriptPath = "";
|
||||||
|
$wgArticlePath = "/wiki/$1";
|
||||||
|
$wgUsePathInfo = true;
|
||||||
|
|
||||||
|
require_once('${wikidb}/WikiDB.php');
|
||||||
|
$wgExtraNamespaces = array( 100 => "Table", 101 => "Table_Talk",);
|
||||||
|
$wgWikiDBNamespaces = 100;
|
||||||
|
$wgGroupPermissions['user']['writeapi'] = true;
|
||||||
|
$wgDefaultUserOptions['visualeditor-enable'] = 1;
|
||||||
|
$wgLogo = "images/c/c5/LantifaLogoFem0.3.png";
|
||||||
|
|
||||||
|
// PageForms config
|
||||||
|
$wgGroupPermissions['*']['viewedittab'] = false;
|
||||||
|
$wgGroupPermissions['user']['viewedittab'] = true;
|
||||||
|
|
||||||
|
// Moderation setting
|
||||||
|
$wgModerationNotificationEnable = true;
|
||||||
|
$wgModerationEmail = "wiki_mod@lantifa.org";
|
||||||
|
$wgLogRestrictions["newusers"] = 'moderation';
|
||||||
|
|
||||||
|
// intersection / DynamicPageList config
|
||||||
|
$wgDLPMaxCacheTime = 5 * 60;
|
||||||
|
'';
|
||||||
|
|
||||||
|
extensions = {
|
||||||
|
TemplateData = null;
|
||||||
|
VisualEditor = null;
|
||||||
|
InputBox = null;
|
||||||
|
Moderation = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/edwardspec/mediawiki-moderation/archive/v1.4.20.tar.gz";
|
||||||
|
sha256 = "1k0z44jfqsxzwy6jjz3yfibiq8wi845d5iwwh8j3yijn2854fj0i";
|
||||||
|
};
|
||||||
|
intersection = pkgs.fetchzip { # This is the DynamicPageList extension
|
||||||
|
url = "https://extdist.wmflabs.org/dist/extensions/intersection-REL1_36-789511a.tar.gz";
|
||||||
|
sha256 = "0b5viv0d2pm1g68hynm8xbvcyw2cr3lgaxbqzdykk2yvvhc4w8j5";
|
||||||
|
};
|
||||||
|
PageForms = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/wikimedia/mediawiki-extensions-PageForms/archive/5.0.1.zip";
|
||||||
|
sha256 = "172m7p941fbkl29h5bhanx3dn42jfmzgyvgmgm2lgdbmkawwly96";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualHost = {
|
||||||
|
hostName = "wiki.lantifa.org";
|
||||||
|
listen = [ { port = 80; } ];
|
||||||
|
adminAddr = "admin@hacc.space";
|
||||||
|
extraConfig = ''
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]
|
||||||
|
RewriteRule ^/*$ %{DOCUMENT_ROOT}/index.php [L]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mysql.dataDir = "/persist/mysql";
|
||||||
|
services.mysqlBackup = {
|
||||||
|
enable = true;
|
||||||
|
databases = [ "mediawiki" ];
|
||||||
|
calendar = "*-*-* 23:45:00";
|
||||||
|
};
|
||||||
|
})).config.system.build.toplevel;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."wiki.lantifa.org" = {
|
||||||
|
locations."/".proxyPass = "http://" + config.containers.lantifa.localAddress + "";
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue