## 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 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 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/portal`. ''The portal licensing is currently unclear'' (but should soon be properly freely licensed -- ClintonEbadi <>) = Building = Run `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/out/`. `mlt.conf` contains CGI publish path (modify this to suit your system if building locally). These wrappers are generated automatically by `mlt`. To recompile and publish, enter the portal source directory and run `~hcoop/portal-tools/bin/mlt`: {{{ become_hcoop cd ~/portal ~portal-tools/bin/mlt }}} `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 /etc/hcoop.header | sed "s/TITLE/$1/g"` * hcoop_footer is the one line script `cat /etc/hcoop.footer` * You need /etc/hcoop.header and /etc/hcoop.footer, which are {{{ TITLE

TITLE

}}}{{{
}}} == Application 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/` Appears to be unused (does not build) * `listaddrs/` '''Unknown''' * `mailman/` '''Unknown''' * `passgen/` Password reset tool * `remind/` Low balance reminder * `static/` Public member directory * `vmailpasswd` Vmail password changing = 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); }}} ---- CategorySystemAdministration