Skip to content

Netskope MacOS MDM Installation Config Generator (run locally through docker if desired.

Notifications You must be signed in to change notification settings

neerdael-nl/netskope-mac-mdm-config-gen

Repository files navigation

# Netskope MDM Script Generator (JAMF, Workspace ONE, Microsoft Intune, Kandji)

This project is a web application that generates custom configuration scripts for Netskope MDM deployment on JAMF, VMWare Workspace One, Kandji, and Microsoft Intune. It consists of a React frontend and a Node.js backend, which work together to create a zip file containing customized installation scripts and configuration files.

## Features

- Generate custom plist files for Netskope configuration
- Create pre-install and post-install scripts with user-provided parameters
- Package all necessary files into a downloadable zip archive
- Support for optional enrollment tokens for secure enrollment
- API endpoint with Swagger documentation for programmatic access

## Prerequisites

- Docker and Docker Compose (recommended)
- Node.js (v14 or later) and npm (v6 or later) for local development

## Installation and Running

### Preferred Method: Docker Compose

1. Clone the repository:
   ```
   git clone https://github.com/neerdael-nl/netskope-mac-mdm-config-gen.git
   cd netskope-mac-mdm-config-gen
   ```

2. Run the application using Docker Compose:
   ```
   docker-compose up -d
   ```

3. Open your browser and navigate to `http://localhost:3001`.

### Alternative Methods

For local development or building your own Docker image, refer to the "Installation and Running Options" section below.

## Usage

### Web Interface

#### Self-hosted Version

A self-hosted version of this application is available at https://mdm.thepi.es (on a best effort basis).

1. Open your browser and go to `https://mdm.thepi.es`.
2. Fill in the required fields:
   - MDM Platform
   - Tenant Name
   - Top Level Domain
   - Organization Key
   - Enrollment Auth Token (optional)
   - Enrollment Encryption Token (optional)
   - Email (optional, for testing only!)
3. Click the "Generate Configuration" button.
4. Download the generated zip file containing the custom configuration scripts and files.

#### Local Version

Follow the same steps as above, but use `http://localhost:3001` instead of `https://mdm.thepi.es`.

### API

The application provides an API endpoint for programmatic access. 

#### Self-hosted Version

Swagger documentation for the self-hosted version is available at `https://mdm.thepi.es/api-docs`.

To generate configuration files using the self-hosted API:

1. Send a POST request to `https://mdm.thepi.es/api/generate` with the required parameters.
2. Receive a download link in the response.
3. Use the download link to retrieve the generated zip file (valid for 5 minutes).

Example using curl for the self-hosted version:

##### Generate files

   ```
   curl -X POST https://mdm.thepi.es/api/generate \
   -H "Content-Type: application/json" \
   -d '{
     "mdmPlatform": "Microsoft Intune",
     "tenantName": "example",
     "topLevelDomain": "goskope.com",
     "organizationKey": "abc123",
     "enrollmentAuthToken": "authToken123",
     "enrollmentEncryptionToken": "encryptionToken456"
   }'
   ```

##### Download the file using the link from the previous response

   ```
   curl -O -J https://mdm.thepi.es/api/download/{fileId}
   ```

#### Local Version

For the local version, replace `https://mdm.thepi.es` with `http://localhost:3001` in the above examples.

## Installation and Running Options

### 1. Local Development

1. Clone the repository:
   ```
   git clone https://github.com/neerdael-nl/netskope-mac-mdm-config-gen.git
   cd netskope-mac-mdm-config-gen
   ```

2. Install dependencies:
   ```
   npm install
   ```

3. Start the development servers:
   ```
   npm start
   ```

   This will start both the backend server (on port 3001) and the frontend development server (on port 3000).

4. Open your browser and navigate to `http://localhost:3000`.

### 2. Production Build (Local)

1. Follow steps 1-2 from the Local Development section.

2. Build the React frontend:
   ```
   cd client
   npm run build
   cd ..
   ```

3. Start the production server:
   ```
   npm run start:prod
   ```

### 3. Docker (Building Your Own Image)

1. Clone the repository (if you haven't already).

2. Build the Docker image:
   ```
   docker build -t netskope-mdm-generator .
   ```

3. Run the container:
   ```
   docker run -p 3001:3001 netskope-mdm-generator
   ```

4. Open your browser and navigate to `http://localhost:3001`.

### 4. Docker Hub Image

1. Pull the image from Docker Hub:
   ```
   docker pull johnneerdael/netskope-mdm-generator:latest
   ```

2. Run the container:
   ```
   docker run -p 3001:3001 johnneerdael/netskope-mdm-generator:latest
   ```

3. Open your browser and navigate to `http://localhost:3001`.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.