Web catalog of Void Linux packages.
See also Running with docker.
- Clone and enter repo:
git clone https://github.com/Chocimier/pkgs.void && cd pkgs.void
- Create and activate Python 3 virtualenv:
python3 -m venv venv && . venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Used non-python tools are git, rsync, xbps, xtools and wget. - Clone https://github.com/void-linux/void-packages .
- Generate database:
./update.sh
. This step publish whole directory on your instance of catalog, accordingly to AGPL license. This modifies void-packages clone. Either make sure that xdistdir will find clone of void-packages, or disable repo parsing with-T
flag. - Run:
./serve.py
There is a CGI script cgi.sh
and FCGI script: fcgi.sh
.
Settings in config.ini
, if any, overrride setttings in configs/defaults.ini
Optional worker collecting build logs info from official Void builder requires a queue server. By default it's redis, but can be configured to other supported by Celery.
- Run
docker-compose up
.
This starts webserver listening on port 7547, two instances of webapp, cron for updating database, buildlog worker and a queue server. Containers communicate through shared voulems, so need to be run on same host.
Configuration of webserver is loaded from volume mounted from
misc/docker/volumes/webserver-cfg
. It specifies count of webapp
instances and logging level.
Container that updates database builds minimal database on every startup within 3 minutes, then full database two times an hour. Webapp fails before first database is created.
Lint hooks are installed by symlinking .git/hooks
to git_hooks
.
They use tools specified in requirements-dev.txt
.
Pylint takes few seconds on commit to scan code.
Profiling script use graphviz.