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
/stop
scripts, 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/