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

From Freeside
Jump to: navigation, search
m (Reverted edits by Mz7Ji7 (Talk); changed back to last version by Ivan)
m
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&query=DBD%3A%3A supported] by Perl's [http://dbi.perl.org/ DBI].
+
* A '''transactional''' database engine [http://search.cpan.org/search?mode=module
** [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 05:46, 14 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