http://www.freeside.biz/mediawiki/api.php?action=feedcontributions&user=Danielblues&feedformat=atomFreeside - User contributions [en]2024-03-29T12:22:23ZUser contributionsMediaWiki 1.27.7http://www.freeside.biz/mediawiki/index.php?title=Freeside:1.9:Documentation:Installation&diff=5718Freeside:1.9:Documentation:Installation2010-05-09T13:10:44Z<p>Danielblues: /* RT */ delete from conf</p>
<hr />
<div>== Introduction ==<br />
<br />
Install Freeside on a firewalled, private server, not a public (web, RADIUS, etc.) server.<br />
<br />
Please note that these are the 1.9 installation instructions. Do not attempt to use them to install 1.7/1.8, or edit them to correct differences with those releases.<br />
<br />
== Prerequisites ==<br />
<br />
=== Packages ===<br />
<br />
* [http://www.perl.org/ Perl], minimum version 5.8.4<br />
* [http://httpd.apache.org/ Apache], SSL highly recommended)<br />
* [http://perl.apache.org/ mod_perl]<br />
** mod_perl v2 is now supported.<br />
** If compiling your own mod_perl, make sure you set the EVERYTHING=1 compile-time option<br />
* A '''transactional''' database engine [http://search.cpan.org/search?mode=module&query=DBD%3A%3A supported] by Perl's [http://dbi.perl.org/ DBI]. <br />
** [http://www.postgresql.org PostgreSQL] is recommended (v7.2 or later, v8.1 or later recommended). <br />
** [http://www.mysql.com MySQL] (v4.1 or later, v5 recommended) is supported. DBIx::DBSchema 0.35 or later is required.<br />
<br />
''Note: the above only applies to the database used by the Freeside software itself. Freeside can integrate with RADIUS and other servers running a different database than the backend.''<br />
<br />
* teTeX and Ghostscript (included with most distributions) (Optional, enables typeset invoices)<br />
<br />
=== Perl modules ===<br />
<br />
==== Popular modules ====<br />
<br />
These modules are included in most distributions.<br />
<!-- reference: CentOS/RHEL 5, i.e. http://linux.mirrors.es.net/centos/5/os/x86_64/CentOS/ <br />
if its there, its everywhere... right? --><br />
<br />
* [http://search.cpan.org/dist/libwww-perl libwww-perl] (CPAN: "install Bundle::LWP")<br />
** [http://search.cpan.org/dist/URI URI]<br />
** [http://search.cpan.org/dist/HTML-Tagset HTML::Tagset]<br />
** [http://search.cpan.org/dist/HTML-Parser HTML::Parser]<br />
* [http://search.cpan.org/dist/DBI DBI]<br />
** [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 or [http://search.cpan.org/dist/DBD-mysql DBD::mysql] for MySQL)<br />
* [http://search.cpan.org/dist/TimeDate TimeDate] (CPAN: "install Date::Format")<br />
* [http://search.cpan.org/dist/DateManip Date::Manip]<br />
<br />
==== Common modules ====<br />
<br />
These modules are included in many distributions.<br />
<!-- more nebulous criteria, but should be included in at least Debian, FreeBSD ports, have sigificant Perl mindshare --><br />
<br />
* [http://search.cpan.org/dist/Chart Chart] (CPAN: "install Chart::Base")<br />
* [http://search.cpan.org/dist/Cache-Cache Cache::Cache]<br />
* [http://search.cpan.org/dist/DateTime DateTime]<br />
* [http://search.cpan.org/dist/DateTime-Format-Strptime DateTime::Format::Strptime]<br />
* [http://search.cpan.org/dist/DateTime-Format-Natural DateTime-Format-Natural]<br />
* [http://search.cpan.org/dist/Email-Sender Email::Sender]<br />
* [http://search.cpan.org/dist/Email-Sender-Transport-SMTP-TLS Email::Sender::Transport::SMTP::TLS]<br />
* [http://search.cpan.org/dist/HTML-Mason HTML::Mason]<br />
* [http://search.cpan.org/dist/Locale-Codes Locale-Codes] (CPAN: "install Locale::Country")<br />
* [http://search.cpan.org/dist/Locale-SubCountry Locale::SubCountry]<br />
* [http://search.cpan.org/dist/MailTools MailTools] (CPAN: "install Mail::Internet")<br />
* [http://search.cpan.org/dist/MIME-tools MIME::Tools] (Note: do not use version 5.423)<br />
* [http://search.cpan.org/dist/NetAddr-IP NetAddr::IP]<br />
* [http://search.cpan.org/dist/Net-Ping Net::Ping]<br />
* [http://search.cpan.org/dist/Net-Ping-External Net::Ping::External]<br />
* [http://search.cpan.org/dist/Number-Format Number::Format]<br />
* [http://search.cpan.org/dist/Spreadsheet-WriteExcel Spreadsheet::WriteExcel]<br />
* [http://search.cpan.org/dist/String-Approx String::Approx]<br />
* [http://search.cpan.org/dist/Text-CSV_XS Text::CSV_XS]<br />
* [http://search.cpan.org/dist/Term-ReadKey Term::ReadKey]<br />
* [http://search.cpan.org/dist/Text-Template Text::Template]<br />
<br />
==== Additional modules ====<br />
<br />
<!-- our modules (DBIx::DBSchema, Net::SSH, H:W:SelectLayers, etc.) and other modules with questionable mindshare and distro pickup. --><br />
<br />
* [http://search.cpan.org/dist/Authen-Passphrase Authen::Passphrase]<br />
* [http://search.cpan.org/dist/Business-CreditCard Business::CreditCard]<br />
* [http://search.cpan.org/dist/Business-US-USPS-WebTools Business::US::USPS::WebTools]<br />
* [http://search.cpan.org/dist/Color-Scheme Color::Scheme]<br />
* [http://search.cpan.org/dist/Crypt::PasswdMD5 Crypt::PasswdMD5]<br />
* [http://search.cpan.org/dist/DBIx-DBSchema DBIx::DBSchema]<br />
* [http://search.cpan.org/dist/File-CounterFile File::CounterFile]<br />
* [http://search.cpan.org/dist/Frontier-RPC Frontier::RPC2]<br />
* [http://search.cpan.org/dist/HTML-Defang HTML::Defang]<br />
* [http://search.cpan.org/dist/HTML-Widgets-SelectLayers HTML::Widgets::SelectLayers]<br />
* [http://search.cpan.org/dist/IPC-Run IPC::Run]<br />
* [http://search.cpan.org/dist/IPC-Run3 IPC::Run3]<br />
* [http://search.cpan.org/dist/JSON JSON]<br />
* [http://search.cpan.org/dist/Lingua-EN-NameParse Lingua::EN::NameParse]<br />
* [http://search.cpan.org/dist/Lingua-EN-Inflect Lingua::EN::Inflect]<br />
* [http://search.cpan.org/dist/Net-Domain-TLD Net::Domain::TLD]<br />
* [http://search.cpan.org/dist/Net-SSH Net::SSH]<br />
* [http://search.cpan.org/dist/Net-Whois-Raw Net::Whois::Raw]<br />
* [http://search.cpan.org/dist/String-ShellQuote String::ShellQuote]<br />
* [http://search.cpan.org/dist/Tie-IxHash Tie::IxHash]<br />
* [http://search.cpan.org/dist/Time-Duration Time::Duration]<br />
<br />
==== Optional modules ====<br />
<br />
* [http://search.cpan.org/dist/Fax-Hylafax-Client Fax::Hylafax::Client] ''(Required if faxing invoices)''<br />
* [http://search.cpan.org/dist/Apache-DBI Apache::DBI] ''(recommended for better web interface performance)''<br />
<br />
== Download Freeside ==<br />
* Get the source from one of the normal places <br />
**[http://www.freeside.biz/freeside/developers.html Open source link from the home page]<br />
**[http://www.freeside.biz/freeside/cvs.html Anonymous CVS]<br />
* Uncompress the tarball<br />
<br />
== Installation ==<br />
<br />
=== System User ===<br />
* Add the user and group `freeside' to your system.<br />
=== Database User ===<br />
* Allow the freeside user full access to the freeside database. <br />
with Postgresql:<br />
<pre><br />
[ as postgres/pgsql user ]<br />
$ createuser -P freeside <br />
Enter password for new role: <br />
Enter it again: <br />
Shall the new role be a superuser? (y/n) n<br />
Shall the new role be allowed to create databases? (y/n) y<br />
Shall the new role be allowed to create more new roles? (y/n) n<br />
</pre><br />
or with MySQL:<br />
<pre><br />
$ mysqladmin -u root password 'set_a_root_database_password'<br />
$ mysql -u root -p<br />
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP on freeside.* TO freeside@localhost IDENTIFIED BY 'set_a_freeside_database_password';<br />
</pre><br />
=== Database Access ===<br />
*Edit the top-level Makefile: <br />
** Configure the DATASOURCE to your DBI data source<br />
*** Set the DB_TYPE (Pg or mysql)<br />
*** See the DBI manpage and the manpage for your DBD for the exact syntax of your DBI data source. <br />
** Set DB_PASSWORD to the freeside database user's password.<br />
<br />
=== Database ===<br />
* Add the freeside database to your database engine: <br />
with Postgres: <br />
<pre><br />
$ su freeside<br />
$ createdb -E sql_ascii freeside<br />
</pre><br />
or with Postgres 8.3 +: <br />
<pre><br />
$ su freeside<br />
$ createdb -E LATIN1 freeside<br />
</pre><br />
or with MySQL: <br />
<pre><br />
$ mysqladmin -u freeside -p create freeside <br />
</pre><br />
=== Perl Modules ===<br />
* Build and install the Perl modules: <br />
<pre><br />
$ make perl-modules<br />
$ su<br />
# make install-perl-modules<br />
</pre><br />
=== Basic configuration Files ===<br />
* Create the necessary configuration files:<br />
<pre><br />
$ su<br />
# make create-config<br />
</pre><br />
<br />
=== Invoice Typesetting ===<br />
* If you are using typeset invoices, install fslongtable.sty:<br />
<pre><br />
$ su<br />
# make install-texmf<br />
</pre><br />
<br />
=== Apache & Web GUI ===<br />
* Configuration<br />
** Enable mod_perl<br />
** Run as <code>User freeside</code><br />
*** 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.<br />
<br />
* Edit the Makefile and set <code>FREESIDE_DOCUMENT_ROOT</code>. <br />
<br />
* To install the web interface, run: <br />
<pre><br />
$ su<br />
# make install-docs<br />
</pre><br />
<br />
* Edit the Makefile and set <code>APACHE_VERSION</code> to '''1''' (mod_perl v1.XX), '''1.99''' (mod_perl v2 prereleases up to and including 1.999_21, shipped with Debian 3.1, CentOS/RHEL 4, others), or '''2''' (mod_perl v2 proper and prereleases 1.999_22 and later).<br />
<br />
* 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.)<br />
<br />
* To install the apache configs, run:<br />
<pre><br />
$ su<br />
# make install-apache<br />
</pre><br />
<br />
''Note: Do not attempt to restart Apache (httpd) yet.''<br />
<br />
=== Initialize Data ===<br />
* As the freeside UNIX user, run <code>freeside-setup -d your.domain.name</code> to create the database tables and initial data.<br />
<pre><br />
$ su freeside<br />
$ freeside-setup -d example.com<br />
</pre><br />
<br />
=== Additional System Users ===<br />
* Create the Freeside system users: <br />
<pre><br />
$ su freeside<br />
$ freeside-adduser -g 1 fs_queue<br />
$ freeside-adduser -g 1 fs_daily<br />
$ freeside-adduser -g 1 fs_selfservice<br />
</pre><br />
<br />
=== Create Freeside Users ===<br />
* Create one or more Freeside users (your internal sales/tech folks, not customer accounts):<br />
<pre><br />
$ su freeside<br />
$ freeside-adduser -g 1 username<br />
$ htpasswd /usr/local/etc/freeside/htpasswd username<br />
Password: <br />
</pre><br />
Additional users can be added using the same command or from the web interface.<br />
<br />
=== Queue Daemon ===<br />
<br />
* 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>)<br />
<br />
=== RT ===<br />
* Either [[Freeside:1.9:Documentation:RT_Installation|install the integrated RT ticketing system]], or delete the <code>ticket_system</code> entry from your conf table.<br />
<br />
<pre><br />
su freeside<br />
psql freeside<br />
delete from conf where name = 'ticket_system';<br />
</pre><br />
<br />
=== Finalize ===<br />
* Restart Apache (httpd) and log into the web interface using the username and password you entered above.<br />
<br />
* Now proceed to the initial [[Freeside:1.9:Documentation:Administration|administration]] of your installation.</div>Danielblueshttp://www.freeside.biz/mediawiki/index.php?title=Freeside_talk:1.9:Documentation:Installation&diff=5717Freeside talk:1.9:Documentation:Installation2010-05-09T13:09:28Z<p>Danielblues: typo</p>
<hr />
<div>I suggest adding after (RT) "delete the ticket_system entry from your conf table." this info.<br />
<br />
<pre><br />
su freeside<br />
psql freeside<br />
delete from conf where name = 'ticket_system';<br />
</pre><br />
<br />
Agreed. The documentation is a wiki. Add it. [[User:Ivan|Ivan]]</div>Danielblueshttp://www.freeside.biz/mediawiki/index.php?title=Freeside_talk:1.9:Documentation:Installation&diff=5704Freeside talk:1.9:Documentation:Installation2010-05-03T11:49:48Z<p>Danielblues: </p>
<hr />
<div>I sudjest adding after (RT) "delete the ticket_system entry from your conf table." this info.<br />
<br />
<pre><br />
su freeside<br />
psql freeside<br />
delete from conf where name = 'ticket_system';<br />
</pre></div>Danielblueshttp://www.freeside.biz/mediawiki/index.php?title=Freeside_talk:1.9:Documentation:Installation&diff=5703Freeside talk:1.9:Documentation:Installation2010-05-03T11:46:32Z<p>Danielblues: Delete ticket_system from db</p>
<hr />
<div>I sujest adding after "delete the ticket_system entry from your conf table." this info.<br />
<br />
<pre><br />
su freeside<br />
psql freeside<br />
delete from conf where name = 'ticket_system';<br />
</pre></div>Danielblues