6d17ead3f400c54eed09b5011b9c330bbc3b5740
[freeside.git] / httemplate / docs / selfservice.html
1 <head>
2   <title>Signup, self-service and reseller interfaces</title>
3 </head>
4 <body>
5   <h1>Signup, self-service and reseller interfaces</h1>
6 For security reasons, the self-service interface should run on a public
7 machine, not the backend Freeside server.  On the public machine, install:
8 <ul>
9   <li>A web server, such as <a href="http://www.apache.org">Apache</a> (<a href="http://www.modssl.org/">mod_ssl</a> or <a href="http://www.apache-ssl.org">Apache-SSL</a> highly recommended)
10
11   <li><a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a>
12   <li><a href="http://www.perl.com/CPAN/doc/relinfo/INSTALL.html">Perl</a>.
13   <li><a href="http://search.cpan.org/search?dist=Text-Template">Text::Template</a>
14   <li><a href="http://search.cpan.org/search?dist=Storable">Storable</a>
15   <li><a href="http://search.cpan.org/search?dist=Business-CreditCard">Business-CreditCard</a>
16   <li><a href="http://search.cpan.org/search?dist=HTTP-BrowserDetect">HTTP::BrowserDetect</a>
17
18   <li><a href="man/FS/SelfService.html">FS::SelfService</a> (copy the fs_selfservice/FS-SelfService directory to the external machine, then: perl Makefile.PL; make; make install)
19 </ul>
20 Then:
21 <ul>
22   <li>Set the <a href="../config/config.cgi#unclassified"><i>signup_server-default_agentnum</i></a> configuration value to a default <a href="../browse/agent.cgi">agent number</a>.
23   <li>Set the <a href="../config/config.cgi#unclassified"><i>signup_server-default_refnum</i></a> to a default <a href="../browse/part_referral.cgi">advertising source</a>.
24   <li>Add the user `freeside' to the the external machine.
25   <li>Copy or symlink the <code>fs_selfservice/FS-SelfService/cgi/</code> directory into the web server's document space.  Optionally, customize the .html templates.  "Entry points" (useful places to link to) are:
26     <ul>
27       <li>signup.cgi - Signup
28       <li>selfservice.cgi - Customer self-service
29       <li>agent.cgi - Reseller interface
30       <li>passwd.cgi - Simple password-changing interface
31       <li>promocode.html - Promotional code pre-signup
32       <li>regcode.html - Registration code pre-signup
33       <li>stateselect.html - State selection pre-signup
34     </ul>
35   <li>When linking to signup.cgi, you can include a referring custnum in the URL as follows: <code>http://public.web.server/path/signup.cgi?ref=1542</code>
36   <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>)
37   <li>Create the /usr/local/freeside directory on the external machine (owned by the freeside user).
38   <li>touch /usr/local/freeside/selfservice_socket; chown freeside /usr/local/freeside/selfservice_socket; chmod 600 /usr/local/freeside/selfservice_socket
39   <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, selfservice.cgi, agent.cgi and passwd.cgi as the freeside user.
40   <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).
41   <li>Run an instance of <pre>freeside-selfservice-server <i>user</i> <i>machine</i> <i>agentnum</i> <i>refnum</i></pre> on the Freeside machine for each external machine.
42   <ul>
43     <li><i>user</i> is a user from the mapsecrets file.
44     <li><i>machine</i> is the name of the external machine.
45
46
47   </ul>
48 </ul>
49 Optional:
50 <ul>
51   <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 variables listed below available.
52   (an example file is included as <b>fs_selfservice/FS-SelfService/ieak.template</b>)  See the section on <a href="http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/INS.HTM">internet settings files</a> in the <a href="http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/toc.asp">IEAK documentation</a> for more information.
53 <!--  <li>If you create a <b>/usr/local/freeside/success.html</b> file on the external machine, it will be used as the success HTML page.  Although template substiutions are available, a regular HTML file will work fine here, unlike signup.html.  An example file is included as <b>fs_signup/FS-SignupClient/cgi/success.html</b>-->
54   <li>Variable substitutions available in <b>ieak.template</b> and <b>success.html</b>:
55     <ul>
56       <li>$ac - area code of selected POP
57       <li>$exch - exchange of selected POP
58       <li>$loc - local part of selected POP
59       <li>$username
60       <li>$password
61       <li>$email_name - first and last name
62       <li>$pkg - package name
63     </ul>
64 <!--  <li>If you create a <b>/usr/local/freeside/signup.html</b> file on the external machine, it will be used as a template for the form HTML.  This requires the template to be constructed appropriately; probably best to start with the example file included as <b>fs_signup/FS-SignupClient/cgi/signup.html</b>. -->
65 <!--  <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. -->
66 </ul>
67 </body>