Sanky edited this page Feb 24, 2012 · 3 revisions

veekun is actually an instance of spline, and is split across several projects. To actually get the site running as-is, you'll need all of them.

Again, if you just want the Pokédex data, see the pokedex instructions for getting data. XXX: link to docs


  • pokedex
    Contains all the Pokédex data and sprites, as well as the logic for some things like the name lookup. The data is stored as CSV dumps, and the schema is in Python, but a tool called pokedex is included to load the data into a database. It also has documentation. XXX: link to docs
  • spline
    Core for the Web site. It doesn't do a lot on its own; it's an extension of the Pylons framework to allow for plugins. The actual Pokédex part of the site is its own plugin, entirely separate from the user stuff and forum stuff and so forth. The idea is that you can someday run the forums for your own site without lugging everything else along.
  • spline-pokedex
    Requires spline and pokedex.
    Pokédex plugin for the site. Performs the actual lookups, spits out the Pokédex pages, has all the searching logic, etc.
  • veekun
    Requires spline.
    Unlike the others, this isn't really a Python module; it's just a collection of spline customizations. The static pages, layout, and temporary file directory are in here.

Running the site

Not too complicated.

  1. Check out all the projects listed above. They use Git, and are all hosted on github. If you can't figure this bit out, you probably don't need to be running veekun.
  2. Run python develop for pokedex, then spline, then spline-pokedex. Using a virtualenv is a very good idea.
  3. Load the Pokédex data into a database somewhere. XXX: link to docs
  4. Run paster make-config spline development.ini to get a generic configuration file. There isn't too much in here, but the most interesting settings are:
  • If you want debug mode, comment out the set debug = false line. This will give you a traceback and a cool interactive Python console in your browser when something crashes. Since this can be used to run absolutely any code on your machine, do not enable debug mode if you make your server publicly accessible.
  • spline-pokedex.database_url must be changed to point to your Pokédex database. The URL ought to be exactly the same as the one you used to load the data.
  • spline.site_title controls the title tag and header. Changing it to something other than “veekun” helps distinguish between your server and
  1. Run paster setup-app development.ini to create the database for users, forum, etc.
  2. From the veekun directory:
    paster serve --reload development.ini
    This will start up a little development Web server and give you a link to the now-running site. It'll restart automatically when it detects that any code it's using has changed. You're good to go!

You can also run paster from the spline directory, which will skip all veekun-specific customizations. I rarely try this, so large chunks of CSS may be missing, but everything else should work okay.

If, for some perverse reason, you want to run this code in a production environment, you should check the Pylons documentation for the best way to plug veekun into your web server.

Updating your code

Just git pull --rebase everything. You might want to run for each project again, just in case there are new dependencies, and you'll almost certainly need to reload your Pokédex database.

A note on spline-users and spline-forum

These use an actual honest-to-god writeable database, entirely separate from the Pokédex database. Running paster setup-app development.ini should set it up. I think that'll work, anyway. I've been trying to use sqlalchemy-migrate for schema migration, so you can use that after creating an initial db. Better docs forthcoming once the dust settles.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.