Unity Web Portal is a PHP application built in top of MariaDB and LDAP which acts as a central user portal for high-performance-computing clusters. Features include:
- Automation of LDAP object/user creation with SSH public key configurations
- Custom user group creation in LDAP
- Cluster notices
- Content Management
- Modularity for external websites
- Automatic emails to admins/emails
- Robust branding customization
- Custom user options
- Featured admin panel
- Many more features, and more to come!
- Web server prerequisites
- Accessible OpenLDAP server
- Accessible MySQL / MariaDB server
- Accessible SMTP Server
- Some HTTP Authentication mechanism (such as Shibboleth SP)
- Composer (
apt install composer
on Ubuntu) - PHP Extensions
php-ldap
php-curl
php-redis
php-cli
php-mysql
php-pdo
- Composer packages
cd
to this repository- Install packages
composer update
- Setup config file
config/config.ini
according to your site deployment - Setup branding file
config/branding/config.ini
according to your site deployment - Point your web server's document root to
webroot
in this repo
The scope of this project ends at being responsible for the LDAP user database. We recommend production deployments to set up scripts which detect changes in LDAP and then perform further actions. For example, a script can be used to create Slurm scheduler accounting roles based on the LDAP information created by this website.
External to this codebase, you must configure authentication using your web server. You must retrict the following:
/panel
- users who are signed in/admin
- admins who are signed in
The update process is similar to the installation process:
- Clone the release and follow installation instructions 1 and 2 from above.
- Copy the following folders from the old installation to the new one:
config
webroot/assets/footer_logos
We recommend a deployment where each version of the portal is its own clone, then just change a symlink to point to the new version. This way a rollback is much easier.
Example folder structure, where ->
indicates a symlink:
unity-web-portal
unity-web-portal -> unity-web-portal-1.1.0
unity-web-portal-1.0.0-RC1
unity-web-portal-1.0.0-RC2
unity-web-portal-1.1.0
Below you will find specific instructions for moving between version:
config/branding/config.ini.default
has some new fields that will need to be overriden by the site config if needed:pi_approve*
in themail
sectionhome
in thepage
section- The entire
loginshell
section
- In SQL db be sure to add the
home
content management row