Commit graph

202 commits

Author SHA1 Message Date
ibizaman
67c2705f98 add mitmdump block 2025-07-31 23:21:57 +02:00
ibizaman
91580421be add playwright test with ldap for forgejo 2025-07-24 23:12:33 +02:00
ibizaman
12f2b4f49e update lldap patches 2025-07-24 20:41:12 +02:00
ibizaman
b50f45e17e add declarative lldap using secrets contract 2025-07-18 23:51:27 +02:00
ibizaman
41d037206d add documentation for lldap and authelia blocks 2025-07-12 22:50:41 +02:00
ibizaman
13f4064e93 rename ldap block to lldap 2025-07-12 21:47:55 +02:00
ibizaman
9af3f2b942 add extra config param for nginx 2025-06-23 23:40:14 +02:00
Piotr Gaczkowski
d9a149eca2 Fix Grafana SMTP from_name 2025-06-04 00:54:57 +02:00
Eric Ahlberg
95a4f7987e Fix typo in monitoring docs 2025-03-24 21:45:38 +01:00
ibizaman
cf944bee37 add assertion to avoid issue with authelia and ldap 2025-03-17 23:07:21 +01:00
ibizaman
4d1e3930c0 remove support for old postgresql version 2025-01-03 00:40:40 +01:00
ibizaman
2d63ef8e19 enable php-fpm exporter only when needed 2025-01-02 19:17:23 +01:00
ibizaman
16f305b9f4 add alert when certs are close to expiring 2024-12-27 22:54:45 +01:00
ibizaman
0ef061f4d6 add nextcloud dashboard 2024-12-25 13:05:59 +01:00
ibizaman
a784c08761 add domain and hostname labels 2024-12-25 13:05:59 +01:00
Pierre Penninckx
2f4bbdd061
improve documentation (#392)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-12-05 22:37:45 +00:00
Pierre Penninckx
ab86c6e133
add dashboard for deluge (#389)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-12-02 22:02:04 +00:00
Pierre Penninckx
bab4b251eb
add default needed for one way backup contracts (#381)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-11-26 22:32:49 +00:00
Pierre Penninckx
3e63cb2e12
switch databasebackup contract to new contract style (#372)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-11-26 20:07:36 +00:00
Pierre Penninckx
47dffd2a2f
switch backup contract to new contract style (#367)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-11-26 19:59:07 +00:00
Pierre Penninckx
ba1e60a45e
rename backup hook attributes (#371)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-11-26 19:15:36 +00:00
Pierre Penninckx
b3e7552b88
[doc] add forgotten example in sops module documentation (#366) 2024-11-23 21:56:22 +00:00
Pierre Penninckx
b80c840743
have actual implementation for sops secrets (#363) 2024-11-22 23:24:47 +00:00
Pierre Penninckx
5056d203d9
update secret contract and add sops module (#356)
I find these `mkProvider` and `mkRequester` functions really nice.

Also fixes doc generation related to  https://github.com/NixOS/nixpkgs/pull/353513
2024-11-21 12:51:57 -08:00
Pierre Penninckx
a04dca9973
use secrets contract for restic (#349) 2024-11-17 21:12:14 +00:00
Pierre Penninckx
4726593ea9
Do not use activation script for script with dependencies (#348)
The issue with activation script is the order is alphabetical, meaning
the order the script is assembled is not really set in stone.

Here, because the script had a name starting with `restic`, it was ran
before the `sops` secret generation script. And since the restic script
was trying to use the secrets, it failed.

And if the activation script fails, you get a kernel panic.
2024-11-15 21:05:01 +00:00
Pierre Penninckx
431dd058c5
Backup contracts for files and databases (#344)
This PR continues the work started in
https://github.com/ibizaman/selfhostblocks/pull/314

I had to create my own PR since I couldn't add commits on the fork.

---------

Co-authored-by: sivertism <10866270+sivertism@users.noreply.github.com>
2024-11-12 20:40:52 +00:00
ibizaman
a589a9fe00 add contract test for secret contract 2024-10-24 22:27:47 +02:00
ibizaman
b85705ab74 switch authelia to new secrets contract 2024-10-24 22:27:47 +02:00
ibizaman
fa87855ee5 switch jellyfin to new secrets contract
This rabbit hole of a task lead me to:
- Introduce a hardcoded secret module that is a secret provider
  for tests.
- Update LDAP and SSO modules to use the secret contract.
- Refactor the replaceSecrets library function to correctly fail
  when a secret file could not be read.
2024-10-24 22:27:47 +02:00
Pierre Penninckx
b405988e60
fix lldap backup (#323)
closes #319
2024-10-24 21:21:01 +02:00
Pierre Penninckx
5a0ae36c85
update secret contract (#311)
This makes the secret contract better (IMNSHO):

- Improves documentation, explains better the reasoning behind the
contract.
- Makes it easier to create an option implementing the secret contract.
2024-10-01 21:01:00 +00:00
ibizaman
f75a01ee2c revert hotfix for vpn 2024-09-22 00:36:54 -07:00
ibizaman
a262940a81 fix let's encrypt ssl block for host verification 2024-09-21 23:59:10 -07:00
ibizaman
7610097a74 add secret contract and use it in ldap block 2024-09-21 23:57:19 -07:00
ibizaman
f8edf51207 fix issue with openvpn extraArgs after update 2024-09-13 20:40:35 -07:00
ibizaman
253ec980d9 add forgejo service 2024-09-12 13:10:20 -07:00
ibizaman
adbeef3289 reduce alerting time for 5XX error
It's alerting for too long, even after it recovered.
We'll probably need to something more appropriate than an error budget but it'll do for now.
2024-09-07 11:06:36 -07:00
ibizaman
ff5a13c6ce fix davfs gid 2024-09-03 09:37:16 -07:00
Pierre Penninckx
e5b76e4183
Revert: make sure fox nginx to wait on authelia (#293)
This was not the root cause of Nginx not starting.
The root cause was the DNS server was restarting at the same time as
Nginx and wasn't ready yet.
There is no DNS block yet in Self Host Blocks so the code is removed for
now.
2024-09-02 06:56:02 +00:00
Pierre Penninckx
84e4893665
Make sure fox nginx to wait on authelia (#292) 2024-09-02 06:51:06 +00:00
Pierre Penninckx
04a3a06730
Switch to not deprecated mkPackageOption (#288) 2024-09-02 01:17:38 +00:00
Pierre Penninckx
d711e59f91
Wait actively on ldap being ready (#286)
Looks like this is needed in the end, other we get into some flaky
situations
2024-09-01 06:36:53 +00:00
Pierre Penninckx
eb791b3019
flake.lock: Update (#244)
Automated changes by the
[update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock)
GitHub Action.

```
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9ca3f649614213b2aaf5f1e16ec06952fe4c2632?narHash=sha256-7EXDb5WBw%2Bd004Agt%2BJHC/Oyh/KTUglOaQ4MNjBbo5w%3D' (2024-05-27)
  → 'github:nixos/nixpkgs/71e91c409d1e654808b2621f28a327acfdad8dc2?narHash=sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w%3D' (2024-08-28)
```

### Running GitHub Actions on this PR

GitHub Actions will not run workflows on pull requests which are opened
by a GitHub Action.

To run GitHub Actions workflows on this PR, run:

```sh
git branch -D update_flake_lock_action
git fetch origin
git checkout update_flake_lock_action
git commit --amend --no-edit
git push origin update_flake_lock_action --force
```

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-31 07:57:21 +00:00
Pierre Penninckx
1774b61cfe
Make backup cli tool correctly use secrets (#284) 2024-08-29 07:12:45 +00:00
ibizaman
e6c56891e1 still enable rollback tool even for disabled restic instances 2024-08-25 13:07:21 -07:00
ibizaman
a753254c0e add option restic backup args to limit bandwidth usage 2024-08-25 09:21:14 -07:00
Pierre Penninckx
f8fdf2f704
more fixes to the backup contract (#281)
This PR irons out the last issues with the backup contract and the
Restic implementation.
I could check it works backing up files to a local folder and to
Backblaze on my server.
2024-08-24 05:37:18 +00:00
Pierre Penninckx
10dea06ec1
Fix backup contract secrets (#280) 2024-08-22 19:48:36 +00:00
Pierre Penninckx
0fa4a42be7
switch all modules to backup block (#279) 2024-08-20 14:33:13 +00:00
ibizaman
6aed5ee6a5 add backup contract 2024-08-20 00:33:26 -07:00
ibizaman
6235b2f414 always restart postgresql service
For example, it can be killed by systemd-oom but it's such a foundational service that we should
always restart it.
2024-08-13 03:45:05 +02:00
ibizaman
896c376b6d add mount contract to authelia block 2024-08-12 06:51:24 -07:00
ibizaman
01eb07a6d2 add mount contract to ldap block 2024-08-12 06:51:24 -07:00
ibizaman
56c06b4404 add mount contract implemented by zfs 2024-08-12 06:51:24 -07:00
ibizaman
13ba38a993 do not set serverAliases for dns
Otherwise, those server aliases take precedence over actual virtual hosts that serve those subdomain.
2024-08-11 14:59:31 -07:00
ibizaman
6b17ff858e add host provider for ssl letsencrypt block 2024-08-10 19:51:46 -07:00
ibizaman
8ebb3af1f0 rename autheliaProtect to vhosts 2024-05-27 17:13:05 -07:00
ibizaman
7020786c41 add default dummy oidc authelia client to satisfy authelia 2024-05-27 17:13:05 -07:00
ibizaman
8ec12338fd make config with secrets correctly generated 2024-05-27 17:13:05 -07:00
Pierre Penninckx
dc46ec8eda
Fix prometheus exporter not accessing nvme hard drives (#238) 2024-05-13 09:00:38 -07:00
Pierre Penninckx
222dfa755c
Revert to loki v2 (#230)
This is needed because v3 requires manual intervention to upgrade
otherwise Loki refuses to start. So until there's a fix, reverting is
the easiest fix.
2024-04-21 23:07:32 -07:00
Pierre Penninckx
43f19a871a
add contract documentation (#225) 2024-04-14 15:21:20 -07:00
Pierre Penninckx
26f406db5f
fix arr setup (#224) 2024-04-10 23:52:24 -07:00
Pierre Penninckx
c488bb5bda
Add scripts to update postgresql (#219) 2024-04-02 22:17:29 -07:00
Pierre Penninckx
589e2c936f
add tests for arr services and some more options (#205) 2024-03-13 05:40:32 +00:00
ibizaman
fa206d0e15 move templating code to lib file 2024-02-29 20:30:47 -08:00
ibizaman
059bfea86a move template function into lib 2024-02-09 21:20:13 -08:00
ibizaman
f56f997307 remove dependency of vpn.nix on sops-nix
part of #24
2024-02-07 22:57:58 -08:00
ibizaman
e00a41b086 add group and reloadServices options to ssl block 2024-01-24 22:45:51 -08:00
ibizaman
0bfa15fd3c add extraDomains options for cert generation
fixes #133
2024-01-24 18:46:42 -08:00
ibizaman
1cf6d264e4 add declarative sso integration for nextcloud 2024-01-22 16:44:10 -08:00
sivert
8a5f4e3bf2 Combine authelia client YAML's into one YAML file
- Fixes #126
  - Generate a single oidc_clients.yaml to define all clients
  - `public` property of OIDC clients is now a bool (as it should be), not a string.
  - sed pattern changed to allow multiple replacements
2024-01-22 13:50:11 -08:00
ibizaman
7e2f76e7f9 improve ssl block 2024-01-20 20:19:44 -08:00
ibizaman
adc09acc49 use contract for ssl block 2024-01-19 10:48:10 -08:00
ibizaman
0a34140e34 add nextcloud integration with ldap to the manual and nextcloud demo.
refs #17
2024-01-06 09:48:12 -08:00
ibizaman
7a62b5b89c add usage chapter in the manual 2023-12-25 23:26:50 -08:00
ibizaman
d908ae31c5 add nextcloud manual 2023-12-25 00:51:44 -08:00
ibizaman
9bcf7650e7 update screenshots 2023-12-17 23:31:33 -08:00
ibizaman
6f71d64257 switch to netdata to pull most of the metrics 2023-12-17 23:31:33 -08:00
ibizaman
036d2b92a5 fix grafana not being able to load dashboards 2023-12-17 23:31:33 -08:00
ibizaman
9a5a10a824 add test for authelia 2023-12-11 00:28:30 -08:00
ibizaman
ca2f7039cc add some sections to block backup chapter 2023-12-08 22:48:06 -08:00
ibizaman
11ab7c5ab5 fix missing headers 2023-12-08 11:52:00 -08:00
ibizaman
49913ca4b6 add manual page for configuring backups 2023-12-08 11:52:00 -08:00
ibizaman
3c9f71da0e allow to stagger backup jobs 2023-12-08 11:13:37 -08:00
ibizaman
c2ac071c72 enable setting performance impact of backup jobs 2023-12-08 11:13:37 -08:00
ibizaman
207b2e44cb split backup configuration into smaller chunks 2023-12-08 11:13:37 -08:00
ibizaman
f417372fdc move monitoring docs close to source 2023-12-08 10:41:15 -08:00
Pierre Penninckx
a63b0a6e2e
switch to nixos-render-docs (#34)
fixes #33
2023-12-04 00:33:16 -08:00
ibizaman
0242ae26c4 fix ensure clauses in postgresql
fixes #35
2023-12-04 00:29:40 -08:00
Pierre Penninckx
0014e5c2f7
avoid some impossible states in authelia and nginx 2023-11-30 22:49:34 -08:00
Pierre Penninckx
76e27ae7eb
add nixos test for ldap 2023-11-30 22:08:38 -08:00
Pierre Penninckx
0ae7220c06
rename oidcEndpoint option to authEndpoint 2023-11-30 12:48:57 -08:00
Pierre Penninckx
54ce26efce
some docs revamps 2023-11-30 12:06:41 -08:00
Pierre Penninckx
4a8a7d686c
build docs and deploy to github pages 2023-11-30 10:38:35 -08:00
Pierre Penninckx
86e86dc787
remove usage of sops file in ssl.nix 2023-11-29 22:20:21 -08:00
Pierre Penninckx
7d9dedb845
provision grafana datasources and some dashboards (#23)
fixes #22 

This commit introduces:
- A few more optional options for the monitoring module, in particular
an SMTP option to setup sending alerts with an STMP server.
- 2 required options for adding a secure key for signing and for an
initial admin password. The latter is nice because at least you can
choose securely the initial admin password instead of it being just
"admin", adding a bit more security to the install process.
- Provisioning Grafana with dashboards, datasources, alerts, contact
points and notification policies.
- Documentation for monitoring in
[docs/blocks/monitoring.md](docs/blocks/monitoring.md).
- A NixOS test that makes sure provisioning did go well as expected.
2023-11-26 09:56:08 -08:00
ibizaman
881af5f111 add more collectors to prometheus node exporter 2023-11-24 20:18:12 -08:00
ibizaman
845017103f automatically cleanup idle connections
This is to fix a nextcloud bug that leaves idle connections open which eats into the available
postgres connection pool.
2023-11-24 02:16:49 -08:00
Pierre Penninckx
52b9233a6c
add postgresql vm test that runs in CI (#19)
Fixes #14 

The tests actually showed a flaw in the implementation, we needed
"password" and not "trust" in the auth file.

Also, having the port defined at the same time as enabling listening for
TCP/IP connection made no sense.
2023-11-23 01:03:33 -08:00
Pierre Penninckx
eae5eade56
distinguish building blocks and provided services
I want to show how composable this project is. For example, you could
just use the Authelia module to add SSO to any service, not just those
provided here.
2023-11-20 22:20:19 -08:00