meguca: remove (#95920)

wip/yesman
Jörg Thalheim 4 years ago committed by GitHub
parent 78cde427e8
commit 6f4141507b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      nixos/modules/misc/ids.nix
  2. 1
      nixos/modules/module-list.nix
  3. 1
      nixos/modules/rename.nix
  4. 174
      nixos/modules/services/web-servers/meguca.nix
  5. 1
      pkgs/development/node-packages/node-packages.json
  6. 50
      pkgs/servers/meguca/default.nix
  7. 390
      pkgs/servers/meguca/server_deps.nix

@ -321,7 +321,7 @@ in
monetdb = 290;
restic = 291;
openvpn = 292;
meguca = 293;
# meguca = 293; # removed 2020-08-21
yarn = 294;
hdfs = 295;
mapred = 296;
@ -622,7 +622,7 @@ in
monetdb = 290;
restic = 291;
openvpn = 292;
meguca = 293;
# meguca = 293; # removed 2020-08-21
yarn = 294;
hdfs = 295;
mapred = 296;

@ -886,7 +886,6 @@
./services/web-servers/lighttpd/collectd.nix
./services/web-servers/lighttpd/default.nix
./services/web-servers/lighttpd/gitweb.nix
./services/web-servers/meguca.nix
./services/web-servers/mighttpd2.nix
./services/web-servers/minio.nix
./services/web-servers/molly-brown.nix

@ -48,6 +48,7 @@ with lib;
instead, or any other display manager in NixOS as they all support auto-login.
'')
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
(mkRemovedOptionModule ["hardware" "brightnessctl" ] ''
The brightnessctl module was removed because newer versions of
brightnessctl don't require the udev rules anymore (they can use the

@ -1,174 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.meguca;
postgres = config.services.postgresql;
in with lib; {
options.services.meguca = {
enable = mkEnableOption "meguca";
dataDir = mkOption {
type = types.path;
default = "/var/lib/meguca";
example = "/home/okina/meguca";
description = "Location where meguca stores it's database and links.";
};
password = mkOption {
type = types.str;
default = "meguca";
example = "dumbpass";
description = "Password for the meguca database.";
};
passwordFile = mkOption {
type = types.path;
default = "/run/keys/meguca-password-file";
example = "/home/okina/meguca/keys/pass";
description = "Password file for the meguca database.";
};
reverseProxy = mkOption {
type = types.nullOr types.str;
default = null;
example = "192.168.1.5";
description = "Reverse proxy IP.";
};
sslCertificate = mkOption {
type = types.nullOr types.str;
default = null;
example = "/home/okina/meguca/ssl.cert";
description = "Path to the SSL certificate.";
};
listenAddress = mkOption {
type = types.nullOr types.str;
default = null;
example = "127.0.0.1:8000";
description = "Listen on a specific IP address and port.";
};
cacheSize = mkOption {
type = types.nullOr types.int;
default = null;
example = 256;
description = "Cache size in MB.";
};
postgresArgs = mkOption {
type = types.str;
example = "user=meguca password=dumbpass dbname=meguca sslmode=disable";
description = "Postgresql connection arguments.";
};
postgresArgsFile = mkOption {
type = types.path;
default = "/run/keys/meguca-postgres-args";
example = "/home/okina/meguca/keys/postgres";
description = "Postgresql connection arguments file.";
};
compressTraffic = mkOption {
type = types.bool;
default = false;
description = "Compress all traffic with gzip.";
};
assumeReverseProxy = mkOption {
type = types.bool;
default = false;
description = "Assume the server is behind a reverse proxy, when resolving client IPs.";
};
httpsOnly = mkOption {
type = types.bool;
default = false;
description = "Serve and listen only through HTTPS.";
};
videoPaths = mkOption {
type = types.listOf types.path;
default = [];
example = [ "/home/okina/Videos/tehe_pero.webm" ];
description = "Videos that will be symlinked into www/videos.";
};
};
config = mkIf cfg.enable {
security.sudo.enable = cfg.enable;
services.postgresql.enable = cfg.enable;
services.postgresql.package = pkgs.postgresql_11;
services.meguca.passwordFile = mkDefault (pkgs.writeText "meguca-password-file" cfg.password);
services.meguca.postgresArgsFile = mkDefault (pkgs.writeText "meguca-postgres-args" cfg.postgresArgs);
services.meguca.postgresArgs = mkDefault "user=meguca password=${cfg.password} dbname=meguca sslmode=disable";
systemd.services.meguca = {
description = "meguca";
after = [ "network.target" "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
# Ensure folder exists or create it and links and permissions are correct
mkdir -p ${escapeShellArg cfg.dataDir}/www
rm -rf ${escapeShellArg cfg.dataDir}/www/videos
ln -sf ${pkgs.meguca}/share/meguca/www/* ${escapeShellArg cfg.dataDir}/www
unlink ${escapeShellArg cfg.dataDir}/www/videos
mkdir -p ${escapeShellArg cfg.dataDir}/www/videos
for vid in ${escapeShellArg cfg.videoPaths}; do
ln -sf $vid ${escapeShellArg cfg.dataDir}/www/videos
done
chmod 750 ${escapeShellArg cfg.dataDir}
chown -R meguca:meguca ${escapeShellArg cfg.dataDir}
# Ensure the database is correct or create it
${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createuser \
-SDR meguca || true
${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createdb \
-T template0 -E UTF8 -O meguca meguca || true
${pkgs.sudo}/bin/sudo -u meguca ${postgres.package}/bin/psql \
-c "ALTER ROLE meguca WITH PASSWORD '$(cat ${escapeShellArg cfg.passwordFile})';" || true
'';
script = ''
cd ${escapeShellArg cfg.dataDir}
${pkgs.meguca}/bin/meguca -d "$(cat ${escapeShellArg cfg.postgresArgsFile})"''
+ optionalString (cfg.reverseProxy != null) " -R ${cfg.reverseProxy}"
+ optionalString (cfg.sslCertificate != null) " -S ${cfg.sslCertificate}"
+ optionalString (cfg.listenAddress != null) " -a ${cfg.listenAddress}"
+ optionalString (cfg.cacheSize != null) " -c ${toString cfg.cacheSize}"
+ optionalString (cfg.compressTraffic) " -g"
+ optionalString (cfg.assumeReverseProxy) " -r"
+ optionalString (cfg.httpsOnly) " -s" + " start";
serviceConfig = {
PermissionsStartOnly = true;
Type = "forking";
User = "meguca";
Group = "meguca";
ExecStop = "${pkgs.meguca}/bin/meguca stop";
};
};
users = {
groups.meguca.gid = config.ids.gids.meguca;
users.meguca = {
description = "meguca server service user";
home = cfg.dataDir;
createHome = true;
group = "meguca";
uid = config.ids.uids.meguca;
};
};
};
imports = [
(mkRenamedOptionModule [ "services" "meguca" "baseDir" ] [ "services" "meguca" "dataDir" ])
];
meta.maintainers = with maintainers; [ chiiruno ];
}

@ -118,7 +118,6 @@
, "mastodon-bot"
, "mathjax"
, "meat"
, "meguca"
, "mirakurun"
, "mocha"
, "multi-file-swagger"

@ -1,50 +0,0 @@
{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, cmake, ffmpeg-full
, ghostscript, graphicsmagick, quicktemplate, go-bindata, easyjson
, nodePackages, emscripten, opencv, statik }:
buildGoPackage {
pname = "meguca-unstable";
version = "2019-03-12";
goPackagePath = "github.com/bakape/meguca";
goDeps = ./server_deps.nix;
src = fetchFromGitHub {
owner = "bakape";
repo = "meguca";
rev = "21b08de09b38918061c5cd0bbd0dc9bcc1280525";
sha256 = "1nb3bf1bscbdma83sp9fbgvmxxlxh21j9h80wakfn85sndcrws5i";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig cmake go-bindata ];
buildInputs = [
ffmpeg-full graphicsmagick ghostscript quicktemplate
easyjson emscripten opencv statik
];
buildPhase = ''
export HOME=`pwd`
cd go/src/github.com/bakape/meguca
ln -sf ${nodePackages.meguca}/lib/node_modules/meguca/node_modules
sed -i "/npm install --progress false --depth 0/d" Makefile
make -j $NIX_BUILD_CORES generate all
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
make -j $NIX_BUILD_CORES wasm
'';
installPhase = ''
mkdir -p $out/bin $out/share/meguca
cp meguca $out/bin
cp -r www $out/share/meguca
'';
meta = with stdenv.lib; {
homepage = "https://github.com/bakape/meguca";
description = "High performance anonymous realtime imageboard";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ chiiruno ];
broken = true; # Broken on Hydra since 2019-04-18:
# https://hydra.nixos.org/build/98885902
};
}

@ -1,390 +0,0 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
[
{
goPackagePath = "github.com/ErikDubbelboer/gspt";
fetch = {
type = "git";
url = "https://github.com/ErikDubbelboer/gspt";
rev = "e68493906b8382891943ddc9960cb9c6ecd1a1f0";
sha256 = "17xjyg6zw02yzly30hs92pwgn0w85naixr4kb2c0mgp5zavl1ffz";
};
}
{
goPackagePath = "github.com/Masterminds/squirrel";
fetch = {
type = "git";
url = "https://github.com/Masterminds/squirrel";
rev = "d67d6a236213ef67cff454e09ea1bf742d943f6c";
sha256 = "0gzvnws0a29c663hjk379bybvxfmkiic3spkc985hdvn5gkbrwkq";
};
}
{
goPackagePath = "github.com/PuerkitoBio/goquery";
fetch = {
type = "git";
url = "https://github.com/PuerkitoBio/goquery";
rev = "3dcf72e6c17f694381a21592651ca1464ded0e10";
sha256 = "0fpsf6b54z33a7zl28x860jbaj3g5722g8kpqs6rdpaqv99yyvnn";
};
}
{
goPackagePath = "github.com/andybalholm/cascadia";
fetch = {
type = "git";
url = "https://github.com/andybalholm/cascadia";
rev = "680b6a57bda4f657485ad44bdea42342ead737bc";
sha256 = "0v95plagirbjlc4p00y9brhpvv4nm8q0gr63gcfs3shyh1a8xwbm";
};
}
{
goPackagePath = "github.com/aquilax/tripcode";
fetch = {
type = "git";
url = "https://github.com/aquilax/tripcode";
rev = "1a14b0a5e89f7fdb8a821562569338ad59ab2da5";
sha256 = "1ishrg37gkkx04gbchhsk7jp01mmfvln2i2zrncbj4qxs2amnn2l";
};
}
{
goPackagePath = "github.com/badoux/goscraper";
fetch = {
type = "git";
url = "https://github.com/badoux/goscraper";
rev = "9b4686c4b62c22b0489d53dddf5421605caba33e";
sha256 = "1f1wc4s2b6g1ndpihb0gn7cxmwyi4wfqi5slvsk6i6p9q4kxrkvx";
};
}
{
goPackagePath = "github.com/bakape/boorufetch";
fetch = {
type = "git";
url = "https://github.com/bakape/boorufetch";
rev = "90aee10269a138a08ce49cd91635500336657a82";
sha256 = "0zaa2b3bl2hnl4lipghl6mbvpv9sq9r7skykp26c29qy77xy99nk";
};
}
{
goPackagePath = "github.com/bakape/captchouli";
fetch = {
type = "git";
url = "https://github.com/bakape/captchouli";
rev = "b57177c8d2f239547e9545354e2f55fbc851ab47";
sha256 = "1fi24322bbicc2bpfla37nhy2w89cf67345dbybcavgcny5rs65a";
};
}
{
goPackagePath = "github.com/bakape/mnemonics";
fetch = {
type = "git";
url = "https://github.com/bakape/mnemonics";
rev = "056d8d3259923b93bb0449a45b0c56ac20c77f1b";
sha256 = "137dl4bkpszj7pm4dyj222xdvy9lmwsgmm0l6bxni0msc3jdrqkl";
};
}
{
goPackagePath = "github.com/bakape/thumbnailer";
fetch = {
type = "git";
url = "https://github.com/bakape/thumbnailer";
rev = "3d9565548e572a385b5a1ecf3bb9840c9ccd9949";
sha256 = "0zriks4j694y65ryf9xkiz0sc932hskjigmk83bj1069hkgzx9dk";
};
}
{
goPackagePath = "github.com/boltdb/bolt";
fetch = {
type = "git";
url = "https://github.com/boltdb/bolt";
rev = "fd01fc79c553a8e99d512a07e8e0c63d4a3ccfc5";
sha256 = "12f5swiwzcamk87r9j73nn7rmyyday7jkgzfh7x5wdg9blzhrir2";
};
}
{
goPackagePath = "github.com/chai2010/webp";
fetch = {
type = "git";
url = "https://github.com/chai2010/webp";
rev = "76ae9d0b5d6d590fcc9772bf9cf0526128ee6fab";
sha256 = "0sanh0c2bvignxnrj9vlzr2sw1bd3cgw2lg0vkn63xxjj3bqmsbh";
};
}
{
goPackagePath = "github.com/dimfeld/httptreemux";
fetch = {
type = "git";
url = "https://github.com/dimfeld/httptreemux";
rev = "a454a10de4a11f751681a0914461ab9e98c2a3ff";
sha256 = "0qx94lij9ldzd1xl36rl8blbgzjz9b4rkpydi44d9lik7qkdi5gp";
};
}
{
goPackagePath = "github.com/dsnet/compress";
fetch = {
type = "git";
url = "https://github.com/dsnet/compress";
rev = "da652975a8eea9fa0735aba8056747a751db0bd3";
sha256 = "1wwjaymzb1xxq3ybch3nwn72xhi2s40cvz0cl986yad3w1xwzj91";
};
}
{
goPackagePath = "github.com/fsnotify/fsnotify";
fetch = {
type = "git";
url = "https://github.com/fsnotify/fsnotify";
rev = "11844c0959f6fff69ba325d097fce35bd85a8e93";
sha256 = "0driasljawka9r914530mr9df2i5cwldcgj2v94qkhzlkb48ljwc";
};
}
{
goPackagePath = "github.com/go-playground/ansi";
fetch = {
type = "git";
url = "https://github.com/go-playground/ansi";
rev = "777788a9be1a7296979a999c86b251fc777077a9";
sha256 = "1y2pqx04lc7cqg50scfivzw0n8f0dliflnih14f5jf4svff8s561";
};
}
{
goPackagePath = "github.com/go-playground/errors";
fetch = {
type = "git";
url = "https://github.com/go-playground/errors";
rev = "4050dd2e2e3b2052ef736048661d1d23a4a4e55d";
sha256 = "0b3bhf2c9fpv095db3ajyb1fz7nxjn7rfg9rjb83hqfm492wjy86";
};
}
{
goPackagePath = "github.com/go-playground/log";
fetch = {
type = "git";
url = "https://github.com/go-playground/log";
rev = "fdcdf507e3bf20900bc1a44b0cbd73fee5bcbe19";
sha256 = "0mbzawm09n2kggrkmj0khrhipmdi191z01mw120ahbmmjdjls749";
};
}
{
goPackagePath = "github.com/golang/snappy";
fetch = {
type = "git";
url = "https://github.com/golang/snappy";
rev = "2a8bb927dd31d8daada140a5d09578521ce5c36a";
sha256 = "0gp3kkzlm3wh37kgkhbqxq3zx07iqbgis5w9mf4d64h6vjq760is";
};
}
{
goPackagePath = "github.com/gorilla/handlers";
fetch = {
type = "git";
url = "https://github.com/gorilla/handlers";
rev = "ac6d24f88de4584385a0cb3a88f953d08a2f7a05";
sha256 = "166p7yw2sy6lbxgyk722phkskmxzv3v21vf0l145zicrn30m9zli";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "0ec3d1bd7fe50c503d6df98ee649d81f4857c564";
sha256 = "0mdq489izwy20bpjg31k8qnfgvh5r7mm5yq709q6xyzmzdd5nasx";
};
}
{
goPackagePath = "github.com/julienschmidt/httprouter";
fetch = {
type = "git";
url = "https://github.com/julienschmidt/httprouter";
rev = "26a05976f9bf5c3aa992cc20e8588c359418ee58";
sha256 = "0bmvrgg373fxwqsr6nri01bmi9qdj6knxkmnbw70h9rmi2d9c585";
};
}
{
goPackagePath = "github.com/lann/builder";
fetch = {
type = "git";
url = "https://github.com/lann/builder";
rev = "47ae307949d02aa1f1069fdafc00ca08e1dbabac";
sha256 = "1kg9jy1rciznj627hafpq2mi7hr5d3ssgqcpwrm3bnlk9sqnydil";
};
}
{
goPackagePath = "github.com/lann/ps";
fetch = {
type = "git";
url = "https://github.com/lann/ps";
rev = "62de8c46ede02a7675c4c79c84883eb164cb71e3";
sha256 = "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7";
};
}
{
goPackagePath = "github.com/lib/pq";
fetch = {
type = "git";
url = "https://github.com/lib/pq";
rev = "9eb73efc1fcc404148b56765b0d3f61d9a5ef8ee";
sha256 = "17wkjdz265iqf92gj3ljslvjcqvkfblw11jdq2scc3kp1hcsfr10";
};
}
{
goPackagePath = "github.com/mattn/go-sqlite3";
fetch = {
type = "git";
url = "https://github.com/mattn/go-sqlite3";
rev = "ad30583d8387ce8118f8605eaeb3b4f7b4ae0ee1";
sha256 = "024h09n4g41x4awzim5l0vxpj1nfwc9isf8bryrdnichpqpa6siz";
};
}
{
goPackagePath = "github.com/nwaples/rardecode";
fetch = {
type = "git";
url = "https://github.com/nwaples/rardecode";
rev = "197ef08ef68c4454ae5970a9c2692d6056ceb8d7";
sha256 = "0vvijw7va283dbdvnf4bgkn7bjngxqzk1rzdpy8sl343r62bmh4g";
};
}
{
goPackagePath = "github.com/oschwald/maxminddb-golang";
fetch = {
type = "git";
url = "https://github.com/oschwald/maxminddb-golang";
rev = "fc04c43d3c694a35570a7e4358b0f4d4ac3fea32";
sha256 = "16bz3g8mkg2xhb4pxcpk6scxrmn48485jgky7wvi4gzpizlhsxxq";
};
}
{
goPackagePath = "github.com/otium/ytdl";
fetch = {
type = "git";
url = "https://github.com/otium/ytdl";
rev = "5c8ee71b4175be285baaff66147458254884f748";
sha256 = "1w22cfc6nr7z5fc3hmcymmx2xfcb66ylhfs89vn4i19ksxbkkcjk";
};
}
{
goPackagePath = "github.com/pierrec/lz4";
fetch = {
type = "git";
url = "https://github.com/pierrec/lz4";
rev = "062282ea0dcff40c9fb8525789eef9644b1fbd6e";
sha256 = "04lzigxv2f4yv9gr1dybsjkcnmv1lj0mx9ls2ry1pzy2l9z6i6cp";
};
}
{
goPackagePath = "github.com/rakyll/statik";
fetch = {
type = "git";
url = "https://github.com/rakyll/statik";
rev = "79258177a57a85a8ab2eca7ce0936aad80307f4e";
sha256 = "14wqh38a7dhm2jgr1lsl2wdvjmkgdapzl2z4a1vl7ncv3x43gkg5";
};
}
{
goPackagePath = "github.com/sevlyar/go-daemon";
fetch = {
type = "git";
url = "https://github.com/sevlyar/go-daemon";
rev = "fedf95d0cd0be92511436dbc84c290ff1c104f61";
sha256 = "1ffjgx75wvpharzq60aqbpl78z1jwx13b21ifcadm1f976vdjq1q";
};
}
{
goPackagePath = "github.com/sirupsen/logrus";
fetch = {
type = "git";
url = "https://github.com/sirupsen/logrus";
rev = "dae0fa8d5b0c810a8ab733fbd5510c7cae84eca4";
sha256 = "1y1qjcg19z7q9sy32rhc148kdql2aw7xkcm9d6r1blrl0mdgpx0w";
};
}
{
goPackagePath = "github.com/ulikunitz/xz";
fetch = {
type = "git";
url = "https://github.com/ulikunitz/xz";
rev = "6f934d456d51e742b4eeab20d925a827ef22320a";
sha256 = "1qpk02c0nfgfyg110nmbaiy5x12fpn0pm8gy7h1s8pwns133n831";
};
}
{
goPackagePath = "github.com/valyala/bytebufferpool";
fetch = {
type = "git";
url = "https://github.com/valyala/bytebufferpool";
rev = "cdfbe9377474227bb42120c1e22fd4433e7f69bf";
sha256 = "0c6cixd85dvl2gvs7sdh0k2wm8r3grl4fw0jg4w7d78cp8s2k7ag";
};
}
{
goPackagePath = "github.com/valyala/quicktemplate";
fetch = {
type = "git";
url = "https://github.com/valyala/quicktemplate";
rev = "d08324ac14fa81325830fae7eb30188ec68427f8";
sha256 = "0gpc1kcqvcn1f9mz2dww8bhrspnsk2fgxzvx398vy7a0xhxq8vhx";
};
}
{
goPackagePath = "gitlab.com/nyarla/go-crypt";
fetch = {
type = "git";
url = "https://gitlab.com/nyarla/go-crypt.git";
rev = "d9a5dc2b789bc330075d4b805d9b7c971f2865a1";
sha256 = "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "c2843e01d9a2bc60bb26ad24e09734fdc2d9ec58";
sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "d8887717615a059821345a5c23649351b52a1c0b";
sha256 = "1wfm6ngxjyj7v5a2dqib6lw8bb2rdnf1kl48diykxjrsddn0s163";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "fead79001313d15903fb4605b4a1b781532cd93e";
sha256 = "12vwl6sv6w7q0dyvynjhbp67242rhh77d6nlsb22ajr8rf17c63i";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "5d731a35f4867878fc89f7744f7b6debb3beded6";
sha256 = "1ipmjki0i0dvpal1g0vgr8qc77kkvw3ka6yxlm0qzjk9j3579bsq";
};
}
{
goPackagePath = "gopkg.in/gomail.v2";
fetch = {
type = "git";
url = "https://gopkg.in/gomail.v2";
rev = "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1";
sha256 = "0zdykrv5s19lnq0g49p6njldy4cpk4g161vyjafiw7f84h8r28mc";
};
}
{
goPackagePath = "gopkg.in/mholt/archiver.v2";
fetch = {
type = "git";
url = "https://gopkg.in/mholt/archiver.v2";
rev = "de0d89e255e17c8d75a40122055763e743ab0593";
sha256 = "02fsc0za0yi3dg0r5caa8vpxz6kqxjxxlmwzzj5899dlmdvqk57g";
};
}
]
Loading…
Cancel
Save