summaryrefslogtreecommitdiff
path: root/hosts/local/s15/configuration.nix
blob: 20efcb5e5d3887b4859ab5a625562a32d0d96605 (plain)
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
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
# NixOS-WSL specific options are documented on the NixOS-WSL repository:
# https://github.com/nix-community/NixOS-WSL
{
  inputs,
  pkgs,
  ...
}:
# let
#   wrappers =
#     inputs.wrapper-manager.lib.build
#     {
#       inherit pkgs;
#       modules = [
#         ../../../wrappers/aerc
#         ../../../wrappers/zellij
#       ];
#     };
# in
{
  nixpkgs.config = {
    allowUnfree = true;
    allowUnfreePredicate = _: true;
    chromium.enableWideVine = true;
  };
  wsl.enable = true;
  wsl.defaultUser = "y";
  imports = [
    ../../base.nix
    ../../users.nix
    ../../editors.nix
    ../../pkgs.nix
    ../../server.nix
    # ../../gpg.nix
  ];
  environment.systemPackages = [
    # wrappers
    pkgs.superhtml
    pkgs.broken-sword-25
  ];
  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It's perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  system.stateVersion = "24.05"; # Did you read the comment?

  # systemd.services.periodic-http-request = {
  #   description = "Periodic HTTP Request Service";

  #   # Run every 15 minutes
  #   startAt = "*:0/30";

  #   # Service configuration
  #   serviceConfig = {
  #     Type = "oneshot";
  #     User = "nobody"; # Run as unprivileged user
  #     DynamicUser = true;
  #     PrivateTmp = true;
  #     ProtectSystem = "strict";
  #     ProtectHome = true;
  #     NoNewPrivileges = true;
  #   };

  #   path = [pkgs.curl];

  #   script = ''
  #     TOKEN="1993620520:AAE-RACWzn8YuQOkBfDxbkuKBigZQb-w9wE"
  #     URL="https://api.telegram.org/bot$TOKEN/sendMessage"

  #     get_public_ipv4() {
  #       # Try ipify first
  #       IP=$(curl -s https://api.ipify.org)
  #       if [ -n "$IP" ]; then
  #         echo "$IP"
  #         return
  #       fi

  #       # Fallback to icanhazip
  #       IP=$(curl -s https://ipv4.icanhazip.com)
  #       if [ -n "$IP" ]; then
  #         echo "$IP"
  #         return
  #       fi

  #       # Last resort: ipecho
  #       curl -s https://ipecho.net/plain
  #     }

  #     curl -s -X POST "$URL" \
  #     -H "User-Agent: NixOS-Periodic-Request" \
  #     -H 'Content-Type: application/json' \
  #      -d "{\"chat_id\": \"547865560\", \"text\": \"s15 reporting for duty $(get_public_ipv4)\"}" \
  #     --retry 3 \
  #     --retry-delay 5 \
  #     --max-time 30 \
  #     -o /dev/null
  #   '';
  # };
}