forked from jan-leila/nix-config
		
	added syncthing to other computers
This commit is contained in:
		
							parent
							
								
									6d6e34e06a
								
							
						
					
					
						commit
						c9bc06f594
					
				
					 3 changed files with 101 additions and 50 deletions
				
			
		|  | @ -118,6 +118,16 @@ | ||||||
|       enable = true; |       enable = true; | ||||||
|       subdomain = "drive"; |       subdomain = "drive"; | ||||||
|     }; |     }; | ||||||
|  |     sync = { | ||||||
|  |       enable = true; | ||||||
|  |       folders = { | ||||||
|  |         leyla = { | ||||||
|  |           documents.enable = true; | ||||||
|  |           calendar.enable = true; | ||||||
|  |           notes.enable = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
|   networking = { |   networking = { | ||||||
|     hostId = "c51763d6"; |     hostId = "c51763d6"; | ||||||
|  |  | ||||||
|  | @ -29,6 +29,16 @@ | ||||||
|       openRGB.enable = true; |       openRGB.enable = true; | ||||||
|       graphicsAcceleration.enable = true; |       graphicsAcceleration.enable = true; | ||||||
|     }; |     }; | ||||||
|  |     sync = { | ||||||
|  |       enable = true; | ||||||
|  |       folders = { | ||||||
|  |         leyla = { | ||||||
|  |           documents.enable = true; | ||||||
|  |           calendar.enable = true; | ||||||
|  |           notes.enable = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   services = { |   services = { | ||||||
|  |  | ||||||
|  | @ -35,7 +35,8 @@ in { | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = { |   config = lib.mkMerge [ | ||||||
|  |     { | ||||||
|       systemd = lib.mkIf config.services.syncthing.enable { |       systemd = lib.mkIf config.services.syncthing.enable { | ||||||
|         tmpfiles.rules = [ |         tmpfiles.rules = [ | ||||||
|           "d ${mountDir} 755 syncthing syncthing -" |           "d ${mountDir} 755 syncthing syncthing -" | ||||||
|  | @ -43,8 +44,11 @@ in { | ||||||
|           "d ${config.services.syncthing.configDir} 755 syncthing syncthing -" |           "d ${config.services.syncthing.configDir} 755 syncthing syncthing -" | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|  |     } | ||||||
|  |     (lib.mkIf config.host.sync.enable (lib.mkMerge [ | ||||||
|  |       { | ||||||
|         services.syncthing = { |         services.syncthing = { | ||||||
|       enable = config.host.sync.enable; |           enable = true; | ||||||
|           user = "syncthing"; |           user = "syncthing"; | ||||||
|           group = "syncthing"; |           group = "syncthing"; | ||||||
|           dataDir = "${mountDir}/default"; |           dataDir = "${mountDir}/default"; | ||||||
|  | @ -59,32 +63,59 @@ in { | ||||||
|               coven = { |               coven = { | ||||||
|                 id = "QGU7NN6-OMXTWVA-YCZ73S5-2O7ECTS-MUCTN4M-YH6WLEL-U4U577I-7PBNCA5"; |                 id = "QGU7NN6-OMXTWVA-YCZ73S5-2O7ECTS-MUCTN4M-YH6WLEL-U4U577I-7PBNCA5"; | ||||||
|               }; |               }; | ||||||
|  |               defiant = lib.mkIf (config.networking.hostName != "defiant") { | ||||||
|  |                 id = "TQGGO5F-PUXQYVV-LVVM7PR-Q4TKI6T-NR576PH-CFTVB4O-RP5LL6C-WKQMXQR"; | ||||||
|  |               }; | ||||||
|  |               twilight = lib.mkIf (config.networking.hostName != "twilight") { | ||||||
|  |                 id = "UDIYL7V-OAZ2BI3-EJRAWFB-GZYVDWR-JNUYW3F-FFQ35MU-XBTGWEF-QD6K6QN"; | ||||||
|  |               }; | ||||||
|  |               horizon = lib.mkIf (config.networking.hostName != "horizon") { | ||||||
|  |                 id = "OGPAEU6-5UR56VL-SP7YC4Y-IMVCRTO-XFD4CYN-Z6T5TZO-PFZNAT6-4MKWPQS"; | ||||||
|  |               }; | ||||||
|             }; |             }; | ||||||
|             folders = lib.mkMerge [ |             folders = lib.mkMerge [ | ||||||
|               config.host.sync.folders.extraFolders |               config.host.sync.folders.extraFolders | ||||||
|               (lib.mkIf config.host.sync.folders.leyla.documents.enable { |               (lib.mkIf config.host.sync.folders.leyla.documents.enable { | ||||||
|                 "documents" = { |                 "documents" = { | ||||||
|                   id = "hvrj0-9bm1p"; |                   id = "hvrj0-9bm1p"; | ||||||
|               path = "/mnt/sync/leyla/documents"; |                   path = "${mountDir}/leyla/documents"; | ||||||
|                   devices = ["ceder" "coven"]; |                   devices = ["ceder" "coven"]; | ||||||
|                 }; |                 }; | ||||||
|               }) |               }) | ||||||
|               (lib.mkIf config.host.sync.folders.leyla.calendar.enable { |               (lib.mkIf config.host.sync.folders.leyla.calendar.enable { | ||||||
|                 "calendar" = { |                 "calendar" = { | ||||||
|                   id = "8oatl-1rv6w"; |                   id = "8oatl-1rv6w"; | ||||||
|               path = "/mnt/sync/leyla/calendar"; |                   path = "${mountDir}/leyla/calendar"; | ||||||
|                   devices = ["ceder" "coven"]; |                   devices = ["ceder" "coven"]; | ||||||
|                 }; |                 }; | ||||||
|               }) |               }) | ||||||
|               (lib.mkIf config.host.sync.folders.leyla.notes.enable { |               (lib.mkIf config.host.sync.folders.leyla.notes.enable { | ||||||
|                 "notes" = { |                 "notes" = { | ||||||
|                   id = "dwbuv-zffnf"; |                   id = "dwbuv-zffnf"; | ||||||
|               path = "/mnt/sync/leyla/notes"; |                   path = "${mountDir}/leyla/notes"; | ||||||
|                   devices = ["ceder" "coven"]; |                   devices = ["ceder" "coven"]; | ||||||
|                 }; |                 }; | ||||||
|               }) |               }) | ||||||
|             ]; |             ]; | ||||||
|           }; |           }; | ||||||
|         }; |         }; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       (lib.mkIf config.host.impermanence.enable { | ||||||
|  |         environment.persistence = { | ||||||
|  |           "/persist/system/root" = { | ||||||
|  |             enable = true; | ||||||
|  |             hideMounts = true; | ||||||
|  |             directories = [ | ||||||
|  |               { | ||||||
|  |                 directory = mountDir; | ||||||
|  |                 user = "syncthing"; | ||||||
|  |                 group = "syncthing"; | ||||||
|  |               } | ||||||
|  |             ]; | ||||||
|           }; |           }; | ||||||
|  |         }; | ||||||
|  |       }) | ||||||
|  |     ])) | ||||||
|  |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue