Installation
************
First of all, Comics is just a `Django `_
application. Thus, if there are details not outlined in Comics' own docs,
you'll probably find the answer in Django's docs. For example, database
settings are mentioned on this page, but no details are given, as we're just
talking about Django's database settings. Django got better docs for their
database settings than we could ever write, so please refer to Django's docs.
Get release
===========
You can get hold of Comics in two ways:
- Download the lastest release from https://github.com/jodal/comics/releases.
- Clone the Git repository. You can do so by running::
git clone https://github.com/jodal/comics.git
You'll then have the latest development snapshot in the ``main`` branch::
cd comics/
If you want to run a specific release, they are available as tags in the
Git repository. If you checkout a tag name, you'll have exactly the same as
you find in the release archives::
git tag -l
git checkout v25.8.0
Software requirements
=====================
The simple way is to install `uv `_, and while in
the `comics` directory, run::
uv sync --all-extras --all-groups
This will install the correct Python version if needed, create or activate the
virtualenv, and install dependencies.
Minimum dependencies
--------------------
The absolute minimum requirements for getting Comics up and running can be
installed with::
uv sync --no-dev
Optional dependencies for real deployments
------------------------------------------
To deploy Comics, you need a WSGI server. There are several options, but we
tend to use Gunicorn. To install it, run::
uv sync --extra server
By default, Comics is configured to use an SQLite database. While SQLite is
good enough for local development, we recommend PostgreSQL when running
Comics long-term. To install the extra dependencies required to use
PostgreSQL as the database, run::
uv sync --extra pgsql
Comics does not require a cache, but responses are significantly faster with
a cache available. To install the dependencies required for to use memcached
as a cache, run::
uv sync --extra cache
The Comics API is able to respond using JSON, XML, or several other formats.
To install the dependencies required to provide all possible response
formats, run::
uv sync --extra api
Development dependencies
------------------------
If you're setting up Comics for development, you should install `uv
`_, and in the Comics git repository, run::
uv sync --all-extras --all-groups
This installs both the minimum dependencies as described above and all extra
dependencies required for development.