nixos: add BitTorrent Sync service module #1873
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a BitTorrent Sync service module with all the supported configuration options from the JSON configuration file. You can use it through a UI or through the config file to sync specific directories (the two are mutually exclusive).
This module also has one interesting aspect I haven't seen exploited in a NixOS module before: multi-instance
systemd
units. Note in particular thebtsync@
unit.This allows the administrator to selectively start instances of the
btsync
service on-demand for a user with their own configuration file. For example, I can have my own config file at/home/a/.config/btsync.conf
, and the administrator can start my instance withwhich will start an independent service under my user with my configuration file. For the record, I took this idea from ArchLinux.
I suppose in an ideal world, instead of multi-instance services we would use systemd user services (ref #1689) but as that's not done yet, I find this works adequately. I'm open to other recommendations, however.