Generated page. Written from IdaMilk/DomainJoin at commit 02e7cee on 2026-07-28. Deployment coordinates are generalised per the wiki's redaction policy.
DomainJoin
What is it?
A web tool for creating Active Directory users in bulk. An administrator authenticates with a domain admin account, builds a queue of users, assigns AD groups, and provisions them all in one pass. Created credentials are shown in a transaction log at the end of the session.
Purpose
Onboarding several people at once through Active Directory Users and Computers is slow and error-prone — the same fields, the same group assignments, repeated by hand. This turns that into a form and a queue.
Showing created credentials once, in a session transaction log, is a deliberate design point: the administrator gets what they need to distribute without those credentials being stored anywhere.
How it Works
A React front end over a small Express backend. Authentication and directory operations use ldapts against the domain controller, with the administrator's own credentials — the tool holds no service account, so every action is performed as, and audited against, the signed-in admin.
It runs as a Windows container, which is unusual and load-bearing: the Active Directory PowerShell module only exists on Windows, so Docker Desktop must be in Windows containers mode. This is the only containerised Windows workload in the organisation.
Core Features
| Feature | Purpose |
|---|---|
| Domain admin authentication | Sign in with an existing AD admin account |
| User queue | Build up multiple users before committing |
| Group assignment | Assign AD groups per user |
| Bulk provisioning | Create all queued accounts in one operation |
| Transaction log | Created credentials, shown once at session end |
Tech Stack
| Technology | Version | Purpose |
|---|---|---|
| React | ^18.2.0 | Front end |
| Express | ^4.18.2 | Backend API |
| ldapts | ^4.0.0 | Active Directory operations |
| framer-motion | ^10.16.4 | UI animation |
| lucide-react | ^0.292.0 | Icons |
| Vite | — | Build tool |
| cors | ^2.8.5 | Cross-origin support |
Note ldapts is pinned at v4 here while the SunApps Gateway uses v8 — four major versions apart, for the same directory operations.
Operations
Deployed as a Windows container via docker-compose.yml, listening on port 3001. Configuration comes from .env, documented in .env.example; one build-time variable pre-fills the default domain controller in the login form.
Two things worth weighing before running this:
- It requires domain admin credentials to be typed into a web form. That is inherent to what it does — creating AD accounts requires that privilege — but it means the tool's exposure surface is domain admin exposure. It belongs on a restricted host, reachable only by the people who already hold that privilege, and not published beyond them.
- Created passwords appear in the browser. Convenient, and correct in that nothing is persisted, but the session should be treated as sensitive while open.
Repository
| Repository | IdaMilk/DomainJoin |
| Version | 1.0.0 |
| Primary language | JavaScript (React) |
| Files | 15 |
| Last activity | 2026-05-21 |
| Status | Active |
The README is clear and practical, with a documented environment variable table — good for a tool of this size.