Skip to main content

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

FeaturePurpose
Domain admin authenticationSign in with an existing AD admin account
User queueBuild up multiple users before committing
Group assignmentAssign AD groups per user
Bulk provisioningCreate all queued accounts in one operation
Transaction logCreated credentials, shown once at session end

Tech Stack

TechnologyVersionPurpose
React^18.2.0Front end
Express^4.18.2Backend API
ldapts^4.0.0Active Directory operations
framer-motion^10.16.4UI animation
lucide-react^0.292.0Icons
ViteBuild tool
cors^2.8.5Cross-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

RepositoryIdaMilk/DomainJoin
Version1.0.0
Primary languageJavaScript (React)
Files15
Last activity2026-05-21
StatusActive

The README is clear and practical, with a documented environment variable table — good for a tool of this size.