## page was renamed from Portal/Building The HCoop portal runs https://members.hcoop.net and https://join.hcoop.net, generates the [[http://hcoop.net/who|member directory]], and manages the vmail user database. <> = Build Requirements = The portal requires [[http://git.hcoop.net/?p=hcoop/mlt.git;a=summary|mlt]] (an html templating system for smlnj) and [[http://git.hcoop.net/?p=hcoop/smlsql.git;a=summary|smlsql]] (postgresql bindings for smlnj). They are managed in the standard hcoop git repositories. The password generating tool also relies upon [[https://packages.debian.org/search?keywords=apg|apg]] (automatic password generator). The portal build utilities stored in and installed to `~hcoop/portal-tools/...` * `.../src`: checkouts of mlt and smlsql (portal build file references smlsql from here) * `.../etc`: location of default `mlt.conf`, `hcoop.header`, `hcoop.footer` * `.../bin`: `mlt` and `hcoop_header` binaries * `.../lib32`: 32-bit libraries needed by the smlsql * `.../cgi`: portal cgi binaries mlt and smlsql licensed under the LGPL version 2.1 or any later version. = Source = The portal source lives in module `portal` of [[http://git.hcoop.net/?p=hcoop/portal.git;a=summary|our git server]]. The main check-out is in `/afs/hcoop.net/user/h/hc/hcoop/portal3`. The portal source is available under the GPLv3 or any later version. = Building = Run `/afs/hcoop.net/common/etc/scripts/become-hcoop` before modifying files in the main check-out or running any git commands that would modify it. There are small CGI wrappers which just run compiled binaries in `~hcoop/portal-tools/cgi/`. The file `mlt.conf` contains the CGI installation path (modify this to suit your system if building locally). These wrappers are generated automatically by `mlt`. == Publishing == To recompile and publish, login to the webserver hosting the portal (`navajos` as of 2018-03, but verify in the `hcoop.net` domtool configuration), enter the portal source directory, and run `~hcoop/portal-tools/bin/mlt`: {{{ /afs/hcoop.net/common/etc/scripts/become-hcoop cd ~/portal3 ~/portal-tools/bin/mlt }}} == Regenerating Page Header == `header.mlt` and `footer.mlt` are built from assorted other files. Running `make` in a check-out directory should build them. See the Makefile for how they're built. Note that `make` '''won't''' publish changes that you make onto the real web sites; you must use `mlt` for that. Needed files for building: * hcoop_header is the one line script `cat $prefix/etc/hcoop.header | sed "s/TITLE/$1/g"` * hcoop_footer is the one line script `cat $prefix/etc/hcoop.footer` * You need `~hcoop/portal-tools/etc/hcoop.{header,footer}` (currently not tracked in git) == Other Applications Within the Portal == There are some subdirectories of `portal` that contain different web apps, like `app` (the source for join.hcoop.net). '''You must run `mlt` separately in any of these directories to publish changes in it'''. These include: * `app/` The Join script * `contact/` Emergency contact directory for admins * `listaddrs/` Lists all hcoop member email addresses * `mailman/` portal subscription helper program * `passgen/` Password reset tool * `remind/` Low balance reminder * `static/` Public member directory generator * `vmailpasswd` Vmail password changing = Maintenance = == Cron Jobs == The portal source contains a crontab which should be installed and run under the `hcoop` user. This sends out monthly dues reminders and periodically generates semi-static pages. == Adding Machine == To support user requests for a machine, insert a `WebNode` into the database. The Debian version should be the release name (e.g. "squeeze"). {{{ INSERT INTO WebNode (id, name, descr, debian) VALUES ((select max(id)+1 from WebNode), $HOST, $DESCRIPTION, $DEBIANVERSION); }}} If the machine should show up in the portal for members to request permissions or packages on, add it to `ActiveWebNodes`. {{{ insert into ActiveWebNode VALUES ((select id from WebNode where name = '$HOST')); }}} ---- CategorySystemAdministration