Summary Files Commits Branches @commit @diff @stats
path: root / modules / server
diff options
context:
space:
mode:
Commit5f5f3cc1377ac45ad5193e77fbe465f96603a0a4 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-07-01 18:28:13 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-07-01 18:28:13 +0300
Files549de89a53592be81492df2a871ed82ec4a31fa2 /modules/server
nix-5f5f3cc1377ac45ad5193e77fbe465f96603a0a4.tar
nix-5f5f3cc1377ac45ad5193e77fbe465f96603a0a4.tar.gz
nix-5f5f3cc1377ac45ad5193e77fbe465f96603a0a4.zip
Parentf3c1a99581927439118961cb4150e8982a92543d (diff)
feat(modules/server): Add minimal dnsmasq and httpd modules
2 files changed, 50 insertions, 0 deletions
-rw-r--r--modules/server/dnsmasq.nix19
-rw-r--r--modules/server/httpd.nix31
diff --git a/modules/server/dnsmasq.nix b/modules/server/dnsmasq.nix
new file mode 100644
index 0000000..4461e4f
--- /dev/null
+++ b/modules/server/dnsmasq.nix
@@ -0,0 +1,19 @@
+{
+ networking.firewall = {
+ allowedTCPPorts = [ 53 ];
+ allowedUDPPorts = [ 53 ];
+ };
+ services.dnsmasq = {
+ enable = true;
+ alwaysKeepRunning = true;
+ settings = {
+ addn-hosts = "/etc/hosts";
+ server = [
+ "1.1.1.1"
+ "1.0.0.1"
+ "8.8.8.8"
+ "8.8.4.4"
+ ];
+ };
+ };
+}
diff --git a/modules/server/httpd.nix b/modules/server/httpd.nix
new file mode 100644
index 0000000..b05207a
--- /dev/null
+++ b/modules/server/httpd.nix
@@ -0,0 +1,31 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ apacheHttpd
+ ];
+
+ networking.firewall = {
+ allowedTCPPorts = [ 80 443 ];
+ allowedUDPPorts = [ 80 443 ];
+ };
+
+ services.httpd = {
+ enable = true;
+ extraModules = [ "ssl" ];
+ virtualHosts = {
+ "00000_http.com" = {
+ listen = [ { port = 80; } ];
+ documentRoot = "/var/www/default";
+ };
+ "00000_https.com" = {
+ onlySSL = true;
+ extraConfig = ''
+ RewriteEngine On
+ RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,QSA]
+ '';
+ # Thanks https://discourse.nixos.org/t/where-can-i-get-snakeoil-certificates/14628/4
+ sslServerCert = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.cert.pem";
+ sslServerKey = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.key.pem";
+ };
+ };
+ };
+}