nix-flakes/hosts/server/hikari/amia/configuration.nix
2026-08-29 11:01:25 +09:00

83 lines
2 KiB
Nix

{ pkgs, inputs, ... }:
let
rustyV8Archive = pkgs.fetchurl {
url = "https://github.com/denoland/rusty_v8/releases/download/v137.3.0/librusty_v8_release_x86_64-unknown-linux-gnu.a.gz";
hash = "sha256-omgf3lMBir0zZgGPEyYX3VmAAt948VbHvG0v9gi1ZWc=";
};
amiaBot = pkgs.rustPlatform.buildRustPackage {
pname = "amia";
version = "0.1.0";
src = inputs.amiaBot;
RUSTY_V8_ARCHIVE = rustyV8Archive;
cargoLock = {
lockFile = "${inputs.amiaBot}/Cargo.lock";
outputHashes = {
"obscura-0.1.0" = "04libm9gibw6lphvncpxhr0bzcm9ammn4z1bk0sh11cap7plhkvz";
};
};
};
in
{
imports = [
./hardware-configuration.nix
"${inputs.self}/modules/mizukios/base"
"${inputs.self}/modules/mizukios/features/system/boot.nix"
"${inputs.self}/modules/mizukios/features/remote/ssh.nix"
];
services.qemuGuest.enable = true;
users.users.imnyang.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOHP3Z+AYrRh9f8TYyqChKfeyNm3lOe0F75AwRHTTaxD imnyang@kazusa"
];
environment.systemPackages = with pkgs; [
eza
neovim
nil
nixd
codex
gcc
bind
dig
whois
];
programs.git.config = {
safe.directory = "*";
};
nix.settings.require-sigs = false;
networking.firewall.enable = false;
systemd.services.amia = {
description = "Discord Profile Widget Bot";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
unitConfig.ConditionPathExists = "/home/imnyang/amia/config.toml";
path = [
pkgs.bind.dnsutils
pkgs.whois
];
serviceConfig = {
Type = "simple";
User = "imnyang";
WorkingDirectory = "/home/imnyang/amia";
UMask = "0077";
ExecStart = "${amiaBot}/bin/amia";
Restart = "on-failure";
RestartSec = "5s";
NoNewPrivileges = true;
PrivateTmp = true;
ProtectSystem = "strict";
ProtectHome = false;
};
};
networking.hostName = "amia";
system.stateVersion = "26.05";
}