The following is based off of one client application deployment scenario, with all of the files described herein managed in a Git repository.
This is NOT a proposed standard; if this is used at all, it’ll be used at the application server level and will be transparent to the underlying (embedded/mounted/mapped/attached/installed) application.
/home/<user>/apps/<application>/— Git Root.gitignore— Ignore almost everything.README.textile— Fancy GitHub notice.restart— Progressive upgrade / roll-out script. This and thestart/stopscripts, below, are venv aware and do not require the venv to be active.start— Production startup.stop— Production shutdown.etc/— Configuration.development.ini— Development, using Paste’s HTTP server.nginx.conf— Production nginx configuration, utilized by Nginx automatically.production.ini— Base production configuration, utilized by the sharding configs.shard-1.ini— First runner, there are usually n-cores minus one shards.- …
src/— Python package, installed via./setup.py develop.setup.py- …
usr/share/— The web root, with files symlinked from elsewhere. (Git supports this.)src/— Git externals for dependencies.
var/— Non-essential data, e.g. for Beaker sessions and cache.cache/locks/sessions/