Difference between revisions of "Freeside:1.7:Documentation:Installation"

From Freeside
Jump to: navigation, search
m
m (Reverted edits by GupOnc (Talk); changed back to last version by Rluser)
Line 14: Line 14:
 
** mod_perl v2 is now supported.
 
** mod_perl v2 is now supported.
 
** If compiling your own mod_perl, make sure you set the EVERYTHING=1 compile-time option
 
** If compiling your own mod_perl, make sure you set the EVERYTHING=1 compile-time option
* A '''transactional''' database engine [http://search.cpan.org/search?mode=module
+
* A '''transactional''' database engine [http://search.cpan.org/search?mode=module&query=DBD%3A%3A supported] by Perl's [http://dbi.perl.org/ DBI].
 +
** [http://www.postgresql.org PostgreSQL] is recommended (v7.2 or later, 7.4 or later recommended).
 +
** [http://www.mysql.com MySQL] is '''not currently supported'''. ''Developers intersted in maintaining MySQL support are welcome to ask on the -devel mailing list; most things work, but MySQL support needs a maintainer to update it for recent (and future) changes.
 +
 
 +
''Note: the above only applies to the database used by the Freeside software itself. Freeside can integrate with RADIUS and other servers running MySQL  or any other DBI-supported database.''
 +
 
 +
* teTeX and Ghostscript (included with most distributions) (Optional, enables typeset invoices)
 +
 
 +
=== Perl modules ===
 +
 
 +
==== Popular modules you might want to check your distribution for ====
 +
 
 +
* [http://search.cpan.org/dist/libnet/ libnet] (CPAN: "install Net::Cmd")
 +
* [http://search.cpan.org/dist/libwww-perl libwww-perl] (CPAN: "install Bundle::LWP")
 +
** [http://search.cpan.org/dist/URI URI]
 +
** [http://search.cpan.org/dist/HTML-Tagset HTML::Tagset]
 +
** [http://search.cpan.org/dist/HTML-Parser HTML::Parser]
 +
* [http://search.cpan.org/dist/HTML-Mason HTML::Mason]
 +
* [http://search.cpan.org/dist/Text-Template Text::Template]
 +
* [http://search.cpan.org/dist/DBI DBI]
 +
** [http://search.cpan.org/search?mode=module&query=DBD%3A%3A DBD] for your database engine ([http://search.cpan.org/dist/DBD-Pg DBD::Pg] for PostgreSQL)
 +
* [http://search.cpan.org/dist/MailTools MailTools] (CPAN: "install Mail::Internet")
 +
* [http://search.cpan.org/dist/MIME-tools MIME::Tools]
 +
* [http://search.cpan.org/dist/TimeDate TimeDate] (CPAN: "install Date::Format")
 +
* [http://search.cpan.org/dist/Locale-Codes Locale-Codes] (CPAN: "install Locale::Country")
 +
* [http://search.cpan.org/dist/DateTime DateTime]
 +
 
 +
==== Modules of Indeterminate Popularity ====
 +
 
 +
* [http://search.cpan.org/dist/Chart Chart] (CPAN: "install Chart::Base")
 +
* [http://search.cpan.org/dist/Cache-Cache Cache::Cache]
 +
* [http://search.cpan.org/dist/NetAddr-IP NetAddr::IP]
 +
* [http://search.cpan.org/dist/String-Approx String::Approx]
 +
* [http://search.cpan.org/dist/Locale-SubCountry Locale::SubCountry]
 +
* [http://search.cpan.org/dist/Frontier-RPC Frontier::RPC2]
 +
* [http://search.cpan.org/dist/Term-ReadKey Term::ReadKey]
 +
* [http://search.cpan.org/dist/DateManip Date::Manip]
 +
* [http://search.cpan.org/dist/DateTime-Format-Strptime DateTime::Format::Strptime]
 +
* [http://search.cpan.org/dist/Text-CSV_XS Text::CSV_XS]
 +
 
 +
==== Less common modules probably not included in anything but Debian? ====
 +
 
 +
* [http://search.cpan.org/dist/Business-CreditCard Business::CreditCard]
 +
* [http://search.cpan.org/dist/Net-Whois-Raw Net::Whois::Raw]
 +
* [http://search.cpan.org/dist/DBIx-DBSchema DBIx::DBSchema]
 +
* [http://search.cpan.org/dist/Tie-IxHash Tie::IxHash]
 +
* [http://search.cpan.org/dist/Crypt::PasswdMD5 Crypt::PasswdMD5]
 +
* [http://search.cpan.org/dist/Time-Duration Time::Duration]
 +
* [http://search.cpan.org/dist/File-CounterFile File::CounterFile]
 +
* [http://search.cpan.org/dist/IPC-Run3 IPC::Run3]
 +
* [http://search.cpan.org/dist/Net-SSH Net::SSH]
 +
* [http://search.cpan.org/dist/String-ShellQuote String::ShellQuote]
 +
* [http://search.cpan.org/dist/JSON JSON]
 +
* [http://search.cpan.org/dist/HTML-Widgets-SelectLayers HTML::Widgets::SelectLayers]
 +
* [http://search.cpan.org/dist/Color-Scheme Color::Scheme]
 +
* [http://search.cpan.org/dist/Lingua-EN-NameParse Lingua::EN::NameParse]
 +
* [http://search.cpan.org/dist/Lingua-EN-Inflect Lingua::EN::Inflect]
 +
 
 +
==== Optional modules ====
 +
 
 +
* [http://search.cpan.org/dist/Fax-Hylafax-Client Fax::Hylafax::Client] ''(Required if faxing invoices)''
 +
* [http://search.cpan.org/dist/Apache-DBI Apache::DBI] ''(recommended for better web interface performance)''
 +
 
 +
 
 +
== Installation ==
 +
 
 +
* Add the user and group `freeside' to your system.
 +
* Allow the freeside user full access to the freeside database.
 +
** with PostgreSQL
 +
<pre>
 +
$ su postgres (pgsql on some distributions)
 +
$ createuser -P freeside
 +
Enter password for user "freeside":
 +
Enter it again:
 +
Shall the new user be allowed to create databases? (y/n) y
 +
Shall the new user be allowed to create more new users? (y/n) n
 +
CREATE USER
 +
</pre>
 +
or with MySQL:
 +
<pre>
 +
$ mysqladmin -u root password 'set_a_root_database_password'
 +
$ mysql -u root -p
 +
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP on freeside.* TO freeside@localhost IDENTIFIED BY 'set_a_freeside_database_password';
 +
</pre>
 +
 
 +
*Edit the top-level Makefile:
 +
** Set DATASOURCE to your DBI data source, for example, <code>DBI:Pg:dbname=freeside</code> for PostgresSQL or <code>DBI:mysql:freeside</code> for MySQL. See the DBI manpage and the manpage for your DBD for the exact syntax of your DBI data source.
 +
** Set DB_PASSWORD to the freeside database user's password.
 +
 
 +
* Add the freeside database to your database engine:
 +
** with Postgres:
 +
<pre>
 +
$ su freeside
 +
$ createdb -E sql_ascii freeside
 +
</pre>
 +
or with MySQL:
 +
<pre>
 +
$ mysqladmin -u freeside -p create freeside
 +
</pre>
 +
 
 +
* Build and install the Perl modules:
 +
<pre>
 +
$ make perl-modules
 +
$ su
 +
# make install-perl-modules
 +
</pre>
 +
 
 +
* Create the necessary configuration files:
 +
<pre>
 +
$ su
 +
# make create-config
 +
</pre>
 +
 
 +
* Ensure Apache has mod_perl enabled and is set to run as <code>User freeside</code>.  If you have other things being served by Apache on this machine (hopefully internal things), it is recommended to run a '''separate''' iteration of Apache as the freeside user.
 +
 
 +
* Edit the Makefile and set <code>FREESIDE_DOCUMENT_ROOT</code>.
 +
 
 +
* Run <code>make install-docs</code>
 +
 
 +
* Edit the Makefile and set <code>APACHE_CONF</code> to the location of an Apache include directory (not a file).  (If your Apache doesn't have an existing include directory, create one and add a line such as "<code>Include /etc/apache/conf.d</code>" to httpd.conf.)
 +
 
 +
* Run <code>make install-apache</code>
 +
 
 +
* As the freeside UNIX user, run <code>freeside-setup -d your.domain.name</code> to create the database tables and initial data.
 +
<pre>
 +
$ su freeside
 +
$ freeside-setup -d example.com
 +
</pre>
 +
 
 +
* Create the Freeside system users:
 +
<pre>
 +
$ su freeside
 +
$ freeside-adduser -g 1 fs_queue
 +
$ freeside-adduser -g 1 fs_daily
 +
$ freeside-adduser -g 1 fs_selfservice
 +
</pre>
 +
 
 +
* Create one or more Freeside users (your internal sales/tech folks, not customer accounts):
 +
<pre>
 +
$ su freeside
 +
$ freeside-adduser -g 1 username
 +
$ htpasswd /usr/local/etc/freeside/htpasswd username
 +
Password:
 +
</pre>
 +
Additional users can be added using the same command or from the web interface.
 +
 
 +
* freeside-queued was installed with the Perl modules. Start it now and ensure that is run upon system startup (Do this manually, or edit the top-level Makefile, replacing <code>INIT_FILE</code> with the appropriate location on your system and <code>QUEUED_USER</code> with the username of a Freeside user you created above, and run <code>make install-init</code>)
 +
 
 +
* Either [[Freeside:1.7:Documentation:RT_Installation|install the integrated RT ticketing system]], or delete the <code>ticket_system</code> file from your configuration directory (<code>/usr/local/etc/freeside/conf.''datasrc''</code>).
 +
 
 +
* Now proceed to the initial [[Freeside:1.7:Documentation:Administration|administration]] of your installation.

Revision as of 09:02, 3 June 2007

Introduction

Install Freeside on a firewalled, private server, not a public (web, RADIUS, etc.) server.

Please note that these are the 1.7 installation instructions. Do not attempt to use them to install 1.5/1.6, or edit them to correct differences with those releases.

Prerequisites

Packages

  • Perl, minimum version 5.8.4
  • Apache, SSL highly recommended
  • mod_perl
    • mod_perl v2 is now supported.
    • If compiling your own mod_perl, make sure you set the EVERYTHING=1 compile-time option
  • A transactional database engine supported by Perl's DBI.
    • PostgreSQL is recommended (v7.2 or later, 7.4 or later recommended).
    • MySQL is not currently supported. Developers intersted in maintaining MySQL support are welcome to ask on the -devel mailing list; most things work, but MySQL support needs a maintainer to update it for recent (and future) changes.

Note: the above only applies to the database used by the Freeside software itself. Freeside can integrate with RADIUS and other servers running MySQL or any other DBI-supported database.

  • teTeX and Ghostscript (included with most distributions) (Optional, enables typeset invoices)

Perl modules

Popular modules you might want to check your distribution for

Modules of Indeterminate Popularity

Less common modules probably not included in anything but Debian?

Optional modules


Installation

  • Add the user and group `freeside' to your system.
  • Allow the freeside user full access to the freeside database.
    • with PostgreSQL
$ su postgres (pgsql on some distributions)
$ createuser -P freeside
Enter password for user "freeside": 
Enter it again: 
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER

or with MySQL:

$ mysqladmin -u root password 'set_a_root_database_password'
$ mysql -u root -p
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP on freeside.* TO freeside@localhost IDENTIFIED BY 'set_a_freeside_database_password';
  • Edit the top-level Makefile:
    • Set DATASOURCE to your DBI data source, for example, DBI:Pg:dbname=freeside for PostgresSQL or DBI:mysql:freeside for MySQL. See the DBI manpage and the manpage for your DBD for the exact syntax of your DBI data source.
    • Set DB_PASSWORD to the freeside database user's password.
  • Add the freeside database to your database engine:
    • with Postgres:
$ su freeside
$ createdb -E sql_ascii freeside

or with MySQL:

$ mysqladmin -u freeside -p create freeside 
  • Build and install the Perl modules:
$ make perl-modules
$ su
# make install-perl-modules
  • Create the necessary configuration files:
$ su
# make create-config
  • Ensure Apache has mod_perl enabled and is set to run as User freeside. If you have other things being served by Apache on this machine (hopefully internal things), it is recommended to run a separate iteration of Apache as the freeside user.
  • Edit the Makefile and set FREESIDE_DOCUMENT_ROOT.
  • Run make install-docs
  • Edit the Makefile and set APACHE_CONF to the location of an Apache include directory (not a file). (If your Apache doesn't have an existing include directory, create one and add a line such as "Include /etc/apache/conf.d" to httpd.conf.)
  • Run make install-apache
  • As the freeside UNIX user, run freeside-setup -d your.domain.name to create the database tables and initial data.
$ su freeside
$ freeside-setup -d example.com
  • Create the Freeside system users:
$ su freeside
$ freeside-adduser -g 1 fs_queue
$ freeside-adduser -g 1 fs_daily
$ freeside-adduser -g 1 fs_selfservice
  • Create one or more Freeside users (your internal sales/tech folks, not customer accounts):
$ su freeside
$ freeside-adduser -g 1 username
$ htpasswd /usr/local/etc/freeside/htpasswd username
Password: 

Additional users can be added using the same command or from the web interface.

  • freeside-queued was installed with the Perl modules. Start it now and ensure that is run upon system startup (Do this manually, or edit the top-level Makefile, replacing INIT_FILE with the appropriate location on your system and QUEUED_USER with the username of a Freeside user you created above, and run make install-init)