- Python 85%
- HTML 7.6%
- CSS 6.6%
- JavaScript 0.4%
- XSLT 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitlab-ci-docker | ||
| contrib | ||
| docs | ||
| katex-server | ||
| scripts | ||
| src/moin | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE.txt | ||
| pg_local_init.sh | ||
| pyproject.toml | ||
| README.md | ||
| tox.ini | ||
| uv.lock | ||
| wikiconfig.sample.py | ||
Brýden
This repository contains Brýden, Python-based wiki software forked from MoinMoin 2 maintained primarily by students of MFF CUNI to run Matfyz Wiki.
It aims to clean up the original codebase, adding static typing, removing dead code and reducing outdated dependencies. The storage backend was rewritten to use PostgreSQL via SQLAlchemy instead of the previous flat file storage with Whoosh index, greatly increasing performance.
Development setup
Install these via your system package manager (see below for specifics):
- PostgreSQL
- uv
- For optional LDAP support:
- OpenLDAP client library (
libldap) - Cyrus SASL library
- OpenLDAP client library (
Clone the repo:
git clone https://gitlab.mff.cuni.cz/matfyzak/wiki.git && cd wiki
Initialize the environment:
sh pg_local_init.sh $PWD/db moin 5436 # create a local database
cp wikiconfig.sample.py wikiconfig.py # create wikiconfig.py
uv sync --all-extras # Install dependencies (all groups)
uv run moin dawn # fill the db with sample data
Run the wiki:
uv run moin moin
Log in with the username jsoucno and the password donkeyballs.
Running tests
To run tests, create a new database in the testing Postgres:
createdb -h $PWD/db/sock -p 5436 moin-tests
Then set an environment variable to point to this database and run pytest:
export MOIN_TESTS_DB_CONNSTR="postgresql:///moin-tests?host=$PWD/db/sock&port=5436"
uv run pytest
Installing development dependencies
- Nix (after cloning repo):
nix develop . - Arch Linux:
pacman -S postgresql uv libldap cyrus-sasl - Fedora:
dnf install postgresql-server uv libpq-devel python3-devel openldap-devel cyrus-sasl-devel - OpenSUSE:
zypper install postgresql-server python-uv postgresql-devel python3-devel openldap2-devel cyrus-sasl-devel - Debian (and derivatives):
apt install postgresql libpq-dev python3-dev libldap-dev libsasl2-dev curl -LsSf https://astral.sh/uv/install.sh | sh
Linting and formatting
The project uses ruff:
- to lint:
uv run ruff check FILE_PATH_HERE - to format:
uv run ruff format --preview FILE_PATH_HERE
Both of these commands are used in CI.