Docker Deployment
Deploy IntuneGet using Docker for portable, consistent deployments on any infrastructure.
Prerequisites
- Docker installed (Install Docker)
- Docker Compose (usually included with Docker Desktop)
- Completed Entra ID setup
- A Windows machine for running the local packager
Quick Start
The fastest way to deploy IntuneGet with Docker:
The application will be available at http://localhost:3000
Step-by-Step Setup
Clone the Repository
Configure Environment Variables
Copy the example environment file:
Edit .env.local and fill in all required values:
Start with Docker Compose
Verify Deployment
Check that everything is running:
Expected health response:
Docker Compose Configuration
The included docker-compose.yml provides a production-ready configuration with SQLite persistence:
Data Persistence
The intuneget-data volume ensures your SQLite database persists across container restarts and updates. Never remove this volume unless you want to start fresh.
How Environment Variables Work in Docker
Next.js normally inlines NEXT_PUBLIC_* variables into the client JavaScript at build time. Since the Docker image is built without your specific configuration, IntuneGet uses runtime injection to ensure these values are available in the browser.
When a page is requested, the server reads NEXT_PUBLIC_AZURE_AD_CLIENT_ID from the container's environment and injects it into the HTML. Client-side code (such as MSAL authentication) reads this injected value, so your sign-in and consent URLs always contain the correct client ID.
No Build Args Needed
You do not need to pass environment variables as Docker build arguments. Simply set them in the environment section of your docker-compose.yml (or via .env.local) and they will be picked up at runtime.
Reverse Proxy Configuration
For production, place IntuneGet behind a reverse proxy for SSL termination:
SSL/TLS
Always Use HTTPS in Production
IntuneGet handles authentication tokens and interacts with Microsoft APIs. Always use HTTPS in production environments.
Updating Your Deployment
To update to the latest version:
Database Migrations
SQLite database schema is managed automatically. After major updates, the schema will be updated on application startup. Check the release notes for any manual migration steps if needed.
Production Checklist
Common Issues
Next Steps
Your Docker deployment is ready! Check the troubleshooting guide if you run into any issues.
View Troubleshooting Guide