This repository has been archived on 2024-11-23. You can view files and clone it, but cannot push or open issues or pull requests.
rpi3-configurations/global/software-configuration.nix
2023-07-23 08:23:01 +00:00

133 lines
2.6 KiB
Nix

{ pkgs, ... }:
let
downloadDir = "/mnt/Downloads/";
in
{
# Enable automatic login for the user.
services = {
# sudo tailscale up --operator=$USER
# use https://hs.wetofu.me
tailscale.enable = true;
logrotate.checkConfig = false;
openssh = {
enable = true;
banner = ''
Must back to QingDao! Must back HOME!
'';
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
ntp = {
enable = true;
servers = [
"ntp.ntsc.ac.cn" # China
];
};
transmission = {
enable = true;
openPeerPorts = true;
downloadDirPermissions = "777";
credentialsFile = "/var/secrets/transmission/settings.json";
settings = {
download-dir = downloadDir;
peer-port-random-low = 42333;
peer-port-random-on-start = true;
incomplete-dir-enabled = false;
};
};
resilio = {
enable = true;
deviceName = "Gangly4670";
enableWebUI = true;
directoryRoot = downloadDir;
};
kubo = {
enable = false;
dataDir = "/mnt/ipfs";
enableGC = true;
};
nginx = {
enable = true;
virtualHosts = {
default = {
default = true;
locations = {
"/" = {
root = "/var/lib/nginx/html";
};
"/files/" = {
alias = downloadDir;
extraConfig = ''
autoindex on;
autoindex_exact_size off;
add_before_body /.theme/header.html;
add_after_body /.theme/footer.html;
'';
};
"/transmission" = {
proxyPass = "http://localhost:9091";
};
# resilio
"/sync/" = {
proxyPass = "http://localhost:9000/";
};
# kubo/ipfs
/*
"/ipfs" = {
proxyPass = "http://localhost:8080";
};
"/ipns" = {
proxyPass = "http://localhost:8080";
};
"/ipfs-ui" = {
proxyPass = "http://localhost:5001/webui/";
};
*/
};
};
};
};
samba = {
enable = true;
shares = {
share = {
path = downloadDir;
browseable = "yes";
"read only" = true;
};
};
};
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
libraspberrypi
vim
];
programs = {
git.enable = true;
};
}