mirror of https://gitlab.com/curben/blog
				
				
				
			post: nixos 21.05 upgrade note
This commit is contained in:
		
							parent
							
								
									1d1bd91266
								
							
						
					
					
						commit
						2bbe0cc629
					
				|  | @ -0,0 +1,92 @@ | ||||||
|  | --- | ||||||
|  | title: My upgrade note of NixOS 21.05 | ||||||
|  | excerpt: Changes that I made when upgrading from 20.09 to 21.05 | ||||||
|  | date: 2021-06-13 | ||||||
|  | tags: | ||||||
|  | - server | ||||||
|  | - linux | ||||||
|  | - tor | ||||||
|  | - nixos | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | This post details the changes I made to my NixOS' configuration when upgrading from 20.09 to 21.05. | ||||||
|  | 
 | ||||||
|  | ## isNormalUser/isSystemUser | ||||||
|  | 
 | ||||||
|  | Either [`isNormalUser`](https://search.nixos.org/options?channel=21.05&show=users.users.%3Cname%3E.isNormalUser&from=0&size=50&sort=relevance&query=isnormaluser) or `isSystemUser` must now be set. This mainly affects service user (user that is created solely to run a service). | ||||||
|  | 
 | ||||||
|  | ``` diff | ||||||
|  |   users = { | ||||||
|  |     users = { | ||||||
|  |       fooService = { | ||||||
|  |         home = "/var/www"; | ||||||
|  |         createHome = true; | ||||||
|  | +        isSystemUser = true; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Make home folder world-readable | ||||||
|  | 
 | ||||||
|  | I have a "{% post_link rsync-setup-nixos '/var/www' %}" folder which I use to serve this website. Previously, `chmod +xr` was persistent but now NixOS always set the permission of a user's home folder to be `chmod 700` every time `nixos-rebuild` is executed. As a workaround, I have to configure nix to execute chmod after `nixos-rebuild` and during boot. | ||||||
|  | 
 | ||||||
|  | ``` nix | ||||||
|  |   system.activationScripts = { | ||||||
|  |      www-data.text = | ||||||
|  |      '' | ||||||
|  |        chmod +xr "/var/www" | ||||||
|  |      ''; | ||||||
|  |   }; | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Tor onion | ||||||
|  | 
 | ||||||
|  | Some settings have been renamed: | ||||||
|  | 
 | ||||||
|  | 1. hiddenServices -> relay.onionServices | ||||||
|  | 2. `map.*.toHost` -> `map.*.target.addr` | ||||||
|  | 3. extraConfig -> settings | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ``` diff | ||||||
|  |   services.tor = { | ||||||
|  |     enable = true; | ||||||
|  |     enableGeoIP = false; | ||||||
|  | -    hiddenServices = { | ||||||
|  | -      myOnion = { | ||||||
|  | -        version = 3; | ||||||
|  | -        map = [ | ||||||
|  | -          { | ||||||
|  | -            port = "80"; | ||||||
|  | -            toHost = "[::1]"; | ||||||
|  | -            toPort = "8080"; | ||||||
|  | -          } | ||||||
|  | -        ]; | ||||||
|  | -      } | ||||||
|  | -    } | ||||||
|  | -    extraConfig = | ||||||
|  | -      '' | ||||||
|  | -        ClientUseIPv4 0 | ||||||
|  | -        ClientUseIPv6 1 | ||||||
|  | -        ClientPreferIPv6ORPort 1 | ||||||
|  | -      ''; | ||||||
|  | +    relay.onionServices = { | ||||||
|  | +      myOnion = { | ||||||
|  | +        version = 3; | ||||||
|  | +        map = [{ | ||||||
|  | +          port = 80; | ||||||
|  | +          target = { | ||||||
|  | +            addr = "[::1]"; | ||||||
|  | +            port = 8080; | ||||||
|  | +          }; | ||||||
|  | +        }]; | ||||||
|  | +      }; | ||||||
|  | +    }; | ||||||
|  | +    settings = { | ||||||
|  | +      ClientUseIPv4 = false; | ||||||
|  | +      ClientUseIPv6 = true; | ||||||
|  | +      ClientPreferIPv6ORPort = true; | ||||||
|  | +    }; | ||||||
|  |   }; | ||||||
|  | ``` | ||||||
		Loading…
	
		Reference in New Issue