<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  
  
  <channel>
    <title>chrisjrob: adempiere</title>
    <link>https://chrisjrob.com</link>
    <atom:link href="https://chrisjrob.com/tag/adempiere/feed/index.xml" rel="self" type="application/rss+xml" />
    <description>GNU Linux, Perl and FLOSS</description>
    <language>en-gb</language>
    <pubDate>Fri, 13 Feb 2026 17:22:31 +0000</pubDate>
    <lastBuildDate>Fri, 13 Feb 2026 17:22:31 +0000</lastBuildDate>
    
    <item>
      <title>Howto | Install Adempiere on Debian Lenny</title>
      <link>https://chrisjrob.com/2010/02/22/install-adempiere-on-debian-lenny/</link>
      <pubDate>Mon, 22 Feb 2010 17:28:11 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2010/02/22/install-adempiere-on-debian-lenny</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/adempiere_logo.png" align="right" alt="Featured Image">
         
         <p>I have run through these notes again and corrected the odd mistake and they do seem to work.  At least until something changes!!</p>

<p>I have not yet got the init.d script working, but am able to successfully start adempiere and reach the login page.</p>

<p>I need to review the postgresql security settings as “trust” for all is probably unsafe.</p>

<!--more-->

<p>Lastly, I am an adempiere newbie, so please take everything I say with a pinch of salt.</p>

<p>Good luck!</p>

<h2 id="install-a-debian-system">Install a Debian system</h2>

<p>Please visit Debian for guidance on how to do this.  Personally I like to install an absolutely bare system as my starting point (I even uncheck the option for “standard system”).</p>

<p>It is possible, I believe, to do a headless (non-GUI) installation, but these instructions do require a desktop environment, as some of the setup screens require a GUI.</p>

<p>For example to install a minimal KDE on a Debian base system:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install kdm kde-core
</code></pre></div></div>

<h2 id="install-tofrodos">Install tofrodos</h2>

<p>Required for the database migration.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install tofrodos
</code></pre></div></div>

<h2 id="install-postgresql--82">Install Postgresql &gt; 8.2</h2>

<p>Fortunately Debian includes version 8.3, so a simple apt-get should do the trick:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install postgresql postgresql-doc oidentd
</code></pre></div></div>

<p>And a ton of dependencies will also be installed.</p>

<p>Once installed, you should have a functional postgresql database installed and running.  Debian places the database in <code class="language-plaintext highlighter-rouge">/var/lib/postgresql/version</code> the default database is named <code class="language-plaintext highlighter-rouge">main</code> and is located in <code class="language-plaintext highlighter-rouge">/var/lib/postgresql/version/main</code>. We assume in this guide that Adempiere’s database will be created in the default cluster.</p>

<h2 id="install-java">Install Java</h2>

<p>sun-java6 is the version to install, unless you are using the ajax interface in which case you can even use openjdk. To do add <code class="language-plaintext highlighter-rouge">contrib non-free</code> to <code class="language-plaintext highlighter-rouge">/etc/apt/sources.list</code> repositories.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install sun-java6-jdk sun-java6-fonts sun-java6-jre sun-java6-plugin
</code></pre></div></div>

<h2 id="configure-postgresql-for-java">Configure postgresql for java</h2>

<p>Now we must add the <code class="language-plaintext highlighter-rouge">JAVA_HOME</code> variable to the <code class="language-plaintext highlighter-rouge">/etc/postgresql/8.3/main/environment</code> so postgresql can find the java virtual machine:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>JAVA_HOME = '/usr/lib/jvm/java-6-sun'
</code></pre></div></div>

<h2 id="authorise-users-for-postgres">Authorise users for postgres</h2>

<p>Now we must enable users to access the database as the postgres user, which is the system user of the database and will be used by the <code class="language-plaintext highlighter-rouge">RUN_ImportAdempiere.sh</code> script to import the database data.</p>

<p>Add the following lines to <code class="language-plaintext highlighter-rouge">/etc/postgresql/8.3/main/pg_hba.conf</code>:</p>

<p><strong>You may wish to change the IP address to the external IP</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Database administrative login by UNIX sockets
#local   all         postgres                          ident sameuser

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                                 trust

