This document outlines the setup requirements for running OIB Deployer either locally or through self-hosting via GitHub Pages.
- Microsoft Entra ID (Azure AD) tenant with administrative access
- Microsoft Intune license
- Node.js 20.19+ (or 22.12+) and npm
Before running the application, you must create an Entra ID App Registration:
- Navigate to Entra Portal → App registrations
- Click New registration
- Configure the registration:
- Name:
OIB Deployer(or your preferred name) - Supported account types: Accounts in this organizational directory only
- Redirect URI:
- For local development:
http://localhost:5173 - For GitHub Pages:
https://yourusername.github.io/your-repo-nameor your custom domain
- For local development:
- Name:
- Click Register
- Note the Application (client) ID - you'll need this for configuration
- Under API permissions, add:
- Microsoft Graph:
DeviceManagementConfiguration.ReadWrite.All(Delegated permission) - (Optional) Grant admin consent for your organization
- Microsoft Graph:
- Under Authentication, click Add a platform and select Single-page application, then add your redirect URI(s) there (this app uses the authorization code + PKCE flow via MSAL.js, not the legacy implicit grant — do not enable implicit grant tokens)
git clone https://github.com/yourusername/OIBDeployer.git
cd OIBDeployer
npm installCreate a .env.local file in the project root:
VITE_ENTRA_CLIENT_ID=your-app-registration-client-id-hereReplace your-app-registration-client-id-here with the Application (client) ID from your Entra ID App Registration.
Optionally, also set:
VITE_GITHUB_TOKEN=your-github-personal-access-tokenVITE_GITHUB_TOKEN raises the GitHub API rate limit from 60 to 5000 requests/hour (create a token at github.com/settings/tokens with the public_repo scope).
npm run devThe application will be available at http://localhost:5173
Fork this repository to your GitHub account.
In your forked repository:
- Go to Settings → Secrets and variables → Actions
- Click the Variables tab
- Add a new repository variable:
- Name:
ENTRA_CLIENT_ID - Value: Your Entra ID App Registration Application (client) ID
- Name:
- (Optional) To avoid GitHub API rate limiting during production use, click the Secrets tab and add a new repository secret:
- Name:
GH_API_TOKEN - Value: A GitHub personal access token with the
public_reposcope
- Name:
Update your Entra ID App Registration redirect URI to match your deployment URL:
- GitHub Pages:
https://yourusername.github.io/repository-name - Custom domain:
https://your-custom-domain.com
- Go to repository Settings → Pages
- Under Source, select GitHub Actions
- The deployment workflow will automatically trigger on pushes to the main branch
If using a custom domain:
- Add a
CNAMEfile to thepublicfolder with your domain name - Configure DNS to point to GitHub Pages
- Update the Entra ID App Registration redirect URI accordingly
npm run buildThe built files will be in the dist directory.
| Variable | Description | Required |
|---|---|---|
VITE_ENTRA_CLIENT_ID |
Entra ID App Registration Application (client) ID | Yes |
VITE_GITHUB_TOKEN |
GitHub personal access token (public_repo scope), raises the GitHub API rate limit from 60 to 5000 requests/hour |
No |