What is the best method for updating LedgerSMB on (possibly mutilple) instance(s) on a server?
Is it simply a matter of overwriting code files and restarting Apache?


Thanks.
Brian

------------------------------------------------------------------------
Brian Wolf
Activus Technologies
Phone: 410.367.2958
Email: [email protected]
Try out Activus Secure Payments^(TM), our recurring payments application.
Demo at http://demo.activustech.com
------------------------------------------------------------------------
On 06/29/2012 01:24 AM, Chris Travers wrote:


On Sun, Jun 3, 2012 at 6:44 AM, Brian Wolf <[email protected] <mailto:[email protected]>> wrote:

    We've just taken on a few clients who each have requirements that
    LedgerSMB can satisfy.  At least one client needs enhancements or
    modifications to workflow / screens; some changes are specific to
    the client and others apply more broadly to other clients.

    I'm new to LedgerSMB and by no means have expertise in PostgreSQL
    administration.  I imagine that multiple clients can be hosted on
    one server, but I don't have a clear picture how that would be set
    up.  Can someone provide a step-by-step outline?


As I understand it from talking to you, you are looking at hosting LedgerSMB for multiple businesses. There are a few gotchas to get into here and so my recommendation generally is that unless there is a common accounting team between two businesses, these should be deployed with both multiple instances of LedgerSMB and multiple instances of PostgreSQL. These can of course share servers however the load allows you to do (but I would recommend eventually a decent physical server for PostgreSQL with good I/O bandwidth if you get enough users to make that worthwhile).

One key design consideration you will have to think about is that we use PostgreSQL roles for user accounts and these are global to a PostgreSQL instance. So if there is a common accounting team behind two companies, you can just use two db's and share user accounts. On the other hand, if there are multiple companies this becomes difficult.

I am assuming you want to let your customers create user accounts etc. If you don't and if you want to manage permissions for the user, then you will have some light customization to do. That's beyond the scope of this recommendation.

Spinning up additional PostgreSQL instances is pretty cheap processor-wise. These don't take a lot of memory for the process that just listens on the socket, and your memory issues are primary those about usage. In general you should have enough memory on your PostgreSQL server that all user data across all companies fits comfortably in memory, though.

The first thing to look at doing is creating a new PostgreSQL instance. To do this, basically you (using Red Hat paths here):

sudo -u postgres initdb -D /var/lib/pgsql/data-acme

Where acme is the customer's name.

Then edit the /var/lib/pgsql/data-acme/postgresql.conf to listen on a different port (let's say 5433 for the second customer, and increasing one each time). And you probably want to copy the pg_hba.conf from a stock version (adding the IP of your web server and allowing it to authenticate via md5). You may want to open up additional addresses for the customer at their request, and you can do this if you like.

Then you have to edit the startup scripts. This is becoming more distro-dependent. But you need to make sure PostgreSQL is also started against the new data directory. If it is CentOS 5.x or similar, the /etc/init.d/postgresql is the file to edit. If that file is not listed, see if there is a /usr/lib/systemd/system/postgresql.service and if so read the comments and create a new file as per the specifications there.

That's all that is required for PostgreSQL.

On the LedgerSMB side, just copy the LedgerSMB directory to a new one (maybe lsmb-demo to lsmb-acme) and alter the ledgersmb.conf to point at the new port number. Then you need to re-generate a new configuration for this service. You could do this by running sed on the existing configuration file (in /etc/httpd/conf.d on Red Hat-like systems) to change one directory to another, and outputting that to a new file. Then service httpd restart will restart Apache with the new directory active.

Then go to http://myhost/lsmb-acme/setup.pl or whatever the alias is, and create the database.

Hope this helps.

Chris Travers


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/


_______________________________________________
Ledger-smb-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-users


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ledger-smb-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-users

Reply via email to