# IPv4 local connections for user postgres:
host    all         postgres       127.0.0.1/32         trust
# IPv4 local connections for user adempiere:
host    all         all            127.0.0.1/32         trust
# IPv6 local connections:
host    all         all            ::1/128              trust
</code></pre></div></div>

<p><strong>trust or md5 - trust is probably wrong</strong></p>

<h2 id="configure-postgresql-listen-address">Configure postgresql listen address</h2>

<p>Running the database configured in localhost isn’t probably what you want, as all the clients will need access to this database and the address you tell the script the database runs from will be remembered in the future (but it can be altered). So you should probably put you server external IP address (the address of the eth0 interface i.e.) instead of the 127.0.0.1 address of the previous line.</p>

<p>If this is a test server and you will only be accessing it locally, then leaving it as 127.0.0.1 is fine.</p>

<h2 id="restart-postgresql">Restart Postgresql</h2>

<p>We must now restart the postgresql server to active the changes in the configuration files:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># /etc/init.d/postgresql-8.3 restart
</code></pre></div></div>

<h2 id="install-subversion">Install Subversion</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install subversion
</code></pre></div></div>

<h2 id="download-adempiere-from-svn-head">Download Adempiere from SVN Head</h2>

<p><strong>This could take a very long time, depending on your Internet bandwidth</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ svn co https://adempiere.svn.sourceforge.net/svnroot/adempiere/trunk */svnworkdir/adempiere
</code></pre></div></div>

<h2 id="build-adempiere">Build Adempiere</h2>

<p>Open a terminal window.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ export JAVA_HOME='/usr/lib/jvm/java-6-sun'
$ cd */svnworkdir/adempiere/utils_dev
$ ./RUN_build.sh
</code></pre></div></div>

<h2 id="install-adempiere">Install Adempiere</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># unzip */svnworkdir/adempiere/install/build/Adempiere_354a.zip -d /opt
</code></pre></div></div>

<p>Now the extracted folder <code class="language-plaintext highlighter-rouge">/opt/Adempiere</code> exists in <code class="language-plaintext highlighter-rouge">/opt</code>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd /opt
$ sudo mv Adempiere adempiere-3.54a
$ sudo ln -sf adempiere-3.54a adempiere
</code></pre></div></div>

<p>Now it looks like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ls -l /opt
$ total 4
$ lrwxrwxrwx  1 root root   15 Oct 18 19:22 adempiere -&gt; adempiere-3.54a
$ drwxr-xr-x 10 root root 4096 Oct 18 19:11 adempiere-3.54a
</code></pre></div></div>

<h2 id="create-the-database">Create the database</h2>

<p>Switch to the postgres user:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>debian:/opt$ sudo su - postgres
postgres@debian:*$ export ADEMPIERE_HOME="/opt/adempiere"
postgres@debian:*$ /usr/bin/createdb adempiere
postgres@debian:*$ /usr/bin/createuser adempiere
Shall the new role be a superuser? (y/n) y
</code></pre></div></div>

<h2 id="set-database-password">Set database password</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres@debian:*$ echo "ALTER USER adempiere WITH PASSWORD 'your-chosen-password';" | psql
ALTER ROLE
</code></pre></div></div>

<h2 id="check-database">Check database</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres@debian:*$ echo "select * from pg_user; select * from pg_roles;" | psql
  usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
-----------+----------+-------------+----------+-----------+----------+----------+-----------
 postgres  |       10 | t           | t        | t         | ******** |          |
 adempiere |    16385 | t           | t        | t         | ******** |          |
(2 rows)

  rolname  | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolconnlimit | rolpassword | rolvaliduntil | rolconfig |  oid
-----------+----------+------------+---------------+-------------+--------------+-------------+--------------+-------------+---------------+-----------+-------
 postgres  | t        | t          | t             | t           | t            | t           |           -1 | ********    |               |           |    10
 adempiere | t        | t          | t             | t           | t            | t           |           -1 | ********    |               |           | 16385
(2 rows)
postgres@debian:*$ exit
</code></pre></div></div>

<h2 id="load-database">Load database</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ export ADEMPIERE_HOME="/opt/adempiere"
$ psql -h localhost -d adempiere -U adempiere &lt; $ADEMPIERE_HOME/data/Adempiere_pg.dmp
</code></pre></div></div>

