@@ -138,42 +138,192 @@ macos_security/
138138For testing only. Requirements may change before release.
139139</Aside >
140140
141+ There are three ways to run mSCP 2.0. Choose the method that works best for your environment.
142+
143+ ### Option 1: Python + Ruby
144+
145+ Manual setup with virtual environment.
146+
147+ ** Requirements:**
148+ - Python >= 3.12.1 (3.14 is not supported)
149+ - Recommended: [ Macadmins Python] ( https://github.com/macadmins/python )
150+ - Ruby >= 3.4.4
151+
141152<Steps >
142153
143- 1 . ### Clone the dev_2.0 Branch
154+ 1 . ### Clone the Repository
144155
145156 ``` bash
146157 git clone -b dev_2.0 https://github.com/usnistgov/macos_security.git
147158 cd macos_security
148159 ```
149160
150- 2 . ### Install Prerequisites
161+ 2 . ### Python Setup
151162
152- Requires Python 3.12.1 or higher.
163+ ``` bash
164+ # Create virtual environment
165+ python3 -m venv .venv
166+ source .venv/bin/activate
167+
168+ # Install requirements
169+ python3 -m pip install .
170+ ```
171+
172+ <details >
173+ <summary >** Having Python version issues?** Click to expand</summary >
153174
154- ** Python packages (required) :**
175+ ** Check your Python version :**
155176 ``` bash
156- pip3 install -r requirements.txt
177+ python3 --version
157178 ```
158179
159- ** Ruby gems (optional — only needed for PDF output) :**
180+ ** Check version inside the venv :**
160181 ``` bash
161- gem install asciidoctor asciidoctor-pdf rouge --user-install
182+ source .venv/bin/activate
183+ python --version
162184 ```
163185
164- <details >
165- <summary >** Want isolated installs?** Click to expand</summary >
186+ ** List all installed Python versions:**
187+ ``` bash
188+ ls /opt/homebrew/bin/python3*
189+ ls /usr/local/bin/python3*
190+ ```
166191
167- ** Python virtual environment :**
192+ ** Create venv with a specific version :**
168193 ``` bash
169- python3 -m venv .venv
194+ # Remove old venv if needed
195+ rm -rf .venv
196+
197+ # Use full path to the Python version you want
198+ /opt/homebrew/bin/python3.13 -m venv .venv
170199 source .venv/bin/activate
171- pip3 install -r requirements.txt
172- deactivate # when done
173200 ```
174201
175202 </details >
176203
204+ 3 . ### Ruby Setup
205+
206+ ``` bash
207+ bundle install --binstubs --path mscp_gems
208+ ```
209+
210+ 4 . ### Generate Content
211+
212+ ``` bash
213+ # Create a baseline
214+ ./mscp.py baseline -k cis_lvl1
215+
216+ # Generate guidance with all outputs
217+ ./mscp.py guidance custom/baselines/cis_lvl1_macos_26.0.yaml -A
218+
219+ # When done, deactivate the virtual environment
220+ deactivate
221+ ```
222+
223+ </Steps >
224+
225+ ---
226+
227+ ### Option 2: Container
228+
229+ The easiest way to get started — no local dependencies required.
230+
231+ ** Requirements:**
232+ - [ Apple Container] ( https://github.com/apple/container ) or [ Docker] ( https://www.docker.com/ )
233+
234+ <Steps >
235+
236+ 1 . ### Create Local Folders
237+
238+ ``` bash
239+ mkdir -p ~ /Desktop/mscp/custom
240+ ```
241+
242+ 2 . ### Run the Container
243+
244+ ** Using Apple Container:**
245+ ``` bash
246+ container run -it \
247+ --volume ~ /Desktop/mscp:/mscp/build \
248+ --volume ~ /Desktop/mscp/custom:/mscp/custom \
249+ ghcr.io/brodjieski/mscp_2.0:latest
250+ ```
251+
252+ <details >
253+ <summary >** Apple Container commands** Click to expand</summary >
254+
255+ ** Start the container service (required before first run):**
256+ ``` bash
257+ container system start
258+ ```
259+
260+ ** Exit the container:**
261+ ``` bash
262+ exit
263+ ```
264+
265+ ** Stop the container service:**
266+ ``` bash
267+ container system stop
268+ ```
269+
270+ ** Check container service status:**
271+ ``` bash
272+ container system status
273+ ```
274+
275+ </details >
276+
277+ ** Or Using Docker:**
278+ ``` bash
279+ # Note: Docker requires full paths for volume mounts
280+ docker run -it \
281+ --volume /Users/< username> /Desktop/mscp:/mscp/build \
282+ --volume /Users/< username> /Desktop/mscp/custom:/mscp/custom \
283+ ghcr.io/brodjieski/mscp_2.0:latest
284+ ```
285+
286+ 3 . ### Generate Content
287+
288+ ``` bash
289+ # Create a baseline
290+ ./mscp.py baseline -k cis_lvl1
291+ # Output: Generated new baseline file: config/custom/baselines/cis_lvl1_macos_26.0.yaml
292+
293+ # Generate guidance with all outputs
294+ ./mscp.py guidance custom/baselines/cis_lvl1_macos_26.0.yaml -A
295+ # Output: MSCP DOCUMENT GENERATION COMPLETE! All documents in: /build/cis_lvl1_macos_26.0/
296+ ```
297+
298+ </Steps >
299+
300+ ---
301+
302+ ### Option 3: UV Workflow
303+
304+ A fast, modern Python workflow using [ uv] ( https://docs.astral.sh/uv/getting-started/installation/ ) .
305+
306+ ** Requirements:**
307+ - [ uv] ( https://docs.astral.sh/uv/getting-started/installation/ )
308+ - Ruby
309+
310+ <Steps >
311+
312+ 1 . ### Clone and Setup
313+
314+ ``` bash
315+ git clone https://github.com/usnistgov/macos_security.git
316+ cd macos_security
317+ git checkout dev_2.0
318+ bundle install --binstubs --path mscp_gems
319+ ```
320+
321+ 2 . ### Run Commands
322+
323+ ``` bash
324+ uv run --python 3.13 mscp.py guidance config/default/baselines/macos/15/cis_lvl1.yaml
325+ ```
326+
177327</Steps >
178328
179329---
0 commit comments