Commit graph

237 commits

Author SHA1 Message Date
Pierre Penninckx
34c4b75871
add test for all modules using backup contract (#383)
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
2024-11-28 21:17:14 +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
9ecbbde35a
Update remaining services to secret contract (#358) 2024-11-21 13:45:35 -08: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
442c948a1a
more contracts usage in Nextcloud and docs enhancement (#345) 2024-11-13 21:43:12 +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
52fc7e29a9 fix tests in lib 2024-10-24 22:27:47 +02:00
ibizaman
a589a9fe00 add contract test for secret contract 2024-10-24 22:27:47 +02:00
ibizaman
9d81a72d51 use hardcodedsecret in restic test 2024-10-24 22:27:47 +02:00
ibizaman
b134abeb6d switch forgejo to new secrets 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
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
253ec980d9 add forgejo service 2024-09-12 13:10:20 -07: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
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
9d0b56c6b8 add wip vaultwarden test to check auth 2024-08-14 21:03:02 -07:00
ibizaman
b64c1bf982 do not assume any formatting in curl function for tests 2024-08-14 20:21:32 -07:00
ibizaman
4c4b0c2e61 print curl command in tests 2024-08-14 20:21:32 -07:00
ibizaman
b466ca4346 make extraScript appear as its own subtest 2024-08-14 20:21:32 -07:00
ibizaman
8d68b3b411 fix tests after always restarting postgresql service 2024-08-14 20:19:52 -07:00
ibizaman
9cae26d23f add sso tests to arr suite 2024-07-16 11:41:31 +02:00
ibizaman
9a2e4b7603 split tests between blocks and services 2024-07-16 11:23:21 +02:00
ibizaman
0f2f69f7a1 refactor tests to use common blocks 2024-07-16 10:53:29 +02:00
ibizaman
1b4247233b refactor common test script 2024-07-12 19:01:41 +02:00
ibizaman
a4c4ee1670 add prometheus deluge exporter 2024-06-09 23:47:31 -07:00
ibizaman
848083dacc break authFile for deluge into user and password attrset 2024-06-09 23:43:46 -07:00
ibizaman
d0d9010a30 refactor grocy tests 2024-06-09 23:41:24 -07:00
ibizaman
bcd844f7cc commonalize monitoring tests 2024-06-09 23:28:09 -07:00
ibizaman
f7469cf096 commonalize grocy tests 2024-06-06 23:02:07 -07:00
ibizaman
30be3d1262 commonalize audiobookshelf tests 2024-06-06 22:57:31 -07:00
ibizaman
121371716b commonalize nextcloud tests 2024-06-06 22:48:04 -07:00
ibizaman
c34a2f4c58 wait for nextcloud-cron to finish in test 2024-05-29 15:26:04 -07:00
ibizaman
cae83153c8 fix arr test 2024-05-27 17:13:05 -07:00
ibizaman
ebbd19c7fd add vm test for home-assistant 2024-05-27 17:13:05 -07:00
ibizaman
97285e1833 add vm test for vaultwarden 2024-05-27 17:13:05 -07:00
ibizaman
8ebb3af1f0 rename autheliaProtect to vhosts 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
425e511792
flake.lock: Update (#226)
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/b06025f1533a1e07b6db3e75151caa155d1c7eb3?narHash=sha256-qrxvLS888pNJFwJdK%2Bhf1wpRCSQcqA6W5%2BOx202NDa0%3D' (2024-03-19)
  → 'github:nixos/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8?narHash=sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U%2BISA%3D' (2024-04-16)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/83b68a0e8c94b72cdd0a6e547a14ca7eb1c03616?narHash=sha256-RquCuzxfy4Nr8DPbdp3D/AsbYep21JgQzG8aMH9jJ4A%3D' (2024-03-17)
  → 'github:Mic92/sops-nix/cc535d07cbcdd562bcca418e475c7b1959cefa4b?narHash=sha256-APoDs2GtzVrsE%2BZ9w72qpHzEtEDfuinWcNTN7zhwLxg%3D' (2024-04-15)
• Updated input 'sops-nix/nixpkgs':
    'github:NixOS/nixpkgs/9af9c1c87ed3e3ed271934cb896e0cdd33dae212?narHash=sha256-huQT4Xs0y4EeFKn2BTBVYgEwJSv8SDlm82uWgMnCMmI%3D' (2024-03-15)
  → 'github:NixOS/nixpkgs/a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9?narHash=sha256-icE1IJE9fHcbDfJ0%2BqWoDdcBXUoZCcIJxME4lMHwvSM%3D' (2024-04-12)
• Updated input 'sops-nix/nixpkgs-stable':
    'github:NixOS/nixpkgs/6dc11d9859d6a18ab0c5e5829a5b8e4810658de3?narHash=sha256-y%2Bl3eH53UlENaYa1lmnCBHusZb1kxBEFd2/c7lDsGpw%3D' (2024-03-16)
  → 'github:NixOS/nixpkgs/c27f3b6d8e29346af16eecc0e9d54b1071eae27e?narHash=sha256-RifMwYuKu5v6x6O65msKDTqKkQ9crGwOB7yr20qMEuE%3D' (2024-04-13)
```

### 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-04-17 16:06:29 -07:00
Pierre Penninckx
26f406db5f
fix arr setup (#224) 2024-04-10 23:52:24 -07:00
Pierre Penninckx
5179f7fc90
Add external storage app to Nextcloud (#222) 2024-04-08 22:41:52 -07:00
Pierre Penninckx
c488bb5bda
Add scripts to update postgresql (#219) 2024-04-02 22:17:29 -07:00
Pierre Penninckx
c75daa23c0
move CI to garnix (#210) 2024-03-19 22:50:41 -07:00
Pierre Penninckx
589e2c936f
add tests for arr services and some more options (#205) 2024-03-13 05:40:32 +00:00
Pierre Penninckx
77de1bb168
refactor vm tests to have common test script (#202) 2024-03-04 20:36:47 -08:00
Pierre Penninckx
8b44d8098b
Add more vm tests to nextcloud (#200) 2024-03-04 07:01:05 +00:00
Sivert Sliper
64f9c051b9
Grocy service (#195)
PR to add grocy as a service.

I think LDAP should be [relatively
simple](https://www.reddit.com/r/grocy/comments/18avtb7/sso_tutorial/)
to add, but couldn't find good information on SSO.

Will test this out for a while to make sure it really works before this
can be merged.

---------

Co-authored-by: ibizaman <ibizapeanut@gmail.com>
Co-authored-by: Pierre Penninckx <github@pierre.tiserbox.com>
2024-03-04 01:25:26 +00:00
Sivert Sliper
ee68e27f15
Audiobookshelf service (#123)
Hi,

I tried adding [Audiobookshelf](https://www.audiobookshelf.org/) as a
new service to SHB.

Not sure whether you want this service in SHB at all, but thought I'd
create a PR just in case.

The service runs, but seemingly fails to add an entry to the nginx
config, so it is not reachable. I created the service by basically just
copying deluge and then adapting. Any idea why the nginx subdomain isn't
being created?

The config I used to add this to my SHB server is:

```nix
shb.audiobookshelf = {
  enable = true;
  domain = "sliper.xyz";
  subdomain = "abs";
  dataDir = "audiobookshelf"; #turns out this is actually the working dir of the service (/var/lib/<dataDir>)
  authEndpoint = "https://auth.sliper.xyz";
};
 // ... in shb.authelia.oidcClients
redirect_uris = [ "https://deluge.sliper.xyz" "https://abs.sliper.xyz" ];
```

ps. I also need to fix tabs->spaces. Forgot to set up nvim.

---------

Co-authored-by: sivert <nei@nei.nei>
Co-authored-by: ibizaman <ibizapeanut@gmail.com>
Co-authored-by: Pierre Penninckx <github@pierre.tiserbox.com>
2024-03-04 01:01:00 +00:00
ibizaman
e80cc0d3aa add vm tests for jellyfin and regroup ldap and sso options 2024-03-02 23:03:49 -08:00
ibizaman
fa206d0e15 move templating code to lib file 2024-02-29 20:30:47 -08:00
ibizaman
7d0276e9f2 fix some deprecated options 2024-02-07 22:33:25 -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
fdf4f54ef3 make authelia test validate clients exists 2024-01-23 22:14:13 -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
0e635e1a76 add nextcloud vm test 2023-12-30 10:01:41 -08:00
ibizaman
9a5a10a824 add test for authelia 2023-12-11 00:28:30 -08:00
ibizaman
0242ae26c4 fix ensure clauses in postgresql
fixes #35
2023-12-04 00:29:40 -08:00
ibizaman
13a90f1ad4 avoid testing nix store path hash which makes tests brittle 2023-12-04 00:27:30 -08:00
ibizaman
5f4ea7acfb wait for open port in all tests to reduce flakiness 2023-12-04 00:18:19 -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
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
aa3448cb1f fix postgres module tests 2023-11-24 18:19:22 -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
ibizaman
39c2c943a1 fix backupCfg option for arr module 2023-11-16 23:55:38 -08:00
ibizaman
7e5a447257 fix tests 2023-11-16 23:55:38 -08:00
ibizaman
af71513dcf add more tests to be able to import shb with default config 2023-11-08 12:27:47 -08:00
ibizaman
9a758fb86e remove need for intermediary file 2023-11-07 20:26:34 -08:00
ibizaman
77e16c0f76 fix conflicting options in postgresql service 2023-11-05 15:47:13 -08:00
ibizaman
685133ba47 fix postgresql password script when multiple users 2023-11-05 15:42:59 -08:00
ibizaman
a05f9d6942 use correct postgresql option 2023-11-05 04:48:39 -08:00
ibizaman
40522c8540 allow no password for postgresql 2023-11-05 04:44:56 -08:00
ibizaman
cc57b1ced7 add postgresql module with tests 2023-11-05 04:44:56 -08:00