{"id":46322202,"url":"https://github.com/plugorgau/ugmm","last_synced_at":"2026-03-04T15:32:01.556Z","repository":{"id":14206940,"uuid":"16913634","full_name":"plugorgau/ugmm","owner":"plugorgau","description":"User Group Membership Management ","archived":false,"fork":false,"pushed_at":"2026-02-08T07:46:32.000Z","size":522,"stargazers_count":3,"open_issues_count":3,"forks_count":5,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-02-08T12:59:41.638Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plugorgau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-02-17T13:27:25.000Z","updated_at":"2026-02-08T05:51:12.000Z","dependencies_parsed_at":"2025-10-04T11:23:46.738Z","dependency_job_id":"929ce60c-d364-470d-938c-1f20d0169f41","html_url":"https://github.com/plugorgau/ugmm","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/plugorgau/ugmm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fugmm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fugmm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fugmm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fugmm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plugorgau","download_url":"https://codeload.github.com/plugorgau/ugmm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fugmm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30084968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T13:22:36.021Z","status":"ssl_error","status_checked_at":"2026-03-04T13:20:45.750Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-04T15:32:00.948Z","updated_at":"2026-03-04T15:32:01.540Z","avatar_url":"https://github.com/plugorgau.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Perth Linux Users Group - User Group Members Management\n\nUGMM is a simple tool written to manager PLUG's members stored in an\nLDAP database.\n\nAn LDAP database may not be the best tool for storing this data,\nhowever it does provide central authentication which was key at the\ntime UGMM was written.\n\n## Building\n\nBuild a debian package to install, rather than trying to run from\nsource. This allows easy updating of production hosts, with a rollback\nby installing the previous version.\n\nTo build, run\n```\ndebuild -i -us -uc -b\n```\n\nThis will give you a file like plug-ugmm_0.8.0_all.deb which you can then install with the command\n```\nsudo apt-get install plug-ugmm_0.8.0_all.deb\n```\n\n## LDAP Configuration\n\nUGMM makes a few assumptions about the schema of the LDAP server:\n\n1. The [RFC 2307bis][rfc2307bis] schema must be loaded. Note that this\n   schema conflicts with the `nis` schema (aka RFC 2307) distributed\n   by OpenLDAP. In particular, UGMM depends on the following features:\n    * `posixAccount` is an auxiliary object class that can be combined\n      with structural object classes like `groupOfNames`.\n    * `shadowExpire` defines an ordering.\n2. The [`namedobject` schema][namedobject] must be loaded. This is\n   used for the `maxUid` entry to keep track of the last assigned\n   IDs. The version distributed with OpenLDAP is fine.\n3. The OpenLDAP `memberof` overlay must be loaded, to automatically\n   keep `member` / `memberOf` attributes in sync.\n4. The `plugpen` schema must be loaded. This is a custom schema used\n   to keep track of payments made by members. A copy of this schema is\n   installed to `/etc/ldap/schemas`.\n\nIt also expects a certan hierarchy below the base DN:\n\n1. an `ou=Users` organizational unit as the parent for users.\n2. an `ou=Groups` organizational unit as the parent for groups.\n3. an `ou=UPG,ou=Groups` organizational unit for [user private groups][UPG].\n4. a `cn=maxUid,ou=Users` entry to manage the highest issued user ID.\n5. a number of groups under `ou=Groups`:\n    * `currentmembers`, `pendingmembers`, `overduemembers`, and\n      `expiredmembers` groups to manage membership status.\n    * A `shell` group to track which members have requested shell accounts.\n    * A `committee` group to control access to the administrative\n      portions of the app.\n\nThere are ldif files in `examples/ldap` that can be used as reference.\n\n[rfc2307bis]: https://datatracker.ietf.org/doc/html/draft-howard-rfc2307bis-02\n[namedobject]: https://datatracker.ietf.org/doc/html/draft-stroeder-namedobject\n[UPG]: https://wiki.debian.org/UserPrivateGroups\n\n## System package configuration\n\nCopy `/usr/share/plug-ugmm/lib/PLUG/ldapconnection.inc.php.example` to\n`/etc/private/ldapconnection.inc.php` and modify it to suit your LDAP\ndatabase.\n\nThis config file contains credentials for connecting to the LDAP\ndatabase, so read access should be limited to the user php is running\nas (probably `www-data`).\n\n## Web server configuration\n\nThese two sections assume that your desired web server software is\nalready installed.  They also assume that your DNS and firewall settings\nare configured appropriately.\n\n### Setting up UGMM to run under Apache\n\nFirst, create/edit an Apache virtual host config file (with .conf\nextension) in `/etc/apache2/sites-available/`.  Fill out the virtual\nhost details and HTTPS settings if not done already.  Then, copy-paste\na snippet from\n`/usr/share/doc/plug-ugmm/examples/apache/plug-ugmm.conf` (or\n`/usr/share/doc/plug-ugmm/examples/apache/plug-ugmm.section.conf` if\nrunning under the /ugmm URL path instead of on a dedicated Apache\nvirtual host) into the virtual host file to activate UGMM at a given\npath under your site's URL.\n\nIf creating a new virtual host file, run `sudo a2ensite \u003csitename\u003e`\nwhere \"\\\u003csitename\\\u003e\" is the basename of your file without the extension.\n\nLastly, run these commands:\n\n```\nsudo a2enmod rewrite\nsudo apachectl -t\n# Do not proceed if the previous command reported errors\nsudo service apache2 restart\n```\n\n### Setting up UGMM to run under Nginx\n\nFirst, create/edit an Nginx virtual host config file (with .conf\nextension) in `/etc/nginx/sites-available/`.  Fill out the virtual\nhost details and HTTPS settings if not done already.  Then, copy-paste\na snippet from\n`/usr/share/doc/plug-ugmm/examples/nginx/plug-ugmm.conf` (or\n`/usr/share/doc/plug-ugmm/examples/nginx/plug-ugmm.section.conf` if\nrunning under the /ugmm URL path instead of on a dedicated Nginx\nvirtual host) into the virtual host file to activate UGMM at a given\npath under your site's URL.\n\nIf creating a new virtual host file, run\n\n```\nsudo ln -s ../sites-available/\u003cconffile\u003e /etc/nginx/sites-enabled/\n```\nwhere \"\\\u003cconffile\\\u003e\" is the basename of your file.\n\nIf necessary, modify the `fastcgi_pass` statement to use the correct FPM\nsocket path.\n\nLastly, run these commands:\n\n```\nsudo nginx -t\n# Do not proceed if the previous command reported errors\nsudo service nginx reload\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugorgau%2Fugmm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplugorgau%2Fugmm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugorgau%2Fugmm/lists"}