Merge remote-tracking branch 'prism/master'
This commit is contained in:
commit
65165f422d
|
@ -17,29 +17,57 @@ let
|
||||||
# see `repo-sync --help`
|
# see `repo-sync --help`
|
||||||
# `ref` provides sane defaults and can be omitted
|
# `ref` provides sane defaults and can be omitted
|
||||||
|
|
||||||
|
# you can have multiple repo-sync groups and therefore multiple @latest
|
||||||
|
# configuration entries.
|
||||||
# attrset will be converted to json and be used as config
|
# attrset will be converted to json and be used as config
|
||||||
{ repo = {
|
# each attrset defines a group of repos for syncing
|
||||||
|
|
||||||
|
{ nxpkgs = {
|
||||||
makefu = {
|
makefu = {
|
||||||
origin = {
|
origin = {
|
||||||
url = http://github.com/makefu/repo ;
|
url = http://github.com/makefu/nixpkgs;
|
||||||
ref = "heads/dev" ;
|
ref = "heads/dev" ;
|
||||||
};
|
};
|
||||||
mirror = {
|
mirror = {
|
||||||
url = "git@internal:mirror" ;
|
url = "git@internal:nixpkgs-mirror" ;
|
||||||
ref = "heads/github-mirror-dev" ;
|
ref = "heads/github-mirror-dev" ;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
lass = {
|
lass = {
|
||||||
origin = {
|
origin = {
|
||||||
url = http://github.com/lass/repo ;
|
url = http://github.com/lass/nixpkgs;
|
||||||
};
|
};
|
||||||
mirror = {
|
mirror = {
|
||||||
url = "git@internal:mirror" ;
|
url = "git@internal:nixpkgs-mirror" ;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"@latest" = {
|
"@latest" = {
|
||||||
mirror = {
|
mirror = {
|
||||||
url = "git@internal:mirror";
|
url = "git@internal:nixpkgs-mirror";
|
||||||
|
ref = "heads/master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
stockholm = {
|
||||||
|
lass = {
|
||||||
|
origin = {
|
||||||
|
url = http://cgit.prism.r/stockholm;
|
||||||
|
};
|
||||||
|
mirror = {
|
||||||
|
url = "git@internal:stockholm-mirror" ;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
makefu = {
|
||||||
|
origin = {
|
||||||
|
url = http://gum.krebsco.de/stockholm;
|
||||||
|
};
|
||||||
|
mirror = {
|
||||||
|
url = "git@internal:stockholm-mirror" ;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"@latest" = {
|
||||||
|
mirror = {
|
||||||
|
url = "git@internal:stockholm-mirror";
|
||||||
ref = "heads/master";
|
ref = "heads/master";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -336,7 +336,6 @@ let
|
||||||
pm.min_spare_servers = 1
|
pm.min_spare_servers = 1
|
||||||
pm.max_spare_servers = 3
|
pm.max_spare_servers = 3
|
||||||
chdir = /
|
chdir = /
|
||||||
# errors to journal
|
|
||||||
php_admin_value[error_log] = 'stderr'
|
php_admin_value[error_log] = 'stderr'
|
||||||
php_admin_flag[log_errors] = on
|
php_admin_flag[log_errors] = on
|
||||||
catch_workers_output = yes
|
catch_workers_output = yes
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
{stdenv,pam,fetchurl,...}:
|
{ stdenv, pam,
|
||||||
|
fetchurl, lib,
|
||||||
|
wordset-file ? null, # set your own wordset-file
|
||||||
|
... }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "passwdqc-utils-${version}";
|
name = "passwdqc-utils-${version}";
|
||||||
version = "1.3.0";
|
version = "1.3.0";
|
||||||
buildInputs = [ pam ];
|
buildInputs = [ pam ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.openwall.com/passwdqc/passwdqc-${version}.tar.gz";
|
url = "http://www.openwall.com/passwdqc/passwdqc-${version}.tar.gz";
|
||||||
sha256 = "0l3zbrp4pvah0dz33m48aqlz9nx663cc1fqhnlwr0p853b10la93";
|
sha256 = "0l3zbrp4pvah0dz33m48aqlz9nx663cc1fqhnlwr0p853b10la93";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildTargets = "utils";
|
buildTargets = "utils";
|
||||||
installFlags= [ "BINDIR=$(out)/bin"
|
installFlags= [ "BINDIR=$(out)/bin"
|
||||||
"CONFDIR=$(out)/etc"
|
"CONFDIR=$(out)/etc"
|
||||||
|
@ -15,7 +20,12 @@ stdenv.mkDerivation rec {
|
||||||
"DEVEL_LIBDIR=$(out)/lib"
|
"DEVEL_LIBDIR=$(out)/lib"
|
||||||
"SECUREDIR=$(out)/lib/security"
|
"SECUREDIR=$(out)/lib/security"
|
||||||
"INCLUDEDIR=$(out)/include"
|
"INCLUDEDIR=$(out)/include"
|
||||||
"MANDIR=$(out)/man"];
|
"MANDIR=$(out)/man" ];
|
||||||
|
|
||||||
|
patchPhase = lib.optionalString (wordset-file != null) ''
|
||||||
|
cp -f ${wordset-file} wordset_4k.c
|
||||||
|
'';
|
||||||
|
|
||||||
installTargets = "install_lib install_utils";
|
installTargets = "install_lib install_utils";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -102,6 +102,11 @@ with config.krebs.lib;
|
||||||
device = "/dev/pool/bku";
|
device = "/dev/pool/bku";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
"/tmp" = {
|
||||||
|
device = "tmpfs";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["nosuid" "nodev" "noatime"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#services.udev.extraRules = ''
|
#services.udev.extraRules = ''
|
||||||
|
|
|
@ -23,7 +23,7 @@ with config.krebs.lib;
|
||||||
../2configs/teamviewer.nix
|
../2configs/teamviewer.nix
|
||||||
../2configs/libvirt.nix
|
../2configs/libvirt.nix
|
||||||
../2configs/fetchWallpaper.nix
|
../2configs/fetchWallpaper.nix
|
||||||
../2configs/c-base.nix
|
#../2configs/c-base.nix
|
||||||
../2configs/mail.nix
|
../2configs/mail.nix
|
||||||
../2configs/krebs-pass.nix
|
../2configs/krebs-pass.nix
|
||||||
../2configs/repo-sync.nix
|
../2configs/repo-sync.nix
|
||||||
|
@ -54,8 +54,8 @@ with config.krebs.lib;
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.postgresql;
|
package = pkgs.postgresql;
|
||||||
};
|
};
|
||||||
virtualisation.docker.enable = true;
|
#virtualisation.docker.enable = true;
|
||||||
users.users.mainUser.extraGroups = [ "docker" ];
|
#users.users.mainUser.extraGroups = [ "docker" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
lass.umts = {
|
lass.umts = {
|
||||||
|
@ -140,6 +140,11 @@ with config.krebs.lib;
|
||||||
device = "/dev/big/conf";
|
device = "/dev/big/conf";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
"/tmp" = {
|
||||||
|
device = "tmpfs";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["nosuid" "nodev" "noatime"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
|
@ -192,8 +197,12 @@ with config.krebs.lib;
|
||||||
urban
|
urban
|
||||||
mk_sql_pair
|
mk_sql_pair
|
||||||
remmina
|
remmina
|
||||||
|
thunderbird
|
||||||
|
|
||||||
logf
|
logf
|
||||||
|
iodine
|
||||||
|
|
||||||
|
macchanger
|
||||||
];
|
];
|
||||||
|
|
||||||
#TODO: fix this shit
|
#TODO: fix this shit
|
||||||
|
|
|
@ -120,6 +120,12 @@ in {
|
||||||
device = "/dev/pool/bku";
|
device = "/dev/pool/bku";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/tmp" = {
|
||||||
|
device = "tmpfs";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["nosuid" "nodev" "noatime"];
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
sound.enable = false;
|
sound.enable = false;
|
||||||
|
|
|
@ -50,6 +50,11 @@ with builtins;
|
||||||
device = "/dev/pool/home-lass";
|
device = "/dev/pool/home-lass";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
"/tmp" = {
|
||||||
|
device = "tmpfs";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["nosuid" "nodev" "noatime"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
|
|
|
@ -23,7 +23,6 @@ with config.krebs.lib;
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
};
|
};
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
networking.wireless.enable = mkForce false;
|
|
||||||
hardware.pulseaudio = {
|
hardware.pulseaudio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemWide = true;
|
systemWide = true;
|
||||||
|
@ -41,8 +40,6 @@ with config.krebs.lib;
|
||||||
|
|
||||||
krebs.build.host = config.krebs.hosts.uriel;
|
krebs.build.host = config.krebs.hosts.uriel;
|
||||||
|
|
||||||
networking.wireless.enable = true;
|
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
@ -77,6 +74,11 @@ with config.krebs.lib;
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/sda1";
|
device = "/dev/sda1";
|
||||||
};
|
};
|
||||||
|
"/tmp" = {
|
||||||
|
device = "tmpfs";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["nosuid" "nodev" "noatime"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
|
|
|
@ -1,11 +1,28 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with config.krebs.lib;
|
||||||
let
|
let
|
||||||
inherit (config.krebs.lib) genid;
|
|
||||||
|
|
||||||
mainUser = config.users.extraUsers.mainUser;
|
mainUser = config.users.extraUsers.mainUser;
|
||||||
createChromiumUser = name: extraGroups: packages:
|
|
||||||
{
|
browser-select = pkgs.writeScriptBin "browser-select" ''
|
||||||
|
BROWSER=$(echo -e "${concatStringsSep "\\n" (attrNames config.lass.browser.paths)}" | ${pkgs.dmenu}/bin/dmenu)
|
||||||
|
case $BROWSER in
|
||||||
|
${concatMapStringsSep "\n" (n: ''
|
||||||
|
${n})
|
||||||
|
export BIN=${config.lass.browser.paths.${n}}/bin/${n}
|
||||||
|
;;
|
||||||
|
'') (attrNames config.lass.browser.paths)}
|
||||||
|
esac
|
||||||
|
$BIN "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
createChromiumUser = name: extraGroups:
|
||||||
|
let
|
||||||
|
bin = pkgs.writeScriptBin name ''
|
||||||
|
/var/setuid-wrappers/sudo -u ${name} -i ${pkgs.chromium}/bin/chromium $@
|
||||||
|
'';
|
||||||
|
in {
|
||||||
users.extraUsers.${name} = {
|
users.extraUsers.${name} = {
|
||||||
inherit name;
|
inherit name;
|
||||||
inherit extraGroups;
|
inherit extraGroups;
|
||||||
|
@ -14,19 +31,21 @@ let
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
createHome = true;
|
createHome = true;
|
||||||
};
|
};
|
||||||
krebs.per-user.${name}.packages = packages;
|
lass.browser.paths.${name} = bin;
|
||||||
security.sudo.extraConfig = ''
|
security.sudo.extraConfig = ''
|
||||||
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
||||||
'';
|
'';
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeScriptBin name ''
|
bin
|
||||||
/var/setuid-wrappers/sudo -u ${name} -i chromium $@
|
|
||||||
'')
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
createFirefoxUser = name: extraGroups: packages:
|
createFirefoxUser = name: extraGroups:
|
||||||
{
|
let
|
||||||
|
bin = pkgs.writeScriptBin name ''
|
||||||
|
/var/setuid-wrappers/sudo -u ${name} -i ${pkgs.firefox}/bin/firefox $@
|
||||||
|
'';
|
||||||
|
in {
|
||||||
users.extraUsers.${name} = {
|
users.extraUsers.${name} = {
|
||||||
inherit name;
|
inherit name;
|
||||||
inherit extraGroups;
|
inherit extraGroups;
|
||||||
|
@ -35,14 +54,12 @@ let
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
createHome = true;
|
createHome = true;
|
||||||
};
|
};
|
||||||
krebs.per-user.${name}.packages = packages;
|
lass.browser.paths.${name} = bin;
|
||||||
security.sudo.extraConfig = ''
|
security.sudo.extraConfig = ''
|
||||||
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
||||||
'';
|
'';
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeScriptBin name ''
|
bin
|
||||||
/var/setuid-wrappers/sudo -u ${name} -i firefox $@
|
|
||||||
'')
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,19 +67,26 @@ let
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
lass.browser.select = browser-select;
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeScriptBin "browser-select" ''
|
browser-select
|
||||||
BROWSER=$(echo -e "ff\ncr\nwk\nfb\ngm\nflash" | dmenu)
|
|
||||||
$BROWSER $@
|
|
||||||
'')
|
|
||||||
];
|
];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
( createFirefoxUser "ff" [ "audio" ] [ pkgs.firefox ] )
|
{
|
||||||
( createChromiumUser "cr" [ "video" "audio" ] [ pkgs.chromium ] )
|
options.lass.browser.select = mkOption {
|
||||||
( createChromiumUser "wk" [ "video" "audio" ] [ pkgs.chromium ] )
|
type = types.path;
|
||||||
( createChromiumUser "fb" [ "video" "audio" ] [ pkgs.chromium ] )
|
};
|
||||||
( createChromiumUser "gm" [ "video" "audio" ] [ pkgs.chromium ] )
|
options.lass.browser.paths = mkOption {
|
||||||
( createChromiumUser "com" [ "video" "audio" ] [ pkgs.chromium ] )
|
type = with types; attrsOf path;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
( createFirefoxUser "ff" [ "audio" ] )
|
||||||
|
( createChromiumUser "cr" [ "video" "audio" ] )
|
||||||
|
( createChromiumUser "wk" [ "video" "audio" ] )
|
||||||
|
( createChromiumUser "fb" [ "video" "audio" ] )
|
||||||
|
( createChromiumUser "gm" [ "video" "audio" ] )
|
||||||
|
( createChromiumUser "com" [ "video" "audio" ] )
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ with config.krebs.lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.useChroot = true;
|
nix.useSandbox = true;
|
||||||
|
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
|
|
||||||
|
@ -97,6 +97,7 @@ with config.krebs.lib;
|
||||||
jq
|
jq
|
||||||
parallel
|
parallel
|
||||||
proot
|
proot
|
||||||
|
populate
|
||||||
|
|
||||||
#style
|
#style
|
||||||
most
|
most
|
||||||
|
@ -141,15 +142,6 @@ with config.krebs.lib;
|
||||||
shopt -s histappend histreedit histverify
|
shopt -s histappend histreedit histverify
|
||||||
shopt -s no_empty_cmd_completion
|
shopt -s no_empty_cmd_completion
|
||||||
complete -d cd
|
complete -d cd
|
||||||
|
|
||||||
#fancy colors
|
|
||||||
if [ -e ~/LS_COLORS ]; then
|
|
||||||
eval $(dircolors ~/LS_COLORS)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e /etc/nixos/dotfiles/link ]; then
|
|
||||||
/etc/nixos/dotfiles/link
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
promptInit = ''
|
promptInit = ''
|
||||||
if test $UID = 0; then
|
if test $UID = 0; then
|
||||||
|
|
|
@ -6,15 +6,15 @@ let
|
||||||
pw = import <secrets/iodinepw.nix>;
|
pw = import <secrets/iodinepw.nix>;
|
||||||
in {
|
in {
|
||||||
|
|
||||||
services.iodined = {
|
services.iodine.server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
domain = domain;
|
domain = domain;
|
||||||
ip = "172.16.10.1/24";
|
ip = "172.16.10.1/24";
|
||||||
extraConfig = "-P ${pw} -l ${config.krebs.build.host.nets.internet.ip4.addr}";
|
extraConfig = "-c -P ${pw} -l ${config.krebs.build.host.nets.internet.ip4.addr}";
|
||||||
};
|
};
|
||||||
|
|
||||||
krebs.iptables.tables.filter.INPUT.rules = [
|
krebs.iptables.tables.filter.INPUT.rules = [
|
||||||
{ predicate = "-p udp --dport 54"; target = "ACCEPT";}
|
{ predicate = "-p udp --dport 53"; target = "ACCEPT";}
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
krebs.build.source.nixpkgs.git = {
|
krebs.build.source.nixpkgs.git = {
|
||||||
url = https://github.com/lassulus/nixpkgs;
|
url = https://github.com/nixos/nixpkgs;
|
||||||
ref = "3fb009d94e70f5d1151f4ec239a90d2de1979a74";
|
ref = "354fd3728952c229fee4f2924737c601d7ab4725";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,24 +143,12 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.phpfpm.phpOptions = ''
|
||||||
#services.phpfpm.phpOptions = ''
|
sendmail_path = ${sendmail} -t
|
||||||
# extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
|
|
||||||
# sendmail_path = ${sendmail} -t
|
|
||||||
#'';
|
|
||||||
services.phpfpm.phpIni = pkgs.runCommand "php.ini" {
|
|
||||||
options = ''
|
|
||||||
extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
|
|
||||||
sendmail_path = "${sendmail} -t -i"
|
|
||||||
always_populate_raw_post_data = -1
|
|
||||||
upload_max_filesize = 100M
|
upload_max_filesize = 100M
|
||||||
post_max_size = 100M
|
post_max_size = 100M
|
||||||
file_uploads = on
|
file_uploads = on
|
||||||
'';
|
'';
|
||||||
} ''
|
|
||||||
cat ${pkgs.php}/etc/php-recommended.ini > $out
|
|
||||||
echo "$options" >> $out
|
|
||||||
'';
|
|
||||||
|
|
||||||
# MAIL STUFF
|
# MAIL STUFF
|
||||||
# TODO: make into its own module
|
# TODO: make into its own module
|
||||||
|
|
|
@ -167,7 +167,6 @@ rec {
|
||||||
pm.max_spare_servers = 3
|
pm.max_spare_servers = 3
|
||||||
listen.owner = nginx
|
listen.owner = nginx
|
||||||
listen.group = nginx
|
listen.group = nginx
|
||||||
# errors to journal
|
|
||||||
php_admin_value[error_log] = 'stderr'
|
php_admin_value[error_log] = 'stderr'
|
||||||
php_admin_flag[log_errors] = on
|
php_admin_flag[log_errors] = on
|
||||||
catch_workers_output = yes
|
catch_workers_output = yes
|
||||||
|
@ -220,7 +219,6 @@ rec {
|
||||||
pm.max_spare_servers = 3
|
pm.max_spare_servers = 3
|
||||||
listen.owner = nginx
|
listen.owner = nginx
|
||||||
listen.group = nginx
|
listen.group = nginx
|
||||||
# errors to journal
|
|
||||||
php_admin_value[error_log] = 'stderr'
|
php_admin_value[error_log] = 'stderr'
|
||||||
php_admin_flag[log_errors] = on
|
php_admin_flag[log_errors] = on
|
||||||
catch_workers_output = yes
|
catch_workers_output = yes
|
||||||
|
|
|
@ -11,7 +11,7 @@ pkgs.writeText "Xresources" ''
|
||||||
! ref https://github.com/muennich/urxvt-perls
|
! ref https://github.com/muennich/urxvt-perls
|
||||||
URxvt.perl-lib: ${pkgs.urxvt_perls}/lib/urxvt/perl
|
URxvt.perl-lib: ${pkgs.urxvt_perls}/lib/urxvt/perl
|
||||||
URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select
|
URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select
|
||||||
URxvt.url-select.launcher: browser-select
|
URxvt.url-select.launcher: ${config.lass.browser.select}/bin/browser-select
|
||||||
URxvt.url-select.underline: true
|
URxvt.url-select.underline: true
|
||||||
URxvt.keysym.M-u: perl:url-select:select_next
|
URxvt.keysym.M-u: perl:url-select:select_next
|
||||||
URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||||
|
|
|
@ -1,13 +1,23 @@
|
||||||
{ config, lib, pkgs, ... }@args:
|
{ config, pkgs, ... }@args:
|
||||||
|
|
||||||
with config.krebs.lib;
|
with config.krebs.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
# TODO krebs.build.user
|
user = config.krebs.build.user;
|
||||||
user = config.users.users.mainUser;
|
in {
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.gitAndTools.qgit
|
||||||
|
pkgs.mpv
|
||||||
|
pkgs.sxiv
|
||||||
|
pkgs.xsel
|
||||||
|
pkgs.zathura
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.fonts = [
|
||||||
|
pkgs.xlibs.fontschumachermisc
|
||||||
|
];
|
||||||
|
|
||||||
out = {
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
display = 11;
|
display = 11;
|
||||||
tty = 11;
|
tty = 11;
|
||||||
|
|
||||||
|
@ -17,45 +27,41 @@ let
|
||||||
accelFactor = "0.035";
|
accelFactor = "0.035";
|
||||||
};
|
};
|
||||||
|
|
||||||
#keyboard stuff
|
|
||||||
layout = "us";
|
layout = "us";
|
||||||
xkbVariant = "altgr-intl";
|
xkbVariant = "altgr-intl";
|
||||||
xkbOptions = "caps:backspace";
|
xkbOptions = "caps:backspace";
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fonts = [
|
|
||||||
pkgs.xlibs.fontschumachermisc
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.urxvtd = {
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
reloadIfChanged = true;
|
|
||||||
serviceConfig = {
|
|
||||||
ExecReload = need-reload "urxvtd.service";
|
|
||||||
ExecStart = "${pkgs.rxvt_unicode}/bin/urxvtd";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = "2s";
|
|
||||||
StartLimitBurst = 0;
|
|
||||||
User = user.name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
krebs.per-user.lass.packages = [
|
|
||||||
pkgs.rxvt_unicode_with-plugins
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.display-manager.enable = false;
|
systemd.services.display-manager.enable = false;
|
||||||
|
|
||||||
services.xserver.enable = true;
|
|
||||||
|
|
||||||
systemd.services.xmonad = {
|
systemd.services.xmonad = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
requires = [ "xserver.service" ];
|
requires = [ "xserver.service" ];
|
||||||
environment = xmonad-environment;
|
environment = {
|
||||||
restartIfChanged = true;
|
DISPLAY = ":${toString config.services.xserver.display}";
|
||||||
|
|
||||||
|
XMONAD_STARTUP_HOOK = pkgs.writeDash "xmonad-startup-hook" ''
|
||||||
|
${pkgs.xorg.xhost}/bin/xhost +LOCAL: &
|
||||||
|
${pkgs.xorg.xrdb}/bin/xrdb -merge ${import ./Xresources.nix args} &
|
||||||
|
${pkgs.xorg.xsetroot}/bin/xsetroot -solid '#1c1c1c' &
|
||||||
|
wait
|
||||||
|
'';
|
||||||
|
|
||||||
|
XMONAD_STATE = "/tmp/xmonad.state";
|
||||||
|
|
||||||
|
# XXX JSON is close enough :)
|
||||||
|
XMONAD_WORKSPACES0_FILE = pkgs.writeText "xmonad.workspaces0" (toJSON [
|
||||||
|
"dashboard" # we start here
|
||||||
|
]);
|
||||||
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${xmonad-start}/bin/xmonad";
|
SyslogIdentifier = "xmonad";
|
||||||
ExecStop = "${xmonad-stop}/bin/xmonad-stop";
|
ExecStart = "${pkgs.xmonad-lass}/bin/xmonad";
|
||||||
|
ExecStop = pkgs.writeScript "xmonad-stop" ''
|
||||||
|
#! /bin/sh
|
||||||
|
${pkgs.xmonad-lass}/bin/xmonad --shutdown
|
||||||
|
${pkgs.coreutils}/bin/sleep 2s
|
||||||
|
'';
|
||||||
User = user.name;
|
User = user.name;
|
||||||
WorkingDirectory = user.home;
|
WorkingDirectory = user.home;
|
||||||
};
|
};
|
||||||
|
@ -68,76 +74,39 @@ let
|
||||||
"acpid.service"
|
"acpid.service"
|
||||||
];
|
];
|
||||||
reloadIfChanged = true;
|
reloadIfChanged = true;
|
||||||
environment = xserver-environment;
|
environment = {
|
||||||
serviceConfig = {
|
|
||||||
ExecReload = need-reload "xserver.service";
|
|
||||||
ExecStart = "${xserver}/bin/xserver";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xmonad-environment = {
|
|
||||||
DISPLAY = ":${toString config.services.xserver.display}";
|
|
||||||
XMONAD_STATE = "/tmp/xmonad.state";
|
|
||||||
|
|
||||||
# XXX JSON is close enough :)
|
|
||||||
XMONAD_WORKSPACES0_FILE = pkgs.writeText "xmonad.workspaces0" (toJSON [
|
|
||||||
"dashboard"
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
|
|
||||||
xmonad-start = pkgs.writeScriptBin "xmonad" ''
|
|
||||||
#! ${pkgs.bash}/bin/bash
|
|
||||||
set -efu
|
|
||||||
export PATH; PATH=${makeSearchPath "bin" ([
|
|
||||||
pkgs.rxvt_unicode
|
|
||||||
] ++ config.environment.systemPackages)}:/var/setuid-wrappers
|
|
||||||
settle() {(
|
|
||||||
# Use PATH for a clean journal
|
|
||||||
command=''${1##*/}
|
|
||||||
PATH=''${1%/*}; export PATH
|
|
||||||
shift
|
|
||||||
until "$command" "$@"; do
|
|
||||||
${pkgs.coreutils}/bin/sleep 1
|
|
||||||
done
|
|
||||||
)&}
|
|
||||||
settle ${pkgs.xorg.xhost}/bin/xhost +LOCAL:
|
|
||||||
settle ${pkgs.xorg.xrdb}/bin/xrdb -merge ${import ./Xresources.nix args}
|
|
||||||
settle ${pkgs.xorg.xsetroot}/bin/xsetroot -solid '#1c1c1c'
|
|
||||||
exec ${pkgs.xmonad-lass}/bin/xmonad
|
|
||||||
'';
|
|
||||||
|
|
||||||
xmonad-stop = pkgs.writeScriptBin "xmonad-stop" ''
|
|
||||||
#! /bin/sh
|
|
||||||
${pkgs.xmonad-lass}/bin/xmonad --shutdown
|
|
||||||
${pkgs.coreutils}/bin/sleep 2s
|
|
||||||
'';
|
|
||||||
|
|
||||||
xserver-environment = {
|
|
||||||
XKB_BINDIR = "${pkgs.xorg.xkbcomp}/bin"; # Needed for the Xkb extension.
|
XKB_BINDIR = "${pkgs.xorg.xkbcomp}/bin"; # Needed for the Xkb extension.
|
||||||
XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
|
XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
|
||||||
LD_LIBRARY_PATH = concatStringsSep ":" (
|
LD_LIBRARY_PATH = concatStringsSep ":" (
|
||||||
[ "${pkgs.xorg.libX11}/lib" "${pkgs.xorg.libXext}/lib" ]
|
[ "${pkgs.xorg.libX11}/lib" "${pkgs.xorg.libXext}/lib" ]
|
||||||
++ concatLists (catAttrs "libPath" config.services.xserver.drivers));
|
++ concatLists (catAttrs "libPath" config.services.xserver.drivers));
|
||||||
};
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
SyslogIdentifier = "xserver";
|
||||||
|
ExecReload = "${pkgs.coreutils}/bin/echo NOP";
|
||||||
|
ExecStart = toString [
|
||||||
|
"${pkgs.xorg.xorgserver}/bin/X"
|
||||||
|
":${toString config.services.xserver.display}"
|
||||||
|
"vt${toString config.services.xserver.tty}"
|
||||||
|
"-config ${import ./xserver.conf.nix args}"
|
||||||
|
"-logfile /dev/null -logverbose 0 -verbose 3"
|
||||||
|
"-nolisten tcp"
|
||||||
|
"-xkbdir ${pkgs.xkeyboard_config}/etc/X11/xkb"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
xserver = pkgs.writeScriptBin "xserver" ''
|
systemd.services.urxvtd = {
|
||||||
#! /bin/sh
|
wantedBy = [ "multi-user.target" ];
|
||||||
set -efu
|
reloadIfChanged = true;
|
||||||
exec ${pkgs.xorg.xorgserver.out}/bin/X \
|
serviceConfig = {
|
||||||
:${toString config.services.xserver.display} \
|
SyslogIdentifier = "urxvtd";
|
||||||
vt${toString config.services.xserver.tty} \
|
ExecReload = "${pkgs.coreutils}/bin/echo NOP";
|
||||||
-config ${import ./xserver.conf.nix args} \
|
ExecStart = "${pkgs.rxvt_unicode}/bin/urxvtd";
|
||||||
-logfile /var/log/X.${toString config.services.xserver.display}.log \
|
Restart = "always";
|
||||||
-nolisten tcp \
|
RestartSec = "2s";
|
||||||
-xkbdir ${pkgs.xkeyboard_config}/etc/X11/xkb \
|
StartLimitBurst = 0;
|
||||||
'';
|
User = user.name;
|
||||||
|
};
|
||||||
need-reload = s: let
|
};
|
||||||
pkg = pkgs.writeScriptBin "need-reload" ''
|
}
|
||||||
#! /bin/sh
|
|
||||||
echo "$*"
|
|
||||||
'';
|
|
||||||
in "${pkg}/bin/need-reload ${s}";
|
|
||||||
|
|
||||||
in out
|
|
||||||
|
|
|
@ -118,5 +118,4 @@
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
users.defaultUserShell = "/run/current-system/sw/bin/zsh";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ _:
|
||||||
imports = [
|
imports = [
|
||||||
./ejabberd
|
./ejabberd
|
||||||
./folderPerms.nix
|
./folderPerms.nix
|
||||||
|
./hosts.nix
|
||||||
./mysql-backup.nix
|
./mysql-backup.nix
|
||||||
./umts.nix
|
./umts.nix
|
||||||
./urxvtd.nix
|
./urxvtd.nix
|
||||||
|
|
12
lass/3modules/hosts.nix
Normal file
12
lass/3modules/hosts.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
with config.krebs.lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
options.lass.hosts = mkOption {
|
||||||
|
type = types.attrsOf types.host;
|
||||||
|
default =
|
||||||
|
filterAttrs (_: host: host.owner.name == "lass")
|
||||||
|
config.krebs.hosts;
|
||||||
|
};
|
||||||
|
}
|
|
@ -111,7 +111,6 @@ let
|
||||||
pm.max_spare_servers = 3
|
pm.max_spare_servers = 3
|
||||||
listen.owner = ${user}
|
listen.owner = ${user}
|
||||||
listen.group = ${group}
|
listen.group = ${group}
|
||||||
# errors to journal
|
|
||||||
php_admin_value[error_log] = 'stderr'
|
php_admin_value[error_log] = 'stderr'
|
||||||
php_admin_flag[log_errors] = on
|
php_admin_flag[log_errors] = on
|
||||||
catch_workers_output = yes
|
catch_workers_output = yes
|
||||||
|
|
|
@ -41,10 +41,6 @@ let
|
||||||
|
|
||||||
wvdial = nixpkgs-1509.wvdial; # https://github.com/NixOS/nixpkgs/issues/16113
|
wvdial = nixpkgs-1509.wvdial; # https://github.com/NixOS/nixpkgs/issues/16113
|
||||||
|
|
||||||
#modem-device = "/dev/serial/by-id/usb-Lenovo_F5521gw_38214921FBBBC7B0-if09";
|
|
||||||
modem-device = "/dev/serial/by-id/usb-HUAWEI_Technologies_HUAWEI_Mobile-if00-port0";
|
|
||||||
|
|
||||||
# TODO: currently it is only netzclub
|
|
||||||
umts-bin = pkgs.writeScriptBin "umts" ''
|
umts-bin = pkgs.writeScriptBin "umts" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -euf
|
set -euf
|
||||||
|
|
|
@ -154,7 +154,6 @@ let
|
||||||
pm.max_spare_servers = 3
|
pm.max_spare_servers = 3
|
||||||
listen.owner = ${user}
|
listen.owner = ${user}
|
||||||
listen.group = ${group}
|
listen.group = ${group}
|
||||||
# errors to journal
|
|
||||||
php_admin_value[error_log] = 'stderr'
|
php_admin_value[error_log] = 'stderr'
|
||||||
php_admin_flag[log_errors] = on
|
php_admin_flag[log_errors] = on
|
||||||
catch_workers_output = yes
|
catch_workers_output = yes
|
||||||
|
|
|
@ -9,7 +9,7 @@ pkgs.writeHaskell "xmonad-lass" {
|
||||||
"xmonad-contrib"
|
"xmonad-contrib"
|
||||||
"xmonad-stockholm"
|
"xmonad-stockholm"
|
||||||
];
|
];
|
||||||
text = ''
|
text = /* haskell */ ''
|
||||||
{-# LANGUAGE DeriveDataTypeable #-} -- for XS
|
{-# LANGUAGE DeriveDataTypeable #-} -- for XS
|
||||||
{-# LANGUAGE FlexibleContexts #-} -- for xmonad'
|
{-# LANGUAGE FlexibleContexts #-} -- for xmonad'
|
||||||
{-# LANGUAGE LambdaCase #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
|
@ -24,6 +24,7 @@ import Control.Exception
|
||||||
import Data.List (isInfixOf)
|
import Data.List (isInfixOf)
|
||||||
import System.Environment (getArgs, withArgs, getEnv)
|
import System.Environment (getArgs, withArgs, getEnv)
|
||||||
import System.IO (hPutStrLn, stderr)
|
import System.IO (hPutStrLn, stderr)
|
||||||
|
import System.Posix.Process (executeFile)
|
||||||
import Text.Read (readEither)
|
import Text.Read (readEither)
|
||||||
import XMonad.Actions.CopyWindow (copy, kill1)
|
import XMonad.Actions.CopyWindow (copy, kill1)
|
||||||
import XMonad.Actions.CycleWS (toggleWS)
|
import XMonad.Actions.CycleWS (toggleWS)
|
||||||
|
@ -41,13 +42,13 @@ import XMonad.Layout.Minimize (minimize, minimizeWindow, MinimizeMsg(RestoreNext
|
||||||
import XMonad.Layout.NoBorders (smartBorders)
|
import XMonad.Layout.NoBorders (smartBorders)
|
||||||
import XMonad.Prompt (autoComplete, searchPredicate, XPConfig)
|
import XMonad.Prompt (autoComplete, searchPredicate, XPConfig)
|
||||||
import XMonad.Prompt.Window (windowPromptGoto, windowPromptBringCopy)
|
import XMonad.Prompt.Window (windowPromptGoto, windowPromptBringCopy)
|
||||||
import XMonad.Stockholm.Shutdown (sendShutdownEvent, handleShutdownEvent)
|
|
||||||
import XMonad.Util.EZConfig (additionalKeysP)
|
import XMonad.Util.EZConfig (additionalKeysP)
|
||||||
import XMonad.Layout.SimpleFloat (simpleFloat)
|
import XMonad.Layout.SimpleFloat (simpleFloat)
|
||||||
|
|
||||||
|
import XMonad.Stockholm.Shutdown
|
||||||
|
|
||||||
myTerm :: String
|
urxvtcPath :: FilePath
|
||||||
myTerm = "${pkgs.rxvt_unicode}/bin/urxvtc"
|
urxvtcPath = "${pkgs.rxvt_unicode}/bin/urxvtc"
|
||||||
|
|
||||||
myFont :: String
|
myFont :: String
|
||||||
myFont = "-schumacher-*-*-*-*-*-*-*-*-*-*-*-iso10646-*"
|
myFont = "-schumacher-*-*-*-*-*-*-*-*-*-*-*-iso10646-*"
|
||||||
|
@ -63,12 +64,14 @@ mainNoArgs = do
|
||||||
xmonad'
|
xmonad'
|
||||||
$ withUrgencyHook (SpawnUrgencyHook "echo emit Urgency ")
|
$ withUrgencyHook (SpawnUrgencyHook "echo emit Urgency ")
|
||||||
$ def
|
$ def
|
||||||
{ terminal = myTerm
|
{ terminal = urxvtcPath
|
||||||
, modMask = mod4Mask
|
, modMask = mod4Mask
|
||||||
, workspaces = workspaces0
|
, workspaces = workspaces0
|
||||||
, layoutHook = smartBorders $ myLayoutHook
|
, layoutHook = smartBorders $ myLayoutHook
|
||||||
, manageHook = placeHook (smart (1,0)) <+> floatNextHook
|
, manageHook = placeHook (smart (1,0)) <+> floatNextHook
|
||||||
, startupHook = spawn "echo emit XMonadStartup"
|
, startupHook = do
|
||||||
|
path <- liftIO (getEnv "XMONAD_STARTUP_HOOK")
|
||||||
|
forkFile path [] Nothing
|
||||||
, normalBorderColor = "#1c1c1c"
|
, normalBorderColor = "#1c1c1c"
|
||||||
, focusedBorderColor = "#f000b0"
|
, focusedBorderColor = "#f000b0"
|
||||||
, handleEventHook = handleShutdownEvent
|
, handleEventHook = handleShutdownEvent
|
||||||
|
@ -84,7 +87,7 @@ xmonad' conf = do
|
||||||
path <- getEnv "XMONAD_STATE"
|
path <- getEnv "XMONAD_STATE"
|
||||||
try (readFile path) >>= \case
|
try (readFile path) >>= \case
|
||||||
Right content -> do
|
Right content -> do
|
||||||
hPutStrLn stderr ("resuming from " ++ path ++ "; state = " ++ show content)
|
hPutStrLn stderr ("resuming from " ++ path)
|
||||||
withArgs ("--resume" : lines content) (xmonad conf)
|
withArgs ("--resume" : lines content) (xmonad conf)
|
||||||
Left e -> do
|
Left e -> do
|
||||||
hPutStrLn stderr (displaySomeException e)
|
hPutStrLn stderr (displaySomeException e)
|
||||||
|
@ -108,7 +111,7 @@ displaySomeException = displayException
|
||||||
|
|
||||||
myKeyMap :: [([Char], X ())]
|
myKeyMap :: [([Char], X ())]
|
||||||
myKeyMap =
|
myKeyMap =
|
||||||
[ ("M4-<F11>", spawn "i3lock -i /var/lib/wallpaper/wallpaper -f")
|
[ ("M4-<F11>", spawn "${pkgs.i3lock}/bin/i3lock -i /var/lib/wallpaper/wallpaper -f")
|
||||||
, ("M4-p", spawn "${pkgs.pass}/bin/passmenu --type")
|
, ("M4-p", spawn "${pkgs.pass}/bin/passmenu --type")
|
||||||
, ("<XF86AudioRaiseVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume 0 +4%")
|
, ("<XF86AudioRaiseVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume 0 +4%")
|
||||||
, ("<XF86AudioLowerVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume 0 -4%")
|
, ("<XF86AudioLowerVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume 0 -4%")
|
||||||
|
@ -124,8 +127,8 @@ myKeyMap =
|
||||||
, ("M4-S-<Backspace>", removeEmptyWorkspace)
|
, ("M4-S-<Backspace>", removeEmptyWorkspace)
|
||||||
, ("M4-S-c", kill1)
|
, ("M4-S-c", kill1)
|
||||||
, ("M4-<Esc>", toggleWS)
|
, ("M4-<Esc>", toggleWS)
|
||||||
, ("M4-S-<Enter>", spawn myTerm)
|
, ("M4-S-<Enter>", spawn urxvtcPath)
|
||||||
, ("M4-x", floatNext True >> spawn myTerm)
|
, ("M4-x", floatNext True >> spawn urxvtcPath)
|
||||||
, ("M4-f", floatNext True)
|
, ("M4-f", floatNext True)
|
||||||
, ("M4-b", sendMessage ToggleStruts)
|
, ("M4-b", sendMessage ToggleStruts)
|
||||||
|
|
||||||
|
@ -142,6 +145,10 @@ myKeyMap =
|
||||||
, ("M4-S-q", return ())
|
, ("M4-S-q", return ())
|
||||||
]
|
]
|
||||||
|
|
||||||
|
forkFile :: FilePath -> [String] -> Maybe [(String, String)] -> X ()
|
||||||
|
forkFile path args env =
|
||||||
|
xfork (executeFile path False args env) >> return ()
|
||||||
|
|
||||||
autoXPConfig :: XPConfig
|
autoXPConfig :: XPConfig
|
||||||
autoXPConfig = def
|
autoXPConfig = def
|
||||||
{ autoComplete = Just 5000
|
{ autoComplete = Just 5000
|
||||||
|
@ -160,8 +167,6 @@ gridConfig = def
|
||||||
, gs_navigate = navNSearch
|
, gs_navigate = navNSearch
|
||||||
, gs_font = myFont
|
, gs_font = myFont
|
||||||
}
|
}
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ in {
|
||||||
../2configs/tinc/retiolum.nix
|
../2configs/tinc/retiolum.nix
|
||||||
../2configs/urlwatch.nix
|
../2configs/urlwatch.nix
|
||||||
../2configs/torrent.nix
|
../2configs/torrent.nix
|
||||||
|
../2configs/sabnzbd.nix
|
||||||
|
|
||||||
../2configs/opentracker.nix
|
../2configs/opentracker.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -43,9 +43,11 @@ in {
|
||||||
# TODO: unlock home partition via ssh
|
# TODO: unlock home partition via ssh
|
||||||
../2configs/fs/sda-crypto-root.nix
|
../2configs/fs/sda-crypto-root.nix
|
||||||
../2configs/zsh-user.nix
|
../2configs/zsh-user.nix
|
||||||
|
../2configs/urlwatch.nix
|
||||||
../2configs/exim-retiolum.nix
|
../2configs/exim-retiolum.nix
|
||||||
../2configs/smart-monitor.nix
|
../2configs/smart-monitor.nix
|
||||||
../2configs/mail-client.nix
|
../2configs/mail-client.nix
|
||||||
|
../2configs/disable_v6.nix
|
||||||
#../2configs/graphite-standalone.nix
|
#../2configs/graphite-standalone.nix
|
||||||
#../2configs/share-user-sftp.nix
|
#../2configs/share-user-sftp.nix
|
||||||
../2configs/omo-share.nix
|
../2configs/omo-share.nix
|
||||||
|
@ -56,13 +58,11 @@ in {
|
||||||
# docker run -d -v /var/lib/pyload:/opt/pyload/pyload-config -v /media/crypt0/pyload:/opt/pyload/Downloads --name pyload --restart=always -p 8112:8000 -P writl/pyload
|
# docker run -d -v /var/lib/pyload:/opt/pyload/pyload-config -v /media/crypt0/pyload:/opt/pyload/Downloads --name pyload --restart=always -p 8112:8000 -P writl/pyload
|
||||||
];
|
];
|
||||||
makefu.full-populate = true;
|
makefu.full-populate = true;
|
||||||
makefu.deluge.cfg = {
|
krebs.rtorrent = {
|
||||||
max_active_seeding = 1;
|
downloadDir = lib.mkForce "/media/crypt0/torrent";
|
||||||
stop_seed_ratio = 1;
|
extraConfig = ''
|
||||||
natpmp = true;
|
upload_rate = 200
|
||||||
upnp = true;
|
'';
|
||||||
max_upload_speed = 200;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
users.groups.share = {
|
users.groups.share = {
|
||||||
gid = config.krebs.lib.genid "share";
|
gid = config.krebs.lib.genid "share";
|
||||||
|
@ -109,6 +109,7 @@ in {
|
||||||
environment.systemPackages = with pkgs;[
|
environment.systemPackages = with pkgs;[
|
||||||
mergerfs # hard requirement for mount
|
mergerfs # hard requirement for mount
|
||||||
wol # wake up filepimp
|
wol # wake up filepimp
|
||||||
|
f3
|
||||||
];
|
];
|
||||||
fileSystems = let
|
fileSystems = let
|
||||||
cryptMount = name:
|
cryptMount = name:
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
../.
|
../.
|
||||||
../2configs/main-laptop.nix #< base-gui + zsh
|
../2configs/main-laptop.nix #< base-gui + zsh
|
||||||
../2configs/laptop-utils.nix
|
../2configs/laptop-utils.nix
|
||||||
|
../2configs/laptop-backup.nix
|
||||||
|
|
||||||
# Krebs
|
# Krebs
|
||||||
#../2configs/disable_v6.nix
|
#../2configs/disable_v6.nix
|
||||||
|
@ -42,13 +43,14 @@
|
||||||
../2configs/tinc/retiolum.nix
|
../2configs/tinc/retiolum.nix
|
||||||
# temporary modules
|
# temporary modules
|
||||||
../2configs/temp/share-samba.nix
|
../2configs/temp/share-samba.nix
|
||||||
../2configs/temp/elkstack.nix
|
../2configs/laptop-backup.nix
|
||||||
|
# ../2configs/temp/elkstack.nix
|
||||||
# ../2configs/temp/sabnzbd.nix
|
# ../2configs/temp/sabnzbd.nix
|
||||||
../2configs/tinc/siem.nix
|
../2configs/tinc/siem.nix
|
||||||
../2configs/torrent.nix
|
#../2configs/torrent.nix
|
||||||
];
|
];
|
||||||
makefu.full-populate = true;
|
makefu.full-populate = true;
|
||||||
makefu.deluge.web.enable = true;
|
|
||||||
krebs.nginx = {
|
krebs.nginx = {
|
||||||
default404 = false;
|
default404 = false;
|
||||||
servers.default.listen = [ "80 default_server" ];
|
servers.default.listen = [ "80 default_server" ];
|
||||||
|
|
|
@ -22,7 +22,7 @@ with config.krebs.lib;
|
||||||
build = {
|
build = {
|
||||||
user = config.krebs.users.makefu;
|
user = config.krebs.users.makefu;
|
||||||
source = let inherit (config.krebs.build) host user; in {
|
source = let inherit (config.krebs.build) host user; in {
|
||||||
nixpkgs = if config.makefu.full-populate or (getEnv "dummy_secrets" == "true") then
|
nixpkgs = if config.makefu.full-populate || (getEnv "dummy_secrets" == "true") then
|
||||||
{ # stable @ 2016-07-20
|
{ # stable @ 2016-07-20
|
||||||
git = { url = https://github.com/nixos/nixpkgs; ref = "125ffff"; };
|
git = { url = https://github.com/nixos/nixpkgs; ref = "125ffff"; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,12 @@ let
|
||||||
in {
|
in {
|
||||||
|
|
||||||
services.iodined = {
|
services.iodined = {
|
||||||
|
server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
domain = domain;
|
domain = domain;
|
||||||
ip = "172.16.10.1/24";
|
ip = "172.16.10.1/24";
|
||||||
extraConfig = "-P ${pw} -l ${config.krebs.build.host.nets.internet.ip4.addr}";
|
extraConfig = "-P ${pw} -l ${config.krebs.build.host.nets.internet.ip4.addr}";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
12
makefu/2configs/laptop-backup.nix
Normal file
12
makefu/2configs/laptop-backup.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd.user.services.duply-secrets = {
|
||||||
|
description = "run daily secrets backup";
|
||||||
|
startAt = "daily";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "{pkgs.duply}/bin/duply omo-secrets backup";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -21,7 +21,6 @@ in {
|
||||||
sendfile on;
|
sendfile on;
|
||||||
sendfile_max_chunk 512k;
|
sendfile_max_chunk 512k;
|
||||||
directio 512;
|
directio 512;
|
||||||
aio threads;
|
|
||||||
mp4;
|
mp4;
|
||||||
autoindex on;
|
autoindex on;
|
||||||
root /media;
|
root /media;
|
||||||
|
|
16
makefu/2configs/sabnzbd.nix
Normal file
16
makefu/2configs/sabnzbd.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
|
||||||
|
with config.krebs.lib;
|
||||||
|
let
|
||||||
|
web-port = 8080;
|
||||||
|
in {
|
||||||
|
services.sabnzbd.enable = true;
|
||||||
|
services.sabnzbd.group = "download";
|
||||||
|
systemd.services.sabnzbd.environment.SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
|
||||||
|
users.users.sabnzbd.group = mkForce "download";
|
||||||
|
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -A INPUT -i retiolum -p tcp --dport ${toString web-port} -j ACCEPT
|
||||||
|
'';
|
||||||
|
}
|
|
@ -2,9 +2,11 @@
|
||||||
users.users.smbguest = {
|
users.users.smbguest = {
|
||||||
name = "smbguest";
|
name = "smbguest";
|
||||||
uid = config.ids.uids.smbguest;
|
uid = config.ids.uids.smbguest;
|
||||||
|
group = "share";
|
||||||
description = "smb guest user";
|
description = "smb guest user";
|
||||||
home = "/var/empty";
|
home = "/var/empty";
|
||||||
};
|
};
|
||||||
|
users.groups.share.members = [ "makefu" ];
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
139 445 # samba
|
139 445 # samba
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{pkgs, ...}:
|
{pkgs, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
daemon-port = 6969;
|
||||||
cfgfile = pkgs.writeText "udpt-config" ''
|
cfgfile = pkgs.writeText "udpt-config" ''
|
||||||
[db]
|
[db]
|
||||||
driver=sqlite3
|
driver=sqlite3
|
||||||
|
@ -11,7 +12,9 @@ let
|
||||||
port=6969
|
port=6969
|
||||||
threads=5
|
threads=5
|
||||||
allow_remotes=yes
|
allow_remotes=yes
|
||||||
allow_iana_ips=no
|
|
||||||
|
# allow retiolum:
|
||||||
|
allow_iana_ips=yes
|
||||||
announce_interval=1800
|
announce_interval=1800
|
||||||
cleanup_interval=120
|
cleanup_interval=120
|
||||||
|
|
||||||
|
@ -19,7 +22,7 @@ let
|
||||||
enable=yes
|
enable=yes
|
||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
filename=-
|
filename=/tmp/udpt.log
|
||||||
level=warning
|
level=warning
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
@ -27,5 +30,8 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
inherit cfgfile;
|
inherit cfgfile;
|
||||||
};
|
};
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -A INPUT -i retiolum -p udp --dport ${toString daemon-port} -j ACCEPT
|
||||||
|
'';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,6 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
|
||||||
urlwatch = with pkgs.pythonPackages; buildPythonPackage rec {
|
|
||||||
name = "urlwatch-1.18";
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ futures ];
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "http://thp.io/2008/urlwatch/${name}.tar.gz";
|
|
||||||
sha256 = "090qfgx249ks7103sap6w47f8302ix2k46wxhfssxwsqcqdl25vb";
|
|
||||||
};
|
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
wrapProgram "$out/bin/urlwatch" --prefix "PYTHONPATH" : "$PYTHONPATH"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
krebs.urlwatch = {
|
krebs.urlwatch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mailto = config.krebs.users.makefu.mail;
|
mailto = config.krebs.users.makefu.mail;
|
||||||
|
|
|
@ -40,8 +40,9 @@ let
|
||||||
restartIfChanged = true;
|
restartIfChanged = true;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = "${cfg.package}/bin/udpt -c ${shell.escape cfg.cfgfile}";
|
ExecStart = "${cfg.package}/bin/udpt -i -c ${shell.escape cfg.cfgfile}";
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
|
WorkingDirectory = "/tmp";
|
||||||
User = "${cfg.user}";
|
User = "${cfg.user}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,9 +2,16 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs) callPackage;
|
inherit (pkgs) callPackage;
|
||||||
|
nixpkgs-1509 = import (pkgs.fetchFromGitHub {
|
||||||
|
owner = "NixOS"; repo = "nixpkgs-channels";
|
||||||
|
rev = "91371c2bb6e20fc0df7a812332d99c38b21a2bda";
|
||||||
|
sha256 = "1as1i0j9d2n3iap9b471y4x01561r2s3vmjc5281qinirlr4al73";
|
||||||
|
}) {};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixpkgs.config.packageOverrides = rec {
|
nixpkgs.config.packageOverrides = rec {
|
||||||
|
cups = nixpkgs-1509.cups;
|
||||||
alsa-hdspconf = callPackage ./alsa-tools { alsaToolTarget="hdspconf";};
|
alsa-hdspconf = callPackage ./alsa-tools { alsaToolTarget="hdspconf";};
|
||||||
alsa-hdspmixer = callPackage ./alsa-tools { alsaToolTarget="hdspmixer";};
|
alsa-hdspmixer = callPackage ./alsa-tools { alsaToolTarget="hdspmixer";};
|
||||||
alsa-hdsploader = callPackage ./alsa-tools { alsaToolTarget="hdsploader";};
|
alsa-hdsploader = callPackage ./alsa-tools { alsaToolTarget="hdsploader";};
|
||||||
|
@ -18,6 +25,13 @@ in
|
||||||
mycube-flask = callPackage ./mycube-flask {};
|
mycube-flask = callPackage ./mycube-flask {};
|
||||||
nodemcu-uploader = callPackage ./nodemcu-uploader {};
|
nodemcu-uploader = callPackage ./nodemcu-uploader {};
|
||||||
ps3netsrv = callPackage ./ps3netsrv {};
|
ps3netsrv = callPackage ./ps3netsrv {};
|
||||||
|
pwqgen-ger = callPackage ../../krebs/5pkgs/passwdqc-utils {
|
||||||
|
wordset-file = pkgs.fetchurl {
|
||||||
|
url = https://gist.githubusercontent.com/makefu/b56f5554c9ef03fe6e09878962e6fd8d/raw/1f147efec51325bc9f80c823bad8381d5b7252f6/wordset_4k.c ;
|
||||||
|
sha256 = "18ddzyh11bywrhzdkzvrl7nvgp5gdb4k1s0zxbz2bkhd14vi72bb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
qcma = pkgs.qt5.callPackage ./qcma {};
|
||||||
tw-upload-plugin = callPackage ./tw-upload-plugin {};
|
tw-upload-plugin = callPackage ./tw-upload-plugin {};
|
||||||
skytraq-logger = callPackage ./skytraq-logger {};
|
skytraq-logger = callPackage ./skytraq-logger {};
|
||||||
taskserver = callPackage ./taskserver {};
|
taskserver = callPackage ./taskserver {};
|
||||||
|
|
64
makefu/5pkgs/qcma/default.nix
Normal file
64
makefu/5pkgs/qcma/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{ lib, stdenv, fetchFromGitHub, fetchgit, libusb, libtool, autoconf, pkgconfig, git,
|
||||||
|
gettext, automake, libxml2 , qmakeHook, makeQtWrapper,
|
||||||
|
qtbase, qttools, qtmultimedia, libnotify, ffmpeg, gdk_pixbuf }:
|
||||||
|
let
|
||||||
|
libvitamtp = stdenv.mkDerivation rec {
|
||||||
|
name = "libvitamtp-${version}";
|
||||||
|
version = "2.5.9";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "codestation";
|
||||||
|
repo = "vitamtp";
|
||||||
|
rev = "v"+version;
|
||||||
|
sha256 = "09c9f7gqpyicfpnhrfb4r67s2hci6hh31bzmqlpds4fywv5mzaf8";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ libusb libxml2 libtool autoconf automake gettext pkgconfig ];
|
||||||
|
preConfigure = "sh ./autogen.sh";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Content Manager Assistant for the PS Vita";
|
||||||
|
homepage = https://github.com/codestation/qcma;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ makefu ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "qcma-${version}";
|
||||||
|
version = "0.3.13";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://github.com/codestation/qcma.git";
|
||||||
|
rev = "refs/tags/v"+version;
|
||||||
|
leaveDotGit = true;
|
||||||
|
sha256 = "164abjwlw2nw2i30wlwpsavz1zjkp6a14yprvinma5hflkw4yj6i";
|
||||||
|
};
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
lrelease common/resources/translations/*.ts
|
||||||
|
'';
|
||||||
|
|
||||||
|
# TODO: manually adding qtbase and qtmultimedia to the library path is shit,
|
||||||
|
# this should be done somewhere before when building the project, idk.
|
||||||
|
installPhase = ''
|
||||||
|
make INSTALL_ROOT="$(out)" install
|
||||||
|
for i in qcma qcma_cli; do
|
||||||
|
wrapQtProgram $out/bin/$i --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
|
||||||
|
qtbase qtmultimedia ]}
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
buildInputs = [ gdk_pixbuf ffmpeg libnotify libvitamtp git qtmultimedia qtbase ];
|
||||||
|
nativeBuildInputs = [ qmakeHook qttools pkgconfig makeQtWrapper ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Content Manager Assistant for the PS Vita";
|
||||||
|
homepage = https://github.com/codestation/qcma;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ makefu ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue