Setting up a chroot environment would also most likely better protect the IFS from compromise perhaps as well.
But generally I like Scott's idea of a top level folder /usr* or something like /apps/* with folders underneath. Makes full app backup easier as well.
Ultimately do whatever makes sense for you.
Regards,
Richard Schoen
Web:
http://www.richardschoen.net
Email: richard@xxxxxxxxxxxxxxxxx
----------------------------------------------------------------------
message: 1
date: Wed, 23 Mar 2022 19:33:56 -0500
from: Scott Klement <web400@xxxxxxxxxxxxxxxx>
subject: Re: [WEB400] IFS location for production Web Apps, ie:
Python/Flask, Nodejs, etc.
Hi Jim,
By convention, /www directory is for IBM HTTP server instances. So if you made an HTTP Server instance named 'python', it'd make sense to put
that instance under /www/python. But, that probably isn't what you've
done here, which makes me think this isn't the right place for you.
It's not clear why you were considering /www/python?
As for "/opensource/python". That is completely non-standard, and seems
very weird to me. Why would you call it "opensource" to begin with?
Are you releasing your code as open source? Because the fact that whomever wrote the programming language wrote _it_ in open source hardly seems like a good reason to put _your_ code in a directory named
"opensource". And, even if your code is open source, how do you know
it'll never change licenses? This just seems like an odd way to classify things to me. Why is "open source" the most salient thing about the code that you want to put it in a directory named that?
Personally, I like the Unix convention of putting things needed for multi-user mode (i.e. not needed when the system is in restricted state)
that are shared by all users in a directory named /usr. Then within
that, have a place for things that are local to the machine (vs.
packages installed everywhere) called /usr/local.
Within that, have a folder for each application, and within that folder, a place for source code. For example, /usr/local/accounting/src There's no need to denote what license it was released under or the programming language used in the folder name.
Since Python code typically ends in .py, you don't need to denote the language as part of the folder name. Put all of the bits related to the application, regardless of language, in the same folder. Some might be .txt, .json, .xml, images, etc... and some will be .py for python.
You might consider taking a look at sites like GitHub, SourceForge, etc to see how they structure their application folders for more ideas of how to do things.
On 3/23/2022 11:57 AM, Jim Oberholtzer wrote:
We've been having an internal debate about the best place to put
production open source web based applications. One suggestion is
under the www directory such as: /www/python/<appname>. Others
suggest they should reside in a directory such as
"/opensource/python/<appname>", or "opensource/nodejs/<appname>". We
use apache as the web server with a proxy, so that configuration will be under "/www".
I'm not sure I care, except to know that it will get backed up as
needed, reasonable to maintain, and not collide with OEM vendors code.
As a note, we tend to put the development directories under
"/home/user/python/<appname>. Any argument with that plan?
--
Jim Oberholtzer
Chief Technical Architect
Agile Technology Architects
As an Amazon Associate we earn from qualifying purchases.