@@ -11,8 +11,7 @@ Standardised complete developer environment setup for HyperSec DFE developers ac
1111
1212## Platform Support
1313
14- - ** [ Multi-Platform (Recommended)] ( #multi-platform-quick-start ) ** - Ansible-based setup for Fedora, Ubuntu, and macOS
15- - ** [ Fedora Linux (Legacy)] ( #fedora-linux-legacy ) ** - Shell script-based setup (bug fixes only)
14+ - ** [ Multi-Platform (Recommended)] ( #multi-platform-quick-start ) ** - Ansible-based setup for Ubuntu, Fedora, and macOS
1615- ** [ Windows 11] ( #windows-11-soe ) ** - Productivity and VM host setup with Hyper-V
1716
1817## Multi-Platform Quick Start
@@ -32,54 +31,64 @@ cd dfe-developer
3231# Install with core developer tools
3332./install.sh --core
3433
35- # Install everything (base + core + VM + RDP optimizers )
34+ # Install everything (base + core + VM + RDP + winlike desktop )
3635./install.sh --all
3736
38- # Other options:
39- ./install.sh --no-ghostty # Skip Ghostty terminal
40- ./install.sh --vm # Add VM optimizations (Linux only)
41- ./install.sh --rdp # Add RDP optimizations (Linux only)
42- ./install.sh --check # Dry-run (no changes)
37+ # Include Windows-style GNOME desktop (bottom taskbar)
38+ ./install.sh --tags developer,base,winlike
39+
40+ # Include macOS-style GNOME desktop (dock, logo menu, magic lamp)
41+ ./install.sh --tags developer,base,maclike
42+
43+ # Exclude specific features (ghostty, fastestmirror, wallpaper)
44+ ./install.sh --tags-exclude ghostty,wallpaper
45+
46+ # Dry-run to see what would change
47+ ./install.sh --check
4348```
4449
4550The Ansible-based installer automatically detects your OS and installs the appropriate packages.
4651
47- ### Selective Installation (Advanced)
52+ ### Tag-Based Installation
4853
49- You can install specific components using Ansible tags. ** Dependencies (init tasks) always run automatically. **
54+ All options use Ansible tags. Use ` --tags ` to include features, ` --tags-exclude ` to exclude them.
5055
51- #### Using install.sh with tags:
5256``` bash
53- # Install only Docker on macOS
54- ./install.sh --tags docker
55-
56- # Install only Git and GitHub CLI
57- ./install.sh --tags git
57+ # Include specific tags
58+ ./install.sh --tags developer,base,winlike
5859
59- # Install Kubernetes tools only
60- ./install.sh --tags k8s
60+ # Exclude specific tags (from default or --all)
61+ ./install.sh --tags-exclude ghostty,wallpaper
6162
62- # Install multiple specific tools
63- ./install.sh --tags " docker,git,k8s "
63+ # Combine: install everything except specific features
64+ ./install.sh --all -- tags-exclude wallpaper
6465```
6566
66- #### Using Ansible directly:
67- ``` bash
68- cd ansible
67+ #### Available Tags
6968
70- # Install only Docker (dependencies run automatically)
71- ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags docker
69+ ** Base Tags (included by default):**
7270
73- # Install Git + Cloud tools
74- ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags " git,cloud "
71+ - ` developer ` - Base DFE developer role
72+ - ` base ` - Base tools (Docker, Git, K8s, Python, VS Code, Chrome)
7573
76- # Install everything EXCEPT Ghostty terminal
77- ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --skip-tags ghostty
78- ```
74+ ** Feature Tags (opt-in, require explicit --tags or --all):**
7975
80- #### Available Tags
76+ - ` winlike ` - Windows-style GNOME taskbar (Dash to Panel, bottom panel)
77+ - ` maclike ` - macOS-style GNOME dock (Dash to Dock, Logo Menu, Magic Lamp)
78+ - ` core ` - Core developer tools (JFrog, Azure CLI, Node.js, Linear CLI)
79+ - ` advanced ` - Advanced tools (included with --core)
80+ - ` vm ` - VM guest optimizations (QEMU guest agent, SPICE agent)
81+ - ` optimizer ` - VM optimizer role (included with --vm)
82+ - ` rdp ` - GNOME Remote Desktop configuration (RDP server on port 3389)
83+
84+ ** Optional Tags (included by default, can be excluded):**
85+
86+ - ` ghostty ` - Ghostty terminal emulator
87+ - ` fastestmirror ` - DNF/APT performance optimizations
88+ - ` wallpaper ` - Custom DFE wallpaper
89+
90+ ** Component Tags:**
8191
82- ** Base Developer Tools:**
8392- ` docker ` - Docker Desktop (macOS) or Docker CE (Linux)
8493- ` git ` - Latest Git + GitHub CLI + Git LFS
8594- ` cloud ` - AWS CLI, Helm, Terraform, Vault
@@ -88,9 +97,9 @@ ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --ski
8897- ` utilities ` - Development utilities (jq, bat, fzf, ripgrep, etc.)
8998- ` vscode ` - Visual Studio Code
9099- ` chrome ` - Google Chrome
91- - ` ghostty ` - Ghostty terminal emulator
92100
93- ** Core Developer Tools:**
101+ ** Core Component Tags (require --core or explicit --tags):**
102+
94103- ` jfrog ` - JFrog CLI
95104- ` azure ` - Azure CLI
96105- ` nodejs ` - Node.js + semantic-release
@@ -99,59 +108,21 @@ ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --ski
99108- ` claude ` - Claude Code CLI
100109- ` slack ` - Slack (GUI)
101110
102- ** System:**
103- - ` repository ` - Configure package repositories (Linux only)
104- - ` security ` - Automatic security updates
105- - ` wallpaper ` - Custom wallpaper (if provided)
106- - ` verify ` - Verify all installations
107-
108- #### How It Works
109-
110- ** Dependencies always run:**
111- - Init tasks (tagged ` always ` ) run before any other tasks
112- - Variables, user detection, platform detection
113- - Ensures all prerequisites met
114-
115- ** Example: Install only Docker on macOS**
116- ``` bash
117- ./install.sh --tags docker
118- ```
119-
120- This will:
121- 1 . ✅ Run init tasks (detect user, set variables)
122- 2 . ✅ Install Docker Desktop via Homebrew
123- 3 . ✅ Configure Docker
124- 4 . ⏭️ Skip all other tools (Git, K8s, etc.)
111+ #### Using Ansible directly
125112
126- ** Example: Install multiple specific tools**
127113``` bash
128- ./install.sh --tags " git,docker,vscode"
129- ```
130-
131- This installs only Git, Docker, and VS Code (plus their dependencies).
132-
133-
134- ## Fedora Linux (Legacy)
135-
136- ** Fedora-only shell scripts - bug fixes only, no new features.**
114+ cd ansible
137115
138- ``` bash
139- # Clone the repository
140- git clone https://github.com/hypersec-io/dfe-developer
141- cd dfe-developer/fedora
116+ # Install only Docker (dependencies run automatically)
117+ ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags docker
142118
143- # Complete installation
144- ./install-all.sh 2>&1 | tee install.log
119+ # Install with winlike desktop
120+ ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags developer,base,winlike
145121
146- # OR install components individually:
147- ./install-dfe-developer.sh # Base developer tools
148- ./install-dfe-developer-core.sh # Core DFE tools
149- ./install-vm-optimizer.sh # VM optimizations
150- ./install-rdp-optimizer.sh # RDP optimizations
122+ # Install everything EXCEPT Ghostty terminal
123+ ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --skip-tags ghostty
151124```
152125
153- ** Note:** The ` /fedora ` scripts are maintained for bug fixes only. All new features and enhancements go into the Ansible playbooks. Use ` ./install.sh ` (Ansible) for new installations.
154-
155126## What Gets Installed
156127
157128### Standard Developer Tools
@@ -173,32 +144,13 @@ cd dfe-developer/fedora
173144
174145## System Requirements
175146
176- ### Multi-Platform (Ansible)
177147- ** Ubuntu:** 24.04 LTS or later (primary)
178- - ** Fedora:** 42 or later (secondary)
179- - ** macOS:** Sequoia 15.3.1 or later (secondary)
180- - 4GB RAM minimum (8GB recommended)
181- - 20GB available disk space
182- - Internet connection
183-
184- ### Legacy Fedora (Shell Scripts)
185- - Fedora 42 or later
148+ - ** Fedora:** 42 or later
149+ - ** macOS:** Sequoia 15.3.1 or later
186150- 4GB RAM minimum (8GB recommended)
187151- 20GB available disk space
188152- Internet connection
189153
190- ## Testing
191-
192- The project includes comprehensive testing:
193-
194- ``` bash
195- cd fedora/tests
196-
197- # Run all tests
198- bash 01-shellcheck.sh # Static analysis
199- bats * .bats # Unit and integration tests
200- ```
201-
202154## Project Structure
203155
204156- ` ansible/ ` - Ansible-based multi-platform installer (Fedora, Ubuntu, macOS)
0 commit comments