<h2 id="set-up-adempiere">Set-up Adempiere</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ export ADEMPIERE_HOME="/opt/adempiere"
$ cd $ADEMPIERE_HOME
$ sudo chmod +x *.sh
$ export JAVA_HOME='/usr/lib/jvm/java-6-sun'
$ sudo ./RUN_setup.sh
</code></pre></div></div>

<p>Please note that this section must be able to write to the display, so either the desktop session needs to be root, or use sudo.  If you get an error about connecting to DISPLAY then try using sudo.</p>

<p>The following screen should now be displayed.  Change the database name to adempiere, database type to postgresql, set your mailserver settings.  You may need to set the database server to localhost, if the hostname does not work.</p>

<p><img src="/assets/adempiere_server_setup.png" /></p>

<h2 id="migrate-to-head">Migrate to Head</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd */svnworkdir/adempiere/migration
$ chmod +x *.sh
$ ./migrate_postgresql.sh 354a-trunk commit | psql -U adempiere -d adempiere &gt; 354a-trunk.lst
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "ad_document_action_access_key" for table "ad_document_action_access"
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "r_contactinterest_key" for table "r_contactinterest"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "c_ordersource_pkey" for table "c_ordersource"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "c_ordersource_ad_client_id_key" for table "c_ordersource"
WARNING:  there is no transaction in progress
</code></pre></div></div>

<h2 id="start-server">Start Server</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd $ADEMPIERE_HOME/utils
$ sudo nohup ./RUN_Server2.sh &amp;
$ sudo tail -f nohup.out
</code></pre></div></div>

<p><strong>The output of nohub.out will indicate that the server started in only a few seconds, this is only the JBoss server, the site will not be accessible for several minutes.</strong></p>

<h2 id="client-login">Client Login</h2>

<p>On the server, open a browser and go to: http://hostname.yourdomain/admin/ and follow the Adempiere ZK Webui</p>

<p><strong>http://localhost/admin/ will not work.</strong></p>

<table>
  <thead>
    <tr>
      <th>Usage</th>
      <th>User</th>
      <th>Password</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>System Management</td>
      <td>System</td>
      <td>System</td>
    </tr>
    <tr>
      <td>System Management or any role/company</td>
      <td>SuperUser</td>
      <td>System</td>
    </tr>
    <tr>
      <td>Sample Client Administration</td>
      <td>GardenAdmin</td>
      <td>GardenAdmin</td>
    </tr>
    <tr>
      <td>Sample Client User</td>
      <td>GardenUser</td>
      <td>GardenUser</td>
    </tr>
  </tbody>
</table>

<p>For guidance visit <a href="http://www.adempiere.com/index.php/InstallClient">http://www.adempiere.com/index.php/InstallClient</a>.</p>

<h2 id="optional-install-initd-script">Optional: Install init.d script</h2>

<p>Not essential for a test server (and I have not yet got this working, I suspect because I am not using user = adempiere.</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># ./RUN_Server2Stop.sh</span>
<span class="c"># sudo cp unix/adempiere_Debian.sh /etc/init.d/adempiere</span>
<span class="c"># /etc/init.d/adempiere start </span>
</code></pre></div></div>

<h2 id="read-the-functional-user-manual">Read the Functional User Manual</h2>

<ul>
  <li>http://www.adempiere.com/index.php/Functional_User_Manual</li>
</ul>

<h2 id="references">References</h2>

<ul>
  <li>http://www.adempiere.com/index.php/Debian_and_PostgreSQL_Install</li>
  <li>http://www.adempiere.com/index.php/Adempiere/Libero_Linux_install_from_subversion_head</li>
  <li>http://www.adempiere.com/index.php/Manual_Installation_From_Trunk</li>
  <li>http://www.adempiere.com/index.php/ADempiere_Install_Linux&amp;PostgreSQL</li>
  <li>http://www.adempiere.com/index.php/ADempiere_Install#JDBC_Connection_Error
    <ul>
      <li>http://www.adempiere.com/index.php/CreateDatabase</li>
      <li>http://www.adempiere.com/index.php/InstallComplete</li>
    </ul>
  </li>
  <li>http://www.adempiere.com/index.php/ADempiere_with_Postgresql_on_Ubuntu_9.04_Jaunty</li>
</ul>


       ]]>
      </description>
    </item>
    
  </channel> 
</rss>
