modules/satoshipay.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | { config, pkgs, fetchurl, lib, ... }:
{ virtualisation = {
docker = {
enable = true;
enableOnBoot = false;
liveRestore = false;
extraOptions = "--ipv6 --fixed-cidr-v6 fd69:2074:9fcd:b0fd::/64";
autoPrune = {
enable = true;
};
};
};
nixpkgs.config.allowUnfree = true;
programs.chromium = {
enable = true;
extensions = [
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
"aeblfdkhhhdcdjpifhhbdiojplfjncoa" # 1password x
];
homepageLocation = "about:blank";
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
defaultSearchProviderSuggestURL = "https://duckduckgo.com/ac/?q={searchTerms}&type=list";
# https://www.chromium.org/administrators/policy-list-3
extraOpts = {
BlockThirdPartyCookies = true;
CookiesBlockedForUrls = [
"[*.]smartlock.google.com"
"[*.]mediumSmartLockSigninAllowed.com"
];
SyncDisabled = true;
BuiltInDnsClientEnabled = false;
BrowserSignin = 0;
EasyUnlockAllowed = false;
EnableMediaRouter = false;
CloudPrintProxyEnabled = false;
CloudPrintSubmitEnabled = false;
SafeBrowsingEnabled = false;
RestoreOnStartup = 1; # Restore last session
AlwaysOpenPdfExternally = true;
BrowserNetworkTimeQueriesEnabled = false;
NotificationsAllowedForUrls = [
"gitlab.satoshipay.tech"
"calendar.google.com"
];
NotificationsBlockedForUrls = [
"[.*]reddit.com"
];
};
};
environment.systemPackages = with pkgs; [
awscli
caddy
openssl
chromium
docker_compose
mongodb-tools
pgadmin
pgcli
s3cmd
sops
unstable.google-cloud-sdk
unstable.kubernetes
unstable.kubectx
unstable.redis-desktop-manager
unstable.kubernetes-helm
unstable.helmfile
unstable.robo3t
unstable.slack
];
services.mongodb = {
enable = true;
replSetName = "rs0";
dbpath = "/tmp/mongodb";
};
systemd.services.mongodb.wantedBy = lib.mkForce [];
systemd.timers.mongodb = {
description = "Delayed startup of MongoDB";
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "1 min";
};
};
systemd.services.mongodb-init = {
description = "Init mongodb replicaset";
requires = [ "mongodb.service" ];
script = "${pkgs.mongodb}/bin/mongo --eval 'rs.initiate()'";
};
systemd.timers.mongodb-init = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "2 min";
};
};
services.redis = {
enable = true;
};
systemd.services.redis.wantedBy = lib.mkForce [];
systemd.timers.redis = {
description = "Delayed startup of Redis";
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "1 min";
};
};
services.printing.drivers = with pkgs; [
];
networking.domain = "satoshipay.io";
networking.extraHosts = ''
127.0.0.1 blogger.local wallet.satoshipay.local api.satoshipay.local ws.satoshipay.local
'';
}
|