forked from lix-project/hydra
130 lines
4.2 KiB
XML
130 lines
4.2 KiB
XML
<chapter xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xml:id="chap-installation">
|
|
|
|
<title>Installation</title>
|
|
|
|
<section>
|
|
<title>Prerequisites</title>
|
|
<para>
|
|
To install and use Hydra you need to have installed the following dependencies:
|
|
<itemizedlist>
|
|
<listitem><para>Nix</para></listitem>
|
|
<listitem><para>PostgreSQL</para></listitem>
|
|
</itemizedlist>
|
|
At the moment, Hydra runs only on 32 bit and 64 bit Linux (<emphasis>i686-linux</emphasis> and <emphasis>x86_64_linux</emphasis>).
|
|
</para>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
<title>Installation</title>
|
|
<para>
|
|
Hydra can be installed by visiting the URL,
|
|
<screen>
|
|
http://hydra.nixos.org/view/hydra/unstable</screen>
|
|
and use the one-click install available at one of the build pages. You could also
|
|
install Hydra through the channel by performing the following commands:
|
|
|
|
<screen>
|
|
nix-channel --add http://hydra.nixos.org/jobset/hydra/trunk/channel/latest
|
|
nix-channel --update
|
|
nix-env -i hydra</screen>
|
|
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Creating the database</title>
|
|
<para>
|
|
Hydra stores its results in a database, which can be a
|
|
PostgreSQL or SQLite database. The latter is easier to
|
|
setup, but the former scales better.
|
|
</para>
|
|
|
|
<para>To setup a PostgreSQL
|
|
database with <emphasis>hydra</emphasis> as database name
|
|
and user name, issue the following commands:
|
|
<screen>
|
|
createdb hydra
|
|
echo "CREATE USER hydra WITH PASSWORD '<your-password>' ;" | psql hydra
|
|
cat $prefix/share/hydra/sql/hydra-postgresql.sql | psql hydra
|
|
echo "GRANT ALL ON DATABASE hydra TO hydra;" | psql hydra</screen>
|
|
Note that <emphasis>$prefix</emphasis> is the location of
|
|
Hydra in the nix store.
|
|
</para>
|
|
|
|
<para>
|
|
For SQLite, the following command is all it takes to
|
|
create the database:
|
|
|
|
<screen>
|
|
cat $prefix/share/hydra/sql/hydra-sqlite.sql | sqlite3 /path/to/hydra.sqlite
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
To add a user <emphasis>root</emphasis> with <emphasis>admin</emphasis> privileges, execute:
|
|
<screen>
|
|
echo "INSERT INTO Users(userName, emailAddress, password) VALUES ('root', 'some@email.adress.com', '$(echo -n foobar | sha1sum | cut -c1-40)');" | psql hydra
|
|
echo "INSERT INTO UserRoles(userName, role) values('root', 'admin');" | psql hydra
|
|
</screen>
|
|
For SQLite the same commands can be used, with
|
|
<command>psql hydra</command> replaced by
|
|
<command>sqlite3 /path/to/hydra.sqlite</command>.
|
|
</para>
|
|
|
|
<para>
|
|
Hydra uses an environment variable to know which database
|
|
should be used, and a variable which point to a location
|
|
that holds some state. To set these variables for a
|
|
PostgreSQL database, add the following to the
|
|
<filename>.profile</filename> of the user running the
|
|
Hydra services.
|
|
|
|
<screen>
|
|
export HYDRA_DBI="dbi:Pg:dbname=hydra;host=localhost;"
|
|
export HYDRA_DATA=/var/lib/hydra</screen>
|
|
|
|
Make sure that the <emphasis>HYDRA_DATA</emphasis>
|
|
directory exists and is writable for the user which will
|
|
run the Hydra services. For a SQLite database, the
|
|
<varname>HYDRA_DBI</varname> should be set to something
|
|
like <literal>dbi:SQLite:/path/to/hydra.sqlite</literal>
|
|
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Getting started</title>
|
|
<para>
|
|
To start the Hydra webserver, execute:
|
|
<screen>
|
|
hydra_server.pl</screen>
|
|
|
|
When the server is started, you can browse to <ulink>http://localhost:3000/</ulink> to start configuring your Hydra instance.
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Example: PatchELF</title>
|
|
<para>
|
|
</para>
|
|
|
|
<subsection>
|
|
<title>Defining jobsets</title>
|
|
<para>
|
|
</para>
|
|
</subsection>
|
|
|
|
<subsection>
|
|
<title>Creating views</title>
|
|
<para>
|
|
</para>
|
|
</subsection>
|
|
</section>
|
|
|
|
|
|
|
|
</chapter>
|