Commit graph

929 commits

Author SHA1 Message Date
Linus Heckemann 8670794565
Merge pull request #263203 from nikstur/replace-activation
Replace simple activationScripts
2023-10-28 10:17:15 +02:00
Artturi 61f2bd3178
Merge pull request #254386 from erikarvstedt/nginx-js-mime-type 2023-10-27 23:32:20 +03:00
nikstur d5a96d508b nixos/stargazer: replace activationScript via tmpfiles 2023-10-26 01:44:21 +02:00
Charles Hall f5dcc015b9
nixos/garage: set StateDirectory if used at all
Changes the `mkIf` to trigger if *either* `data_dir`/`metadata_dir` use
`/var/lib/garage`, not only if both do. This is useful to me because I
want to store metadata in `/var/lib/garage` but I also want to store
data in a different mountpoint (via `data_dir` and `ReadWritePaths`).
2023-10-24 22:03:21 -07:00
Sandro f4d631c3d1
nixos/nginx: document implicit default port 80 2023-10-22 21:32:50 +02:00
Ryan Lahfa c5442c247f
Merge pull request #257262 from dongcarl/2023-09-nginx-fixes
nixos/nginx: Allow empty port for listen directive (for unix socket)
2023-10-21 17:26:57 +01:00
Bjørn Forsman 142074c2a8 nixos: fix bad mkEnableOption descriptions
Fix descriptions that don't account for (1) the "Whether to enable"
prefix or (2) the automatically added trailing dot.
2023-10-20 16:22:40 +01:00
Bjørn Forsman cc7791cfd9 nixos/lighttpd: add reload support
Allow reloading the webserver, which is useful when e.g there are new
certificates available that we want lighttpd to use, but don't want to
completely shut down the server.
2023-10-19 19:23:04 +02:00
Florian Klink 770d1c5bcd nixos/garage: drop default package
This gives better control over what package of garage is running, and
makes upgrades a conscious decision.
2023-10-18 19:20:03 +02:00
Florian Klink 5b80b755aa nixos/garage: nixpkgs-fmt 2023-10-18 19:20:03 +02:00
Carl Dong e5c2c71280 nixos/nginx: Allow empty port for listen directive
When listening on unix sockets, it doesn't make sense to specify a port
for nginx's listen directive.

Since nginx defaults to port 80 when the port isn't specified (but the
address is), we can change the default for the option to null as well
without changing any behaviour.
2023-10-09 21:16:03 -04:00
Marek Beyer ea1eb4ee0f
nixos/nginx: add systemd-tmpfiles exclusion of temporary directories
Directories used by nginx in the tmp path are only created upon startup and
must not be deleted while nginx is running.
2023-10-06 14:26:37 +02:00
Ryan Lahfa c22ca8e820
Merge pull request #254440 from Izorkin/add-nginx-bpf 2023-09-27 18:53:43 +02:00
Ryan Lahfa 0fa52bd973
Merge pull request #257043 from Tom-Hubrecht/garage-envfile 2023-09-24 17:07:21 +02:00
Tom Hubrecht 2d38d9edc0 nixos/garage: Add an environmentFile option
Since garage 0.8.2, garage accepts environment variables for passing secrets,
e.g. `GARAGE_RPC_SECRET` or `GARAGE_ADMIN_TOKEN`. The added `environmentFile`
allows those secrets to not be present in the nix store.
2023-09-24 14:47:05 +02:00
Izorkin 64fe8c9292
nixos/nginx: allow enabling QUIC packet routing using eBPF 2023-09-19 16:16:34 +03:00
emilylange fcdcccaed6
nixos/caddy: ensure vhosts come after user-specified cfg.extraConfig
This solves an issue, where loading the nixos-unstable module in
nixos-stable using `disabledModules` and `imports` resulted in the
following Caddyfile:

```
<globalConfig>

<vhosts>

<extraConfig>
```

instead of

```
<globalConfig>

<extraConfig>

<vhosts>
```

This is important in cases where `cfg.extraConfig` contains so called
Caddyfile snippets.

See https://caddyserver.com/docs/caddyfile/concepts#structure

Co-authored-by: Lin Jian <me@linj.tech>
2023-09-18 11:12:19 +02:00
Erik Arvstedt 7ce5fa1a82
nixos/nginx: add application/javascript to compressMimeTypes
Although deprecated, this MIME type is still used by various
applications and web frameworks which are potentially proxied by nginx.

Examples:
- Apps based on ASP.NET Core
- Apps based on http.server (Python)
2023-09-10 13:56:23 +02:00
Sandro c6af5494aa
nixos/nginx: fix services.nginx.defaultListen description 2023-09-03 16:45:10 +02:00
Emily 73a060e7ca
Merge pull request #244626 from Sohalt/caddy-rfc42
nixos/caddy: Add rfc42 settings option
2023-08-23 20:36:46 +02:00
sohalt c01874615b nixos/caddy: Add rfc42 settings option 2023-08-22 20:14:35 +02:00
happysalada 4022b2733a nixos/rustus: add user name to enable restoring of backups 2023-08-13 12:59:20 +01:00
Franz Pletz cb6dd866f2
Merge pull request #241338 from bachp/minio-distributed 2023-08-11 05:33:44 +02:00
Izorkin cf7cea3287
nixos/nginx: using new variant of http2 directive 2023-08-03 07:09:02 +03:00
Ryan Lahfa 899b60de3f
Merge pull request #245893 from h7x4/move-nginx-status-page-declaration 2023-07-29 20:22:58 +02:00
h7x4 d803f78e7c
nixos/nginx: move status page config to services.nginx 2023-07-28 20:29:09 +02:00
oddlama cbdaab0f17
nixos/nginx: remove unnecessary acme locations to allow double proxied setups 2023-07-27 15:30:38 +02:00
Felix Bühler 0a2745684e
Merge pull request #239624 from Stunkymonkey/use-optionalString-then
treewide: use optionalString instead of 'then ""'
2023-07-22 13:02:47 +02:00
Sylvain Fankhauser 27b7132e81
nixos/caddy: remove admin check
Since it introduces IFD.
2023-07-04 11:25:08 +02:00
Sylvain Fankhauser 1f0ac736b4
nixos/caddy: add support for reload 2023-07-04 11:25:05 +02:00
Pascal Bach fc478ad9ff nixos/minio: allow distributed nodes 2023-07-03 21:51:02 +02:00
Mac Chaffee 61cb4170fd
nixos/static-web-server: create module which uses upstream systemd units
This commit creates a nixos module for static-web-server.
The module uses upstream systemd units to start static-web-server.
It also includes options for configuring static-web-server.
2023-07-01 12:51:13 -04:00
Sandro Jäckel 0000004f80
nixos/ttyd: fix example rendering 2023-06-30 18:14:37 +02:00
happysalada 8db05aa52f nixos/rustus: inital module 2023-06-25 04:26:53 +08:00
Felix Buehler f3719756b5 treewide: use optionalString instead of 'then ""' 2023-06-24 20:19:19 +02:00
Sandro 996d7cabba
Merge pull request #225877 from jappeace/upgrade-keter-2.1
nixos/keter: 2.0 -> 2.1
2023-06-22 20:00:22 +02:00
Sandro 45539f8552
nixos/keter: fix port type 2023-06-21 18:23:47 +02:00
Jappie Klooster 5c4ae23ec0 nixos/keter: Run nixpkgs-fmt 2023-06-14 11:56:35 -04:00
Jappie Klooster 3f2f5bea96 nixos/keter: 2.0 -> 2.1
keter 2.1 now can log to stderr instead of file rotation.
Which is faster and more reliable.
These changes support that.

Announcement:
https://discourse.haskell.org/t/keter-2-1-0-released/6134

fix test by disabling log rotation

run nixpkgs fmt

move comment right before L37

run nixpkgs format on test

Add overridable default configuration

depracate keterRoot and use root, same for package

split doc lines

use lib.getExe to get keter binary

put mkRenamedOptionModule on one line
2023-06-14 11:54:03 -04:00
IndeedNotJames 93b9fc8ac0
nixos/caddy: omit empty bind directive when listenAddresses is empty
context: https://caddy.community/t/random-502-errors-when-proxying-to-application-with-self-signed-certificate/19657/6
2023-06-10 13:59:15 +02:00
IndeedNotJames 3f93ec5814
nixos/caddy: change acmeCA default to null
The nixos/caddy module is somewhat old by now
and has undergone quite some refactors.
This specific module option (originally named
`ca`) used to make a bit more sense when
Caddy did not have multiple ACME CAs as
fallback (LE & ZeroSSL) by configured by
default yet (ZeroSSL came with v2.3.0).

I also rephrased the description slightly,
to mention Caddy's automatic issuer fallback
and a note which this option maps to in the
Caddyfile, to provide a bit more context and
a more up-to-date recommendation.

Specifically that "fine-grained configuration"
section comes from a time when this module did
some custom tls/issuer config json merging
with the templated Caddyfile using `jq`.

The "The URL to the ACME CA's directory"
section is a word-for-word copy from the
official Caddy docs, which also include a link
to LE's docs to the referenced staging
endpoint. So I added that as well.
2023-06-10 13:59:10 +02:00
Joe Edmonds f87892b50b nixos/modules/web-servers/nginx/default.nix: fix minor typo 2023-06-06 21:55:15 -07:00
Sandro 793dd34507
Merge pull request #219602 from 999eagle/traefik-envsubst
nixos/traefik: add environmentFiles option
2023-06-05 00:36:43 +02:00
Linus Heckemann c4f727c944 nixos/garage: allow unsafe replication modes, restart on config change 2023-06-02 18:11:44 +02:00
Raito Bezarius 69bb0f94de nixos/nginx: first-class PROXY protocol support
PROXY protocol is a convenient way to carry information about the
originating address/port of a TCP connection across multiple layers of
proxies/NAT, etc.

Currently, it is possible to make use of it in NGINX's NixOS module, but
is painful when we want to enable it "globally".
Technically, this is achieved by reworking the defaultListen options and
the objective is to have a coherent way to specify default listeners in
the current API design.
See `mkDefaultListenVhost` and `defaultListen` for the details.

It adds a safeguard against running a NGINX with no HTTP listeners (e.g.
only PROXY listeners) while asking for ACME certificates over HTTP-01.

An interesting usecase of PROXY protocol is to enable seamless IPv4 to
IPv6 proxy with origin IPv4 address for IPv6-only NGINX servers, it is
demonstrated how to achieve this in the tests, using sniproxy.

Finally, the tests covers:

- NGINX `defaultListen` mechanisms are not broken by these changes;
- NGINX PROXY protocol listeners are working in a final usecase
  (sniproxy);
- uses snakeoil TLS certs from ACME setup with wildcard certificates;

In the future, it is desirable to spoof-attack NGINX in this scenario to
ascertain that `set_real_ip_from` and all the layers are working as
intended and preventing any user from setting their origin IP address to
any arbitrary, opening up the NixOS module to bad™ vulnerabilities.

For now, it is quite hard to achieve while being minimalistic about the
tests dependencies.
2023-05-26 19:48:26 +02:00
figsoda 701bcdbead nixos: fix typos 2023-05-19 22:31:04 -04:00
Robert Hensing 25f227fc67
Merge pull request #231316 from hercules-ci/nixos-system.checks
NixOS: add `system.checks`
2023-05-15 23:16:29 +02:00
Izorkin baa5550162
unit: 1.29.1 -> 1.30.0 2023-05-13 16:55:47 +03:00
Robert Hensing 2e2f0d28ea nixos: Use checks instead of extraDependencies
... as appropriate.

This drops a few unnecessary store paths from the system closure.
2023-05-11 21:18:38 +02:00
Izorkin 2809915f19
nixos/nginx: allow arbitrary parameters in upstream servers
Adds a `freeformType` to `services.nginx.upstreams.<name>.servers` to
allow setting arbitrary parameters.
2023-05-07 11:17:49 +02:00