A web-based management GUI for Samba Active Directory Domain Controllers. Manage users, groups, computers, DNS records, and Group Policy Objects remotely through your browser — no CLI required.
- Multi-server dashboard — add and manage multiple Samba DC servers from one place
- User management — create, edit, enable/disable, and delete AD users
- Group management — create security/distribution groups, manage memberships
- Computer management — view, enable/disable, and remove computer accounts
- DNS management — browse zones, add and delete A, AAAA, CNAME, MX, TXT, NS, PTR records (AD-integrated DNS via LDAP)
- GPO management — create and configure Group Policy Objects, link/unlink to OUs
- First-run setup — guided setup wizard on fresh install; no config files needed
| Component | Library |
|---|---|
| Web framework | Axum 0.7 |
| Async runtime | Tokio |
| Database | SQLite via sqlx |
| Templates | Tera (server-side HTML) |
| LDAP client | ldap3 |
| Password hashing | bcrypt |
| UI | Bootstrap 5 + Bootstrap Icons |
- A running Samba AD Domain Controller accessible over LDAP/LDAPS
- The bind account needs read/write access to the relevant AD partitions
- Linux x86_64 or ARM64 (pre-built binaries provided)
Download the latest binary from the Releases page for your architecture:
| Platform | Binary |
|---|---|
| Linux x86_64 | easydc-linux-x86_64 |
| Linux ARM64 | easydc-linux-arm64 |
chmod +x easydc-linux-x86_64
./easydc-linux-x86_64The server starts on http://localhost:3000.
On first run, navigate to http://localhost:3000/setup to create the admin account. You will be redirected automatically if no account exists yet.
To have EasyDC start automatically on boot, create a systemd unit file.
- Copy the binary to a system path:
sudo cp easydc-linux-x86_64 /usr/local/bin/easydc
sudo chmod +x /usr/local/bin/easydc- Create a dedicated user and working directory:
sudo useradd -r -s /bin/false easydc
sudo mkdir -p /var/lib/easydc
sudo chown easydc:easydc /var/lib/easydc- Create the service file:
sudo nano /etc/systemd/system/easydc.servicePaste the following:
[Unit]
Description=EasyDC - Samba AD Management GUI
After=network.target
[Service]
Type=simple
User=easydc
WorkingDirectory=/var/lib/easydc
ExecStart=/usr/local/bin/easydc
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target- Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable easydc
sudo systemctl start easydc- Check it is running:
sudo systemctl status easydcThe web interface will be available at http://<server-ip>:3000.
The SQLite database is stored in
/var/lib/easydc/easydc.db.
After logging in, click Add Server on the dashboard and fill in:
| Field | Example |
|---|---|
| Name | My DC |
| LDAP URL | ldap://192.168.1.10 or ldaps://dc.domain.local |
| Bind DN | CN=Administrator,CN=Users,DC=domain,DC=local |
| Bind Password | your password |
| Skip TLS Verify | enable for self-signed certificates |
- Password changes require LDAPS (port 636). Plain LDAP connections will reject
unicodePwdmodifications. - DNS manages records stored in the AD DNS partition (
CN=MicrosoftDNS,DC=DomainDnsZones). Internal zones (_msdcs,RootDNSServers) are hidden automatically. - GPO manages LDAP metadata (name, status, OU links). Editing actual policy settings (registry values, scripts, etc.) requires direct access to SYSVOL on the DC.
- The SQLite database (
easydc.db) is created automatically on first run in the working directory.
MIT — see LICENSE.