pycon travis-ci vagrant python

Website for PyCon

3 years after

===================== PyCon 2017 Web Site

Built by the Caktus Consulting Group atop the Django web framework.

Rather than use this as the basis for your conference site directly, you should instead look at https://github.com/pinax/symposion which was designed for reuse.

PyCon 2017 is built on top of Pinax Symposion but may have customizations that will just make things more difficult for you.

Installation instructions are in this README. There's more documentation at https://readthedocs.org/projects/pycon/.

Build status for develop branch:

.. image:: https://travis-ci.org/PyCon/pycon.svg?branch=develop :target: https://travis-ci.org/PyCon/pycon

Running the PyCon site locally

Developers can easily run the PyCon web application inside a virtual machine by using Vagrant_. Once you have Vagrant installed on your computer, simply check out this project from GitHub and ask Vagrant to build its development machine::

$ git clone https://github.com/PyCon/pycon.git
$ cd pycon
$ vagrant up

On this first call to up that creates the virtual machine, Vagrant will go ahead and automatically perform all of the provisioning steps that the application needs. You can later re-run the steps if you want by typing vagrant provision. Provisioning may take a few minutes to complete, since it downloads Django and all of the libraries it needs.

When provisioning finishes, the PyCon application is ready to run. Simply SSH into the Vagrant machine and follow the instructions in the greeting that it prints out, which will recommend something like this::

$ vagrant ssh
(vagrant)[email protected]:~$ cd /vagrant
(vagrant)[email protected]:/vagrant$ ./manage.py runserver 0.0.0.0:8000

Finally, you should see the development version of the PyCon web site when you visit http://localhost:8000/ in your browser!

.. _Vagrant: https://www.vagrantup.com/

Running the PyCon web site in production

  • You will want to run the application on an Ubuntu 12.04 or 14.04 host.

  • Create a new virtualenv and activate it::

    $ virtualenv env/pycon $ . env/pycon/bin/activate

  • Install the requirements for running and testing locally::

    $ pip install --trusted-host dist.pinaxproject.com -r requirements/project.txt

  • Copy pycon/settings/local.py-example to pycon/settings/local.py.

  • Edit pycon/settings/local.py according to the comments. Note that you will have to edit it; by default everything there is commented out.

  • If you have ssh access to the staging server, copy the database and media::

    $ fab staging get_db_dump:pycon $ fab staging get_media

    Change pycon in that first command to the name of your local database.

    If you get Postgres authorization errors when trying the get_db_dump, find another developer who has access already and copy the ~/.pgpass file from their account on that server to your own account; it has the userids and passwords for the databases.

  • Otherwise, ask someone for help. We don't have a good way currently to get a new system running from scratch.

  • Create a user account::

    $ ./manage.py createsuperuser

  • Edit pycon/settings/local.py to make sure DEBUG=False.

  • Add an appropriate ALLOWED_HOSTS setting (https://docs.djangoproject.com/en/1.5/ref/settings/#std:setting-ALLOWED_HOSTS)

  • Install lessc (Go to http://lesscss.org and search for "Server-side usage")

  • Pre-compress everything by running::

    python manage.py compress --force

    That will write compressed css and js files under site_media

  • Gather the static files::

    python manage.py collectstatic --noinput

  • Arrange to serve the site_media directory as /2017/site_media/whatever. E.g. site_media/foo.html would be at /2017/site_media/foo.html.

  • Arrange to serve the wsgi application in symposion/wsgi.py at /, running with the same virtualenv (or equivalent). It will only handle URLs starting with /2017 though, so you don't have to pass it any other requests.

To run tests

Tests won't run from /vagrant inside the vagrant system due to shortcomings of the way Vagrant makes the host system's files available there. It's probably simplest to just do development directly on any Ubuntu 14 system.

::

python manage.py test

or try running make test or tox. (Yes, we have too many ways to run tests.)

Also, Travis (https://travis-ci.org/PyCon/pycon) automatically runs the tests against pull requests.

More documentation

There's more documentation under docs/.

Related Repositories

pycon-pandas-tutorial

pycon-pandas-tutorial

PyCon 2015 Pandas tutorial materials ...

pycon-code-of-conduct

pycon-code-of-conduct

pycon code of conduct ...

kaggle-pycon-2015

kaggle-pycon-2015

Solution code from my winning submission to Kaggle's PyCon 2015 competition ...

cz.pycon.org-2015

cz.pycon.org-2015

PyCon in the Czech Republic 2015 - early adopters version ...

pycon-mrjob

pycon-mrjob

Snakes on a Hadoop: Introduction to mrjob - PyCon 2014 ...


Top Contributors

dpoirier daaray lukeman brandon-rhodes jtauber rayt86 dchukhin alex lukesneeringer mlhamel brosner ewdurbin calebsmith jnoller wolever copelco njl jacobian paltman SonOfLilit poirier jwm taavi doobeh zerok jesstess juliaelman skeuomorf ncnwoko onelson

Releases

-   deploy-201507251103 zip tar
-   2016.17 zip tar
-   2016.16 zip tar
-   2016.14 zip tar
-   2016.12 zip tar
-   2016.11 zip tar
-   2016.10 zip tar
-   2016.9 zip tar
-   2016.8 zip tar
-   2016.7 zip tar
-   2016.6 zip tar
-   2016.5 zip tar
-   2016.4 zip tar
-   2016.3 zip tar
-   2016.2 zip tar
-   2016.1 zip tar
-   2016.0 zip tar
-   2014 zip tar
-   2013 zip tar
-   2012 zip tar
-   2011 zip tar
-   1.2 zip tar
-   1.1.6 zip tar
-   1.1.5 zip tar
-   1.1.4 zip tar
-   1.1.3 zip tar
-   1.1.2 zip tar
-   1.1.1 zip tar
-   1.1 zip tar
-   1.0 zip tar