mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 18:29:21 +00:00 
			
		
		
		
	Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation
This commit is contained in:
		
							
								
								
									
										28
									
								
								roles/desktop-nextcloud/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								roles/desktop-nextcloud/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| # Nextcloud Client ☁️ | ||||
|  | ||||
| ## Description | ||||
|  | ||||
| This Ansible role installs and configures the Nextcloud desktop client on Arch Linux systems. It also manages symbolic links from commonly used user directories (like `Documents`, `Pictures`, etc.) to the respective folders inside a cloud-synced Nextcloud directory. This ensures user data is seamlessly integrated into the synchronized cloud folder. | ||||
|  | ||||
| ## Overview | ||||
|  | ||||
| Targeting user environments on Arch Linux (e.g., Manjaro), this role sets up the official `nextcloud-client` and dynamically links key directories from the user's home folder to Nextcloud. This makes it easy to use the Nextcloud client without needing to manually configure folders. | ||||
|  | ||||
| ## Purpose | ||||
|  | ||||
| The purpose of this role is to automate the configuration of cloud-integrated user directories by ensuring that common folders like `Downloads`, `Music`, and `Workspaces` are transparently redirected into a centralized cloud structure. This makes it easier to maintain backup-friendly, cloud-ready setups for homelab and professional workflows. | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| - **Installs the Nextcloud Desktop Client:** Uses `pacman` via the `community.general.pacman` module. | ||||
| - **Symbolic Linking of User Folders:** Maps home folders (e.g., `Documents`, `Videos`, `Workspaces`) into their Nextcloud equivalents. | ||||
| - **Dynamic Cloud Directory Resolution:** Builds the target cloud directory path from user and cloud variables. | ||||
| - **Dump Folder Mapping:** Links `InstantUpload` from the cloud to a `~/Dump` folder for quick camera/file access. | ||||
|  | ||||
| ## Credits 📝 | ||||
|  | ||||
| Developed and maintained by **Kevin Veen-Birkenbach**.   | ||||
| Learn more at [www.veen.world](https://www.veen.world) | ||||
|  | ||||
| Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)   | ||||
| License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl) | ||||
							
								
								
									
										27
									
								
								roles/desktop-nextcloud/meta/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								roles/desktop-nextcloud/meta/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| --- | ||||
| galaxy_info: | ||||
|   author: "Kevin Veen-Birkenbach" | ||||
|   description: "Installs and links Nextcloud desktop client folders for cloud-integrated user environments." | ||||
|   license: "CyMaIS NonCommercial License (CNCL)" | ||||
|   license_url: "https://s.veen.world/cncl" | ||||
|   company: |  | ||||
|     Kevin Veen-Birkenbach | ||||
|     Consulting & Coaching Solutions | ||||
|     https://www.veen.world | ||||
|   min_ansible_version: "2.9" | ||||
|   platforms: | ||||
|     - name: Archlinux | ||||
|       versions: | ||||
|         - rolling | ||||
|   galaxy_tags: | ||||
|     - nextcloud | ||||
|     - cloud | ||||
|     - archlinux | ||||
|     - user | ||||
|     - desktop | ||||
|     - automation | ||||
|   repository: https://s.veen.world/cymais | ||||
|   issue_tracker_url: https://s.veen.world/cymaisissues | ||||
|   documentation: https://s.veen.world/cymais | ||||
|  | ||||
| dependencies: [] | ||||
							
								
								
									
										34
									
								
								roles/desktop-nextcloud/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								roles/desktop-nextcloud/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| - name: Install nextcloud-client | ||||
|   community.general.pacman: | ||||
|     name: nextcloud-client | ||||
|     state: present | ||||
|  | ||||
| - name: Link homefolders to cloud | ||||
|   ansible.builtin.file: | ||||
|     src: "{{cloud_directory}}{{item}}" | ||||
|     dest: "{{user_home_directory}}{{item}}" | ||||
|     owner: "{{users.client.username}}" | ||||
|     group: "{{users.client.username}}" | ||||
|     state: link | ||||
|     force: yes | ||||
|   ignore_errors: true # Just temporary @todo remove | ||||
|   loop: | ||||
|     - Templates | ||||
|     - Documents | ||||
|     - Videos | ||||
|     - Pictures | ||||
|     - Music | ||||
|     - Desktop | ||||
|     - Software | ||||
|     - Downloads | ||||
|     - Workspaces | ||||
|     - Books | ||||
|     - Screenshots | ||||
|  | ||||
| - name: Link dump folder | ||||
|   ansible.builtin.file: | ||||
|     src: "{{cloud_directory}}InstantUpload" | ||||
|     dest: "{{user_home_directory}}Dump" | ||||
|     owner: "{{users.client.username}}" | ||||
|     group: "{{users.client.username}}" | ||||
|     state: link | ||||
							
								
								
									
										2
									
								
								roles/desktop-nextcloud/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/desktop-nextcloud/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| user_home_directory:  "/home/{{users.client.username}}/"                                          # Home directory of the user | ||||
| cloud_directory:      "{{user_home_directory}}Clouds/{{cloud_fqdn}}/{{users.client.username}}/"   # Folder which contains the cloud data | ||||
		Reference in New Issue
	
	Block a user