Join GitHub today
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
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
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.
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.
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.
- 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.
- Run python setup.py develop for pokedex, then spline, then spline-pokedex. Using a virtualenv is a very good idea.
- Load the Pokédex data into a database somewhere. XXX: link to docs
paster make-config spline development.inito 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 = falseline. 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_urlmust 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_titlecontrols the title tag and header. Changing it to something other than “veekun” helps distinguish between your server and veekun.com.
paster setup-app development.inito create the database for users, forum, etc.
- 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
git pull --rebase everything. You might want to run
setup.py 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
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.