===== Dad ===== Dad is a server that manages other services. Goals ===== 1. Create a system that supports a deploy then test model of development rather than code, test, deploy. 2. Provide a simple container for creating more complex production environments History ======= When writing code, the process of running tests is rarely simple. Often time supporting services need to be setup and configured. The services can be complicated to set up and maintain. The result is that finding consistently between a development environment and production is very difficult. Dad aims to reverse the process by providing a means of configuring and maintaining a local production environment, defining the sandbox where an application runs and allow controlling those services through convenient APIs. Dad does not maintain physical hardware or provide any support for doing operating system type tasks. What it does do is provide a simple means for orchestrating services and asking those services to perform operations in a specified sandbox environment. Beta ==== Dad is beta software. It started as an experiment in a different conceptual model for development. There is a difficult problem of finding agreement between applications for things like testing. Dad avoids this problem by focusing on processes and letting those who setup and deploy the environment consider the larger picture (including security). Installation ============ To install Dad get the source and change into the directory where it is located. Then install it with: :: $ python setup.py install Or if you will be changing code: :: $ python setup.py develop Running Dad =========== Dad can be started with the dad.web command. It is a good idea to start with a simple config as well. In the configs directory there is an example that will start up a simple Python web server serving static files. :: [simpleweb] command = python -m SimpleHTTPServer $PORT PORT=8000 You can then start the server using this config: :: $ DAD_CONFIG=configs/simple.conf dad.web This will start the dad server and a simple web server that will serve static applications. The application is run from within it sandbox. You'll notice after running the server once that a new 'dad_sandboxes' directory was created. Inside that directory you should also find a 'simpleweb' directory. This directory is your sandbox directory for your application. To test this, you can add a file and see if you can access it via the running server. :: $ echo 'Hello World!' > dad_sandboxes/simpleweb/hello.txt $ DAD_CONFIG=configs/simple.conf dad.web Then in your web browser go to http://localhost:8000/hello.txt and see if you see "Hello World!". For more info what is possible in the configuration file check out the docs directory.