|
7 | 7 | [](https://github.com/hypersec-io/dfe-developer/commits/main) |
8 | 8 | [](https://github.com/hypersec-io/dfe-developer/stargazers) |
9 | 9 |
|
10 | | -Standardised complete developer environment setup for HyperSec DFE developers across multiple platforms. |
| 10 | +Standardised developer environment for HyperSec DFE teams. One command gets you Docker, Kubernetes tools, cloud CLIs, and a properly configured desktop. |
11 | 11 |
|
12 | 12 | ## Platform Support |
13 | 13 |
|
14 | | -- **[Multi-Platform (Recommended)](#multi-platform-quick-start)** - Ansible-based setup for Ubuntu, Fedora, and macOS |
15 | | -- **[Windows 11](#windows-11-soe)** - Productivity and VM host setup with Hyper-V |
| 14 | +| Platform | Status | Notes | |
| 15 | +|----------|--------|-------| |
| 16 | +| **Ubuntu 24.04** | Fully tested | Primary platform | |
| 17 | +| **Fedora 42** | Fully tested | GNOME 48 compatible | |
| 18 | +| **macOS Sequoia** | Fully tested | Homebrew-based | |
| 19 | +| **Windows 11** | Productivity host | Hyper-V for Linux VMs | |
16 | 20 |
|
17 | | -## Multi-Platform Quick Start |
18 | | - |
19 | | -**Recommended for all new installations.** Supports Ubuntu 24.04+ (primary), Fedora 42+, and macOS. |
20 | | - |
21 | | -**v2.4+**: Ubuntu is now the primary supported platform, with Fedora and macOS as secondary platforms. |
| 21 | +## Quick Start |
22 | 22 |
|
23 | 23 | ```bash |
24 | | -# Clone the repository |
25 | 24 | git clone https://github.com/hypersec-io/dfe-developer |
26 | 25 | cd dfe-developer |
27 | 26 |
|
28 | | -# Install base developer environment (default) |
| 27 | +# Base install (Docker, Git, K8s tools, VS Code, Chrome) |
29 | 28 | ./install.sh |
30 | 29 |
|
31 | | -# Install with core developer tools |
32 | | -./install.sh --core |
33 | | - |
34 | | -# Install everything (base + core + VM + RDP + winlike desktop) |
| 30 | +# Full install with everything |
35 | 31 | ./install.sh --all |
36 | 32 |
|
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 |
| 33 | +# Check what would change first |
47 | 34 | ./install.sh --check |
48 | 35 | ``` |
49 | 36 |
|
50 | | -The Ansible-based installer automatically detects your OS and installs the appropriate packages. |
| 37 | +The installer detects your OS and installs the right packages. Run `./install.sh --help` for all options. |
51 | 38 |
|
52 | | -### Tag-Based Installation |
53 | | - |
54 | | -All options use Ansible tags. Use `--tags` to include features, `--tags-exclude` to exclude them. |
| 39 | +### Installation Options |
55 | 40 |
|
56 | 41 | ```bash |
57 | | -# Include specific tags |
| 42 | +# Windows-style taskbar (Dash to Panel) |
58 | 43 | ./install.sh --tags developer,base,winlike |
59 | 44 |
|
60 | | -# Exclude specific tags (from default or --all) |
61 | | -./install.sh --tags-exclude ghostty,wallpaper |
| 45 | +# macOS-style dock |
| 46 | +./install.sh --tags developer,base,maclike |
| 47 | + |
| 48 | +# Core tools (JFrog, Azure CLI, Node.js, Linear CLI) |
| 49 | +./install.sh --core |
62 | 50 |
|
63 | | -# Combine: install everything except specific features |
| 51 | +# Full install without wallpaper |
64 | 52 | ./install.sh --all --tags-exclude wallpaper |
65 | 53 | ``` |
66 | 54 |
|
67 | | -#### Available Tags |
68 | | - |
69 | | -**Base Tags (included by default):** |
70 | | - |
71 | | -- `developer` - Base DFE developer role |
72 | | -- `base` - Base tools (Docker, Git, K8s, Python, VS Code, Chrome) |
73 | | - |
74 | | -**Feature Tags (opt-in, require explicit --tags or --all):** |
75 | | - |
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):** |
| 55 | +### Available Tags |
85 | 56 |
|
86 | | -- `ghostty` - Ghostty terminal emulator |
87 | | -- `fastestmirror` - DNF/APT performance optimizations |
88 | | -- `wallpaper` - Custom DFE wallpaper |
| 57 | +| Tag | Description | |
| 58 | +|-----|-------------| |
| 59 | +| `winlike` | Windows-style taskbar with transparent panel | |
| 60 | +| `maclike` | macOS-style dock (overrides winlike if both specified) | |
| 61 | +| `core` | JFrog CLI, Azure CLI, Node.js, Linear CLI, OpenVPN | |
| 62 | +| `rdp` | GNOME Remote Desktop on port 3389 | |
| 63 | +| `vm` | VM guest optimizations (QEMU/SPICE agents) | |
| 64 | +| `ghostty` | Ghostty terminal (included by default) | |
| 65 | +| `wallpaper` | Custom wallpaper (included by default) | |
89 | 66 |
|
90 | | -**Component Tags:** |
91 | | - |
92 | | -- `docker` - Docker Desktop (macOS) or Docker CE (Linux) |
93 | | -- `git` - Latest Git + GitHub CLI + Git LFS |
94 | | -- `cloud` - AWS CLI, Helm, Terraform, Vault |
95 | | -- `k8s` - kubectl, k9s, kubectx, minikube, argocd, dive |
96 | | -- `python` - UV Python manager |
97 | | -- `utilities` - Development utilities (jq, bat, fzf, ripgrep, etc.) |
98 | | -- `vscode` - Visual Studio Code |
99 | | -- `chrome` - Google Chrome |
100 | | - |
101 | | -**Core Component Tags (require --core or explicit --tags):** |
| 67 | +## What Gets Installed |
102 | 68 |
|
103 | | -- `jfrog` - JFrog CLI |
104 | | -- `azure` - Azure CLI |
105 | | -- `nodejs` - Node.js + semantic-release |
106 | | -- `linear` - Linear CLI |
107 | | -- `openvpn` - OpenVPN 3 client |
108 | | -- `claude` - Claude Code CLI |
109 | | -- `slack` - Slack (GUI) |
| 69 | +**Base install** (`./install.sh`): |
110 | 70 |
|
111 | | -#### Using Ansible directly |
| 71 | +- Docker CE + Docker Desktop |
| 72 | +- Git, GitHub CLI, Git LFS |
| 73 | +- kubectl, k9s, kubectx, minikube, ArgoCD, dive, Freelens |
| 74 | +- AWS CLI, Helm, Terraform, Vault |
| 75 | +- UV (Python manager) |
| 76 | +- VS Code, Chrome |
| 77 | +- Ghostty terminal (Solarized theme) |
| 78 | +- Development utilities (jq, yq, bat, fzf, ripgrep, htop) |
112 | 79 |
|
113 | | -```bash |
114 | | -cd ansible |
| 80 | +**Core tools** (`./install.sh --core`): |
115 | 81 |
|
116 | | -# Install only Docker (dependencies run automatically) |
117 | | -ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags docker |
| 82 | +- JFrog CLI, Azure CLI |
| 83 | +- Node.js, semantic-release, Linear CLI |
| 84 | +- OpenVPN 3, Claude Code CLI |
| 85 | +- Slack, Gitleaks, act (GitHub Actions runner) |
118 | 86 |
|
119 | | -# Install with winlike desktop |
120 | | -ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --tags developer,base,winlike |
| 87 | +**Desktop** (`winlike` or `maclike` tag): |
121 | 88 |
|
122 | | -# Install everything EXCEPT Ghostty terminal |
123 | | -ansible-playbook -i inventories/localhost/inventory.yml playbooks/main.yml --skip-tags ghostty |
124 | | -``` |
| 89 | +- GNOME extensions from extensions.gnome.org |
| 90 | +- Transparent taskbar (winlike) or dock (maclike) |
| 91 | +- Custom wallpaper |
125 | 92 |
|
126 | | -## What Gets Installed |
| 93 | +## Requirements |
127 | 94 |
|
128 | | -### Standard Developer Tools |
129 | | -- Docker CE and Docker Compose |
130 | | -- Python development (UV, pyenv) |
131 | | -- Cloud tools (AWS CLI, kubectl, Helm + Dashboard, Terraform) |
132 | | -- Kubernetes tools (K9s, Freelens, Minikube, ArgoCD) |
133 | | -- Git extensions and GitHub CLI |
134 | | -- Development utilities (jq, yq, bat, fzf, ripgrep) |
135 | | -- VS Code configuration |
136 | | - |
137 | | -### DFE Core Developer Tools |
138 | | -- JFrog CLI |
139 | | -- Azure CLI |
140 | | -- Node.js and semantic-release |
141 | | -- AI coding assistants (Claude Code CLI) |
142 | | -- Advanced Python tools (Nox, UV) |
143 | | -- Slack (Flatpak) |
144 | | - |
145 | | -## System Requirements |
146 | | - |
147 | | -- **Ubuntu:** 24.04 LTS or later (primary) |
148 | | -- **Fedora:** 42 or later |
149 | | -- **macOS:** Sequoia 15.3.1 or later |
150 | | -- 4GB RAM minimum (8GB recommended) |
151 | | -- 20GB available disk space |
| 95 | +- **Ubuntu 24.04+**, **Fedora 42+**, or **macOS Sequoia** |
| 96 | +- 8GB RAM recommended |
| 97 | +- 20GB disk space |
152 | 98 | - Internet connection |
153 | 99 |
|
154 | 100 | ## Project Structure |
@@ -298,7 +244,7 @@ cd windows |
298 | 244 | - **Core Isolation** - Memory integrity protection |
299 | 245 | - **Defender ATP** - Optional automated onboarding (drop package in directory) |
300 | 246 |
|
301 | | -### Requirements |
| 247 | +### Windows Requirements |
302 | 248 |
|
303 | 249 | - **Windows 11 Pro** (24H2 or later recommended, Build 26100+) |
304 | 250 | - **Administrator privileges** |
|
0 commit comments