Matfyz Wiki
  • Python 85%
  • HTML 7.6%
  • CSS 6.6%
  • JavaScript 0.4%
  • XSLT 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-14 23:45:00 +02:00
.gitlab-ci-docker CI: Remove unneeded command 2026-05-05 13:12:47 +02:00
contrib organize imports 2024-09-28 17:03:32 +02:00
docs misc 2025-02-18 17:17:18 +01:00
katex-server upgrade katex 16.10 -> 17.0 2026-10-02 16:03:00 +02:00
scripts make ruff_check_since executable 2026-10-02 16:03:00 +02:00
src/moin fix infobox macro in modernized theme 2026-10-14 23:45:00 +02:00
.editorconfig Add editorconfig file 2024-04-11 19:55:33 +02:00
.gitignore remove lessc dependency 2026-04-11 14:56:48 +00:00
.gitlab-ci.yml CI: Reuse uv cache from custom image 2026-05-05 13:00:02 +02:00
flake.lock Add gitlab ci test for testing setup 2026-04-10 19:14:24 +02:00
flake.nix Add frontend for showing analytics data 2026-10-02 20:29:56 +02:00
LICENSE.txt trivial change to setup.py reflecting foobar theme was replaced by basic theme long ago 2015-12-13 09:56:22 -07:00
pg_local_init.sh Merge branch 'analytics-postgres' into 'master' 2026-01-16 23:21:57 +01:00
pyproject.toml Add frontend for showing analytics data 2026-10-02 20:29:56 +02:00
README.md preview flag 2026-10-02 20:25:39 +00:00
tox.ini add python39 to travis, tox env list 2021-01-25 12:27:30 -07:00
uv.lock Add frontend for showing analytics data 2026-10-02 20:29:56 +02:00
wikiconfig.sample.py Remove obsolete code 2026-10-02 22:25:21 +02:00

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

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.