[[TOC]] = Blueprint for LiveCD & Installer = A Live CD (probably based on Ubuntu) that can be used to demo and deploy a Sahana Eden instance. The same CD can be used to build Virtual Machines. We want 4 different builds: * Lite * Normal * GIS * Dev Build notes are being maintained at [http://9while9.com/index.php?option=com_content&view=category&id=20&Itemid=27 http://9while9.com]. == Lite == Designed to provide a quick LiveCD demo of functionality without needing any installation. Can also be run headless as a simple server to be accessed by host's Web browser & perhaps 1-2 other users on a small LAN. * Python * Rocket (i.e. web2py's native webserver) * Sqlite (i.e. Python's native DB) === Status === Revision A is now available at [[http://9while9.com 9while9.com]]. This revision eliminates the GUI desktop and commits to being a headless Lite web2py server. Command line access is available using shellinabox, from which root user can execute update scripts. The Eden-Lite appliance boots to a menu of running services and their ports. Web2py runs on the IP address leased from DHCP while listening simultaneously on 127.0.0.1. Exiting the configuration console brings up a command prompt. From my testing, it appears one script needs revised: /usr/bin/local/import. Any feedback is welcome as I begin to work out revision F, which I hope will be the final revision. I'm on irc as nick ''ghoulmann'', and may also be contacted by [http://9while9.com/index.php?option=com_contact&view=contact&id=1&Itemid=13 email]. === Build === {{{ bzr checkout --lightweight -r 2717 lp:~mdipierro/web2py/devel web2py cd web2py/applications bzr checkout --lightweight -r XXX lp:sahana-eden eden }}} * [ConfigurationGuidelines#FilePermissions File Permissions] * [ConfigurationGuidelines#UsefulAliases Useful Aliases] * [ConfigurationGuidelines#TicketViewer Ticket Viewer] 1st run: {{{ cd ~web2py # migrate/import python web2py.py -S eden -M -R applications/eden/static/scripts/tools/noop.py # prepop off sed -i 's/deployment_settings.base.prepopulate = True/deployment_settings.base.prepopulate = False/g' applications/eden/models/000_config.py # migrate off sed -i 's/deployment_settings.base.migrate = True/deployment_settings.base.migrate = False/g' applications/eden/models/000_config.py # compile python web2py.py -S eden -R applications/eden/static/scripts/tools/compile.py }}} Run with password & NIC bound to real IP (need to work out how to find this out): {{{ python web2py.py -a -i x.x.x.x update: python web2py -a -i 0 127.0.0.1 }}} Grabbing the ip for insert into 000_config.py {{{ hostname -i | sed 's/127.0.0.1 //' }}} === Updates === Need a way to keep the system updated easily (web2page?): {{{ cd ~web2py # migrate on sed -i 's/deployment_settings.base.migrate = False/deployment_settings.base.migrate = True/g' applications/eden/models/000_config.py rm -rf applications/eden/compiled # migrate python web2py.py -S eden -M -R applications/eden/static/scripts/tools/noop.py # dbstruct (not needed for sqlite) # migrate off sed -i 's/deployment_settings.base.migrate = True/deployment_settings.base.migrate = False/g' applications/eden/models/000_config.py # compile python web2py.py -S eden -R applications/eden/static/scripts/tools/compile.py }}} ==== Online Profile ==== In order to have full control of what a remote system has, without the need for user intervention, we should have each instance check an online profile from which it reads what it needs to do: * Version of Eden * Version of Web2Py * Upgrade scripts * 000_config settings * modules enabled * Reference data to import This would be a scheduled task. == Normal == Designed to be run headless in an office of up to 50 users with poor quality Internet...would be a dedicated machine if a lot of users. * [wiki:InstallationGuidelinesApacheModWSGI Apache/WSGI] * [wiki:InstallationGuidelinesMySQL MySQL] (we have better [wiki:PakistanDeploymentCycle#SysadminToDo tools for handling db migrations] currently) or * [wiki:InstallationGuidelinesPostgreSQL PostgreSQL] (better for being common to GIS) == GIS == Designed to be run headless in an office of up to 50 users with poor quality Internet...would be a dedicated machine if a lot of users. Useful for the [wiki:BluePrintGISGPSSharing GPS Sharing] tool, for instance. * [wiki:InstallationGuidelinesGISData] * [http://live.osgeo.org OSGeo LiveDVD] is based on Ubuntu & includes Data. Eden may be on the next version. * [wiki:InstallationGuidelinesApacheModWSGI Apache/WSGI] * PostGIS * !GeoServer * osmosis * Mapnik * DATA * Scripts to download content by geographic area (ideally these would be added to Sahana UI for use outside this environmonet too, but that could come later) * !OpenStreetMap * Contours == Dev == === Status === Revision J is complete. It fixes a problem with Pydev configuration and includes usage notes for the end-user. LXDE serves as the lightweight desktop environment. Webmin and SSH are bundled with the distro. Documentation had been developed and is current available at [http://9while9.com http://9while9.com]. It will be migrated to this wiki. The dev env can launch Eclipse and Firefox with Firebug. irssi is incorporated and pre-configured to log in to #sahana-eden on irc.freenode.net. Deprecated: Note that the dev env serves as a headless Eden server from startup. Simply exit the confconsole, log in, and startx to enter the gui development environment. See the [DevEnvUsageNotes usage notes] for details. === Spec === Designed for use in Training sessions where we want to get a number of people on diverse equipment operational quickly. Should include a Desktop, [http://ipython.scipy.org iPython] & Debugging tools: [DeveloperGuidelinesEclipse Eclipse] & [http://getfirebug.com Firebug]. Eclipse needs configuring to support Web2Py & Web2Py would normally be run from Eclipse's Debug mode. Homepage of Firefox would be set to http://127.0.0.1:8000/eden Firefox should include useful bookmarks such as Launchpad, Trac, web2py book, jquery docs, etc This would replace our [InstallationGuidelinesVirtualMachine existing Dev VM]. === Build === {{{ bzr branch -r 2717 lp:~mdipierro/web2py/devel web2py cd web2py/applications bzr branch -r XXX lp:sahana-eden eden }}} === Updates === 'update' alias {{{ cd web2py bzr pull -r cd applications/eden bzr pull -r }}} == Status == Students at [http://www.chelseaschool.edu Chelsea School] are building these for us based on [http://www.turnkeylinux.org TurnKey Linux]. Visit the students' [http://9while9.com project page] for more information. ---- BluePrints