Skip to content

Commit 4078018

Browse files
committed
updated readme
1 parent f651d4b commit 4078018

File tree

2 files changed

+327
-1
lines changed

2 files changed

+327
-1
lines changed

.prettierrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"singleQuote": true,
33
"semi": true,
44
"trailingComma": "es5",
5-
"printWidth": 100,
5+
"printWidth": 150,
66
"tabWidth": 2
77
}

README.md

Lines changed: 326 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,326 @@
1+
# Netwrix Product Documentation
2+
3+
A modern, multi-product documentation site built with **Docusaurus v3.8.1** that hosts comprehensive documentation for the entire Netwrix security product portfolio.
4+
5+
## 🎯 Overview
6+
7+
This documentation site serves as the central hub for all Netwrix product documentation, featuring:
8+
9+
- **20+ Security Products** across 7 categories
10+
- **Multi-version Support** for product documentation
11+
- **Single-product Development Mode** for faster development
12+
- **Performance Optimizations** with Docusaurus Faster features
13+
- **Responsive Design** with dark mode support
14+
- **Search** capabilities with Algolia
15+
16+
## 🚀 Quick Start
17+
18+
### Prerequisites
19+
20+
- **Node.js 18+**
21+
- **npm**
22+
- **Git**
23+
24+
### Installation
25+
26+
```bash
27+
# Clone the repository
28+
git clone https://github.com/netwrix/docs.git
29+
cd docs
30+
31+
# Install dependencies
32+
npm install
33+
34+
# Start development server (all products)
35+
npm start
36+
37+
# Or start single product for faster development
38+
npm start 1secure
39+
npm start accessanalyzer/12.0
40+
npm start endpointpolicymanager
41+
```
42+
43+
### Single Product Development (Recommended)
44+
45+
For faster development, use single-product mode:
46+
47+
```bash
48+
# Non-versioned products
49+
npm start 1secure
50+
npm start endpointpolicymanager
51+
npm start pingcastle
52+
53+
# Versioned products (product/version)
54+
npm start accessanalyzer/12.0
55+
npm start auditor/10.7
56+
npm start identitymanager/6.2
57+
58+
# Special cases
59+
npm start identitymanager/saas
60+
```
61+
62+
## 📁 Project Structure
63+
64+
```
65+
├── docs/ # Product documentation
66+
│ ├── 1secure/ # Non-versioned product
67+
│ │ ├── index.md
68+
│ │ └── getting-started/
69+
│ ├── accessanalyzer/ # Versioned product
70+
│ │ ├── 11.6/
71+
│ │ └── 12.0/
72+
│ └── endpointpolicymanager/ # Large single-version product
73+
├── src/ # React components & pages
74+
│ ├── components/
75+
│ │ ├── HomepageFeatures/ # Product showcase
76+
│ │ ├── CommunityHighlights/ # Community section
77+
│ │ └── CommunityShowcase/
78+
│ ├── css/
79+
│ │ └── custom.css # Theme customization
80+
│ └── pages/
81+
│ └── index.js # Homepage
82+
├── scripts/ # Development & build utilities
83+
│ ├── start-wrapper.js # Single-product dev mode
84+
│ ├── build-single.js # Single-product builds
85+
│ ├── rename-product.js # Product renaming utility
86+
│ └── path-converter.js # Path conversion utility
87+
├── sidebars/ # Sidebar configurations
88+
│ ├── sidebar.js # Default sidebar
89+
│ ├── 1secure.js # Product-specific sidebars
90+
│ └── accessanalyzer/
91+
│ ├── 11.6.js
92+
│ └── 12.0.js
93+
├── static/ # Static assets
94+
│ └── img/
95+
│ ├── branding/ # Logos and brand assets
96+
│ └── product_docs/ # Product images
97+
├── reference-docs/ # Docusaurus & MDX documentation
98+
├── docusaurus.config.js # Main configuration
99+
└── package.json
100+
```
101+
102+
## 🛠️ Development
103+
104+
### Available Commands
105+
106+
```bash
107+
# Development
108+
npm start # All products (slower)
109+
npm start <product> # Single product (faster)
110+
npm start <product>/<version> # Specific version
111+
112+
# Building
113+
npm run build # Full site production build
114+
npm run build:single <product> # Single product build
115+
npm run build:single <product>/<version> # Single product/version build
116+
117+
# Code Quality
118+
npm run format # Auto-format with Prettier
119+
npm run format:check # Check formatting
120+
npm run typecheck # TypeScript checking
121+
122+
# Utilities
123+
npm run clear # Clear Docusaurus cache
124+
npm run serve # Serve built site locally
125+
```
126+
127+
### Single Product - Start Local Server Examples
128+
129+
```bash
130+
# Identity & Access Management
131+
npm start 1secure
132+
npm start identitymanager/6.2
133+
npm start identitymanager/saas
134+
135+
# Privileged Access Management
136+
npm start privilegesecure/4.2
137+
npm start passwordsecure/9.2
138+
139+
# Endpoint & Directory Management
140+
npm start endpointpolicymanager
141+
npm start auditor/10.7
142+
npm start directorymanager/11.1
143+
144+
# Platform Governance
145+
npm start platgovsalesforce
146+
npm start platgovnetsuite
147+
```
148+
149+
## ⚙️ Configuration
150+
151+
### Product Plugin Pattern
152+
153+
Each product/version requires explicit configuration in `docusaurus.config.js`. You can just copy/paste one of the existing ones, and edit to match your new product or version. Here are some examples:
154+
155+
```javascript
156+
// Single-version product
157+
{
158+
id: 'productname',
159+
path: 'docs/productname',
160+
routeBasePath: 'docs/productname',
161+
sidebarPath: require.resolve('./sidebars/productname.js'),
162+
// ...
163+
}
164+
165+
// Versioned product (dots become underscores)
166+
{
167+
id: 'productname12_0', // 12.0 → 12_0
168+
path: 'docs/productname/12.0',
169+
routeBasePath: 'docs/productname/12.0',
170+
sidebarPath: require.resolve('./sidebars/productname/12.0.js'),
171+
// ...
172+
}
173+
```
174+
175+
### Performance Features (for those curious)
176+
177+
- **Docusaurus Faster** enabled with:
178+
- SWC JS loader and minifier
179+
- Lightning CSS minifier
180+
- Rspack bundler
181+
- Persistent caching (2-5x faster rebuilds)
182+
- SSG worker threads (2x faster static generation)
183+
- MDX cross-compiler cache
184+
185+
### Theme Customization
186+
187+
Key CSS variables in `src/css/custom.css`:
188+
189+
```css
190+
--ifm-color-primary: #2a5298 /* Netwrix blue */ --ifm-color-primary-dark: #254a89 /* Darker variant */ --ifm-font-family-base: 'Inter'
191+
/* Primary font */;
192+
```
193+
194+
## 📝 Content Guidelines
195+
196+
### Frontmatter Template
197+
198+
```yaml
199+
---
200+
title: 'Page Title'
201+
sidebar_label: 'Sidebar Label'
202+
description: 'SEO description'
203+
---
204+
```
205+
206+
### Image Guidelines
207+
208+
- **Location**: `/static/img/product_docs/productname/`
209+
- **Format**: Use `.webp` for performance
210+
- **Paths**: Always absolute from project root
211+
212+
```markdown
213+
![Description](/img/product_docs/productname/feature.webp)
214+
```
215+
216+
## 🚀 Deployment
217+
218+
### Build Process
219+
220+
## Production
221+
222+
Production automatically builds when there is a push to the `main` branch.
223+
224+
## Development
225+
226+
The development site automatically builds when there is a push to the `dev` branch.
227+
228+
## Environment
229+
230+
- **URL**: Uses `RENDER_EXTERNAL_URL` environment variable
231+
- **Memory**: Configured with 8GB limit for large builds
232+
- **Cache**: Persistent caching enabled for faster rebuilds
233+
234+
## 🤝 Contributing
235+
236+
### Development Workflow
237+
238+
1. **Start single-product mode** for faster development:
239+
240+
```bash
241+
npm start productname/version
242+
```
243+
244+
Or
245+
246+
```bash
247+
npm start productname
248+
```
249+
250+
2. **Make changes** to documentation or components
251+
252+
3. **Format code** before committing:
253+
254+
```bash
255+
npm run format
256+
```
257+
258+
4. **Test build** before submitting:
259+
260+
```bash
261+
npm run build:single productname
262+
```
263+
264+
Or
265+
266+
```bash
267+
npm run build:single productname/version
268+
```
269+
270+
### Adding New Products
271+
272+
1. **Create directory structure**:
273+
274+
```bash
275+
mkdir -p docs/newproduct
276+
# or for versioned: mkdir -p docs/newproduct/1.0
277+
```
278+
279+
2. **Add plugin configuration** to `docusaurus.config.js`
280+
281+
3. **Create sidebar configuration** in `sidebars/`
282+
283+
4. **Add to homepage** in `src/components/HomepageFeatures/index.js`
284+
285+
5. **Test with single-product mode**:
286+
287+
```bash
288+
npm start product
289+
```
290+
291+
Or
292+
293+
```bash
294+
npm start product/version
295+
```
296+
297+
## 🛠️ Troubleshooting
298+
299+
### Build Issues
300+
301+
```bash
302+
# Clear cache and rebuild
303+
npm run clear
304+
npm run build
305+
306+
# Memory issues (already configured with 8GB)
307+
NODE_OPTIONS=--max-old-space-size=8192 npm run build
308+
```
309+
310+
### Development Performance
311+
312+
- **Use single-product mode**: `npm start productname`
313+
- **Clear browser cache** if hot reload fails
314+
- **Restart dev server** for configuration changes
315+
316+
## 📚 Resources
317+
318+
- **Docusaurus Documentation**: [docusaurus.io](https://docusaurus.io/)
319+
- **MDX Guide**: [mdxjs.com](https://mdxjs.com/)
320+
- **React Documentation**: [react.dev](https://react.dev/)
321+
322+
## 📄 License
323+
324+
**MIT Licensed**
325+
326+
This documentation is maintained by Netwrix Corporation. For licensing information, please contact [Netwrix](https://www.netwrix.com/).

0 commit comments

Comments
 (0)