1
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-24 18:16:21 +03:00
Commit graph

66 commits

Author SHA1 Message Date
hotburger
f6885105e9
nixos/restic: escape settings in wrapper script 2025-04-07 03:21:40 -07:00
Sandro Jäckel
138abab480
nixos/restic: unlock database before doing pruning
This is safe to do because only stale locks are removed.
See https://github.com/restic/restic/issues/2736 and https://github.com/restic/restic/blob/master/internal/restic/lock.go
By default only locks older than 30 minutes or when the pid is no longer
found on the same machine, are removed. Locks are refreshed every 5
minutes when doing operations.
2025-03-04 22:54:42 +01:00
Sandro Jäckel
7c9c342419
nixos/restic: suggest to cleanup cache 2025-03-04 22:54:34 +01:00
Cody Allen
bf121f0671
services.restic: use getExe instead of hard-coded path
Instead of assuming the restic executable is at `bin/restic`, use
`lib.getExe` on the restic package. The main motivation for this is
using a security wrapper that has a different name such as
`bin/restic-wrapper`.

NOTE: In rare cases this could be a breaking change. For example if you
are using a wrapper whose executable is at `bin/restic`,
`meta.mainProgram` is not set, _and_ your package name is something
other than `restic`.

See the [discource discussion](https://discourse.nixos.org/t/using-restic-service-with-the-security-wrapper/34547/5) for more details/discussion.
2025-02-07 13:42:57 -05:00
Tert0
aca35b7fd6
nixos/restic: add progressFps option 2025-01-30 19:04:44 +01:00
Tert0
54dba7bed8
nixos/restic: nixfmt 2025-01-30 16:43:51 +01:00
Peder Bergebakken Sundt
953f72e76e nixos/*: tag manpage references 2025-01-27 02:47:01 +01:00
Ilya Epifanov
a21e4fa9e0 restic: fixed handling of arguments with spaces in restic wrappers 2024-12-20 22:05:47 +01:00
Felix Buehler
27f54eb43e nixos/services.restic.backups: remove with lib; 2024-09-15 10:43:46 +02:00
Emily
ecf7c683c2
Merge pull request #319807 from hellodword/nixos-restic-add-unlock
nixos/restic: ensure newline in --files-from
2024-08-02 18:18:47 +02:00
hellodword
e4a4da8794
nixos/restic: ensure newline in --files-from 2024-08-01 02:07:38 +00:00
Emily
d21a082a4d
Merge pull request #296691 from helsinki-systems/feat/restic-systemd-inhibit
nixos/restic: add option to inhibit going to sleep
2024-07-30 20:45:56 +02:00
Emily
477c3c6d5e
Merge pull request #307962 from jpds/restic-snapshot-list-only-latest
nixos/restic: Use cat config in pre-start repo initialization check
2024-07-24 17:13:38 +02:00
Max Hausch
a8038698d3
nixos/restic: add option to inhibit going to sleep 2024-07-08 09:43:27 +02:00
Kai Norman Clasen
c650982a43 nixos/restic: Add runCheck option
This commit fixes the requirement to provide a pruneOption to ensure
that the check command is run when a check option is set. This is useful
for check-only configurations. The option is implicitly set if checkOpts
are given by default.
2024-05-04 22:44:37 +02:00
Jonathan Davies
046691a499 nixos/restic: Use cat config command in pre-start command for repo initialization
check, per upstream recommendation in https://github.com/restic/restic/issues/1690

This is to prevent logs from becoming unwieldy with large repo listings.
2024-05-01 12:50:55 +01:00
stuebinm
6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
ajs124
be0a6b0dd6 nixos/restic: append PATH in wrappers instead of overwriting
fixes "mount"
2023-12-13 16:24:50 +01:00
h7x4
0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
Robert Obryk
20b202b3c8 nixos/restic: allow timer to be disabled 2023-11-07 22:37:37 +01:00
Robert Obryk
536401e90a nixos/restic: fix #264696 and add a regression test
Make sure that preStart and postStop are included in all cases when they are nonempty.
2023-11-01 21:18:56 +01:00
Alyssa Ross
44ff5dfca2 nixos/restic: remove s3CredentialsFile option
This has been deprecated since 2021, so all users should have seen the
warning and migrated by now.
2023-10-27 12:31:54 +00:00
Peder Bergebakken Sundt
adcaf3962d
Merge pull request #212087 from robryk/resticpaths
nixos/backups/restic: handle cases when both dynamicFileFrom and paths are set
2023-10-26 19:35:22 +02:00
Janik
eda85eb31d
Merge pull request #251062 from ajs124/restic-wrapper-script 2023-09-09 19:11:33 +02:00
ajs124
dbb69f82c6 nixos/restic: add wrapper scripts that set parameters for backup
and use in test
2023-08-28 15:17:37 +02:00
ajs124
4732cbf3f8 nixos/restic: use openssh as configured in programs.ssh 2023-08-28 15:03:12 +02:00
Hugh O'Brien
a08d69ba63
nixos/restic: wait for network-online for timed backups 2023-08-18 20:02:16 -04:00
Robert Obryk
77bc27ccdb nixos/backups/restic: handle cases when both dynamicFileFrom and paths are set
Also, add a test to verify that it works.

This change also removes the part of custom package test that verifies
that the correct paths are provided. This is already tested by restore
tests.

Before this change, setting both paths and dynamicFileFrom would cause
paths to be silently ignored. Making that actually apply the obvious
interpretation seems to me to be strictly better than prohibiting the
two from being set at the same time.
2023-08-16 11:25:15 +02:00
Felix Buehler
933a41a73f treewide: use optional instead of 'then []' 2023-06-25 09:11:40 -03:00
Janik H
95e1099d2a restic: add persistent default for timer unit 2023-05-15 15:16:58 +02:00
Elias Probst
3bd1c64a5b
nixos/restic: use private tmp for service unit
To reduce the danger of accidentally exposing sensitive files processed
by a restic backup to other services/users, enable the `PrivateTmp=`
feature of restic service units, which provides a per service isolation
of `/tmp` and `/var/tmp`.

Co-authored-by: Daniel Nagy <danielnagy@posteo.de>
2023-04-30 10:39:29 +02:00
Felix Buehler
327b0cff7a treewide: use more lib.optionalString 2023-04-07 13:38:33 +02:00
Alvar Penning
adafbeff4a nixos/restic: generalize cache configuration
The restic repository cache location defaults to ~/.cache/restic when
not overwritten either by the --cache-dir command line parameter or the
universal RESTIC_CACHE_DIR environment variable.

Currently, the --cache-dir variable is set to only some restic commands,
but, e.g., not to the unit's preStart command for the module's
initialize option. This results in two distinct cache locations, one at
~/.cache/restic for the initialize commands and one at the configured
--cache-dir location for the restic backup command.

By explicitly setting RESTIC_CACHE_DIR for the unit, only one cache at
the correct location will be used.

https://restic.readthedocs.io/en/v0.15.1/manual_rest.html#caching
2023-03-11 12:59:10 +01:00
Nick Cao
99f9998309
Merge pull request #204386 from robryk/resticassert
nixos/restic: small enhancements
2023-01-22 16:23:04 +08:00
Robert Obryk
9dbdb05924 nixos/restic: add exclude parameter
This provides an easy way to specify exclude patterns in config. It was
already possible via extraBackupOptions; this change creates a simpler,
similar to other backup services, way to specify them.
2023-01-11 00:06:13 +01:00
Robert Obryk
751b9063a7 nixos/restic: assert that repository name is specified 2023-01-11 00:06:08 +01:00
Naïm Favier
4fb500d629
nixos/doc: fix some manpage references 2023-01-03 14:03:35 +01:00
Thiago Kenji Okada
b87716afc9
Merge pull request #188881 from shadaj/patch-4
nixos/restic: make it possible to use the existing backup cache for prune/check
2022-10-12 21:26:00 +01:00
Shadaj Laddad
dd34f474ed nixos/restic: make it possible to use the existing backup cache for prune/check
Configures the `--cache-dir` parameter for the prune and check commands run after backing up. For `check`, also adds a `checkOpts` flag to enable using the cache, since that is disabled by default.
2022-10-12 09:09:27 -07:00
pennae
1013069f52 nixos/*: convert more partially-md option descriptions
this mostly means marking options that use markdown already
appropriately and making a few adjustments so they still render
correctly. notable for nftables we have to transform the md links
because the manpage would not render them correctly otherwise.
2022-08-31 16:32:14 +02:00
Thiago Kenji Okada
35348fcc07
Merge pull request #182831 from otavio/topic/use-postStop-for-restic
nixos/restic: use postStop for `backupCleanupCommand`
2022-08-09 18:39:42 +01:00
pennae
61e93df189 nixos/*: automatically convert option docs to MD
once again using nix-doc-munge (69d080323a)
2022-08-03 22:46:41 +02:00
pennae
6b13dd0e9e
Merge pull request #183491 from pennae/automatic-md-conversions
treewide: automatically md-convert option descriptions
2022-08-02 02:15:30 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
Alan Strohm
81cd3e229c
nixos/restic: add 'backups.package' option to override the restic package (#183028) 2022-07-27 13:47:41 -04:00
Otavio Salvador
7e8e00d656 nixos/restic: use postStop for backupCleanupCommand
That way the `backupCleanupCommand` can also run when the backup service
failed for some reason.

Fixes: #182089.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-07-25 11:53:01 -03:00
Otavio Salvador
d9e3b1fafe nixos/restic: add backup{Prepare,Cleanup}Command options
The backupPrepareCommand and backupCleanupCommand options offer a way to
run a script to prepare for backup and then cleanup it once finish.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-06-03 11:22:22 -03:00
Otavio Salvador
deae887c5a nixos/restic: add new repositoryFile option
Allow providing the repository as a file, useful when we don't want it
being stored in the Git repository as plain text.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-06-03 11:21:37 -03:00
Otavio Salvador
082a4184ec nixos/restic: reformat
Apply nixpkgs-fmt on file prior doing changes.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-06-02 16:48:43 -03:00
Will Fancher
851495a752 Move systemd-lib.nix and systemd-unit-options.nix into utils 2021-11-20 17:52:29 -05:00