Despite being one of the best linux distribution choice to setup a server, NixOS can be tough for beginners, which makes it rarely used in practice.
This repo aims to fix this !
This package does all the heavy lifting for you, and let you with a "can't be simpler" configuration. See yourself:
{ control, ...}
{
control = {
jellyfin.enable = true; # self hosted netflix
immich.enable = true; # self hosted google photos
psitransfer.enable = true; # self hosted wetransfer
# ...there's more
};
}That's all you need to have a control hosting Jellyfin, Immich and Psitransfer running on your server !
Have a domain and want your server accessible through the web ? Just enable it:
routing.enable = true;
routing = {
domain = "yourdomain.com";
letsencrypt.enable = true; # enables https
letsencrypt.email = "letsencrypt.email@email.com"
};You can now access
- https://jellyfin.yourdomain.com
- https://immich.yourdomain.com
- https://psitransfer.yourdomain.com
... and other enabled services as well
Tip
Getting https certificates configuration can't be easier as we support Let's Encrypt.
For a bit more customized configuration, you can use simple properties, standardized accross modules:
jellyfin = {
enable = true;
paths.default = "/another/place"; # where you store the app data (ex. movies)
subdomain = "movies"; # -> movies.yourdomain.com
port = 8080; # useful to customise if you don't use routing
version = "..."; # specific docker image version
};Note
The same properties can be used for other webservices (Immich, GitLab, PsiTransfer...) as well.
Oh, and we also provide tools like terminal configuration (oh my zsh) and hdd-spindown. You'll see that later in the docs :)
Or check the list of supported services and tools.
Caution
This module is in heavy developement, and subject to change. This doc is for v2.0, future updates could break your current configuration, so please be sure to read the update docs when it releases !
We don't have proper contributing documentation yet, but contributions are always welcome !
We are looking for more modules to add. If you are using one on your own config, why not add it here ?
If you're already a Nix developer, just have a look on how other modules are built and do the same for your module 😄
Keypoints (for webservices):
- Please use the same common options as other webservices
- Please run the service in a docker container.