time-based prepaid cards, session monitor. woop!
[freeside.git] / htdocs / docs / signup.html
1 <head>
2   <title>Signup server</title>
3 </head>
4 <body>
5   <h1>Signup server</h1>
6 For security reasons, the signup server should run on an external public
7 webserver.  On this machine, install:
8 <ul>
9   <li>A web server, such as <a href="http://www.apache-ssl.org">Apache-SSL</a> or <a href="http://www.apache.org">Apache</a>
10   <li><a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a>
11   <li><a href="http://www.perl.com/CPAN/doc/relinfo/INSTALL.html">Perl</a> (at least 5.004_05 for the 5.004 series or 5.005_03 for the 5.005 series.  Don't enable experimental features like threads or the PerlIO abstraction layer.)
12   <li><a href="http://www.perl.com/CPAN/modules/by-module/Text/">Text::Template</a>
13   <li><a href="http://www.sisd.com/useragent">HTTP::Headers::UserAgent</a> (version 2.0 or higher; not yet indexed correctly on CPAN)
15   <li><a href="man/FS/SignupClient.html">FS::SignupClient</a> (copy the fs_signup/FS-SignupClient directory to the external machine, then: perl Makefile.PL; make; make install)
16 </ul>
17 Then:
18 <ul>
19   <li>Add the user `freeside' to the the external machine.
20   <li>Copy or symlink fs_signup/FS-SignupClient/cgi/signup.cgi into the web server's document space.
21   <li>Enable CGI execution for files with the `.cgi' extension.  (with <a href="http://www.apache.org/docs/mod/mod_mime.html#addhandler">Apache</a>)
22   <li>Create the /usr/local/freeside directory on the external machine (owned by the freeside user).
23   <li>touch /usr/local/freeside/fs_signupd_socket; chown freeside /usr/local/freeside/fs_signupd_socket; chmod 600 /usr/local/freeside/fs_signupd_socket
24   <li>Use <a href="http://www.apache.org/docs/suexec.html">suEXEC</a> or <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">setuid</a> (see <a href="install.html">install.html</a> for details) to run signup.cgi as the freeside user.
25   <li>Append the identity.pub from the freeside user on your freeside machine to the authorized_keys file of the newly created freeside user on the external machine(s).
26   <li>Run <pre>fs_signup_server <i>user</i> <i>machine</i> <i>agentnum</i> <i>refnum</i></pre> on the Freeside machine.
27   <ul>
28     <li><i>user</i> is a user from the mapsecrets file.
29     <li><i>machine</i> is the name of the external machine.
30     <li><i>agentnum</i> and <i>refnum</i> are the <a href="schema.html#agent">agent</a> and <a href="schema.html#part_referral">referral</a>, respectively, to use for customers who sign up via this signup server.
31   </ul>
32 </ul>
33 Optional:
34 <ul>
35   <li>If you create a <b>/usr/local/freeside/ieak.template</b> file on the external machine, it will be sent to IE users with MIME type <i>application/x-Internet-signup</i>.  This file will be processed with <a href="http://search.cpan.org/doc/MJD/Text-Template-1.23/Template.pm">Text::Template</a> with the following variables available:
36   <ul>
37     <li>$ac - area code of selected POP
38     <li>$exch - exchange of selected POP
39     <li>$loc - local part of selected POP
40     <li>$username
41     <li>$password
42     <li>$email_name - first and last name
43   </ul>
44   (an example file is included as <b>fs_signup/ieak.template</b>)
45   <li>If you create a <b>/usr/local/freeside/cck.template</b> file on the external machine, the variables defined will be sent to Netscape users with MIME type <i>application/x-netscape-autoconfigure-dialer-v2</i>.  This file will be processed with <a href="http://search.cpan.org/doc/MJD/Text-Template-1.23/Template.pm">Text::Template</a> with the following variables available:
46   <ul>
47     <li>$ac - area code of selected POP
48     <li>$exch - exchange of selected POP
49     <li>$loc - local part of selected POP
50     <li>$username
51     <li>$password
52     <li>$email_name - first and last name
53   </ul>
54   (an example file is included as <b>fs_signup/cck.template</b>).  See the <a href="http://help.netscape.com/products/client/mc/acctproc4.html">Netscape documentation</a> for more information.
55   <li>If there are any entries in the <i>prepay_credit</i> table, a user can enter a string matching the <b>identifier</i> column to receive the credit specified in the <b>amount</b> column, and/or the time specified in the <b>seconds</b> column (for use with the <a href="session.html">session monitor</a>), after which that <b>identifier</b> is no longer valid.  This can be used to implement pre-paid "calling card" type signups.  The <i>bin/generate-prepay</i> script can be used to populate the <i>prepay_credit</i> table.
56 </ul>
57 </body>