From 2e39d5f21a31e78439155786f54523693dbb51fb Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 21 Nov 2017 15:21:40 -0700 Subject: [PATCH] Add supervisord contrib example (#3262) * Add supervisord contrib example Useful for running a development instance really quickly. Doesn't yet support: * ipdb/pdb, but still supports rdb * color log output * Revert to celery concurrency * Updates --- .gitignore | 1 + contrib/readme.rst | 28 +++++++++++++++++++++++++++ contrib/supervisord.conf | 42 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 contrib/readme.rst create mode 100644 contrib/supervisord.conf diff --git a/.gitignore b/.gitignore index 5c693fb4f..ad97ad1a3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ .ropeproject/ _build bower_components/ +contrib/supervisord.log deploy/.vagrant dist/* local_settings.py diff --git a/contrib/readme.rst b/contrib/readme.rst new file mode 100644 index 000000000..cbda57f9d --- /dev/null +++ b/contrib/readme.rst @@ -0,0 +1,28 @@ +Running Read the Docs via Supervisord +===================================== + +This is the easiest way to start all of the commands you'll need for development +in an environment relatively close to the production evironment. All you need is +``supervisord`` and ``redis-server``. Installation of ``redis-server`` is +outside the scope of this documentation, but once installed, all you need to run +from ``supervisord`` is:: + + pip install supervisord + cd contrib/ + supervisord + +This will bring up a web instance for the dashboard, a web instance for +documentation serving, two celery instances, and redis-server. + +If you already are running redis-server, this will complain about the port +already being in use, but will still load. + +Debugging +--------- + +To debug, set trace points like normal, with ``pdb``/``ipdb``. Then you can +connect to the process by bringing it to the foreground:: + + supervisorctl fg main + +You'll still see logging to STDERR on the main supervisord process page. diff --git a/contrib/supervisord.conf b/contrib/supervisord.conf new file mode 100644 index 000000000..ef887eca2 --- /dev/null +++ b/contrib/supervisord.conf @@ -0,0 +1,42 @@ +[supervisord] +nodaemon = True +directory = ../ +loglevel = error +strip_ansi = False +environment = PYTHONUNBUFFERED=1,READTHEDOCS_INSTANCE=readthedocs.org + +[inet_http_server] +port = 127.0.0.1:9001 +username = 🍔 +password = 🍟 + +[supervisorctl] +username = 🍔 +password = 🍟 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[program:redis] +command = redis-server +directory = ../ +priority = 0 +startretries = 0 +stderr_logfile = /dev/stderr +stderr_logfile_maxbytes = 0 + +[program:main] +command = python manage.py runserver 8000 +directory = ../ +priority = 100 +stopasgroup = True +stderr_logfile = /dev/stderr +stderr_logfile_maxbytes = 0 + +[program:celery] +command = celery worker -A readthedocsinc -Q default,celery,web,builder -l DEBUG -c 2 +directory = ../ +priority = 100 +stopasgroup = True +stderr_logfile = /dev/stderr +stderr_logfile_maxbytes = 0