What is mgid?

mgid (also known as csoftadm) is a modular server management daemon which provides users on a multi-user Unix system with access to a variety of administrative functions, through a number of different user interfaces. The mgid daemon and client interfaces have been undergoing steady development since 1999. mgid is used in production server clusters at csoft.net hosting. In addition to administrative interfaces, mgid also facilitates the automated synchronization of data between servers in high-availability clusters.

The software is mature and well-maintained thanks to constant feedback from users. It is released under a revised BSD license.

This website is currently in development.

Client software
The official C/C++ client library, libmgid. Perl scripts can use the Perl XS module MGID.

There is a lightweight command-line client, mgid(1). Implemented in C, it provides command-line completion, an interactive mode and a non-interactive mode suitable for scripting.

The web interface, implemented in C, is optimized for FastCGI and requires the PerCGI library. It is entirely themeable and provides multi-language support.

A GUI client for remote workstations and portable devices (built using the Agar library) is currently under development.
Server software

The mgid server is a modular, efficient and fully privilege-separated daemon that communicates with client programs over TCP/IP or Unix sockets. Here are some of the modules included in the base mgid distribution:

  • Alias::Postfix: Mail addresses and classification programs (Postfix+ mailprocd)
  • Alias::Qmail: E-mail delivery (Qmail; maintainer needed)
  • Alias::Sendmail: E-mail delivery (Sendmail; maintainer needed)
  • AnonFTP: Anonymous FTP servers for users (maintainer needed)
  • Apache: Generate VirtualHost directives for Apache (name-based or mod_vhost_alias methods)
  • Billing: User interface to billing system
  • Cluster: Redundant cluster management and synchronization
  • Cvs: Management of CVS-only accounts
  • Dns: Interface to domain name server zones (BIND named.conf)
  • Daemon: Daemon supervision
  • Db::MySQL: Databases for MySQL
  • Db::PgSQL: Databases for PostgreSQL
  • File: File management interface
  • Group: User interface to Unix groups
  • Jabber: Jabber service for users
  • Logs: Logfile configuration and rotation (BSD newsyslog.conf)
  • MailList: Mailing lists (Mailman)
  • Mbx: Management of POP3/IMAP/webmail accounts
  • Periodic: Generic interface for periodic maintenance tasks
  • Remote: Queries between multiple mgid servers
  • Sales: Billing system for subscriptions
  • Subacct: Restricted user sub-accounts
  • Systat: Return server statistics such as I/O and interrupts
  • Svn: Management of Subversion accounts
  • Users: Addition, removal and management of user accounts
  • UserMap: Centralized database mapping usernames to servers
  • Webmail: Mail client interface