Codebase of bawi.org — a Korean-community bulletin-board system in Perl 5, running on Apache2 + mod_perl (ModPerl::Registry) with MariaDB. No web framework, no build step: plain CGI scripts and server-side HTML templates.
Fast and lightweight. Prefer plain Perl, server-rendered templates, and a
minimal dependency set over frameworks and heavy libraries (the complete
dependency list fits in docker/web/Dockerfile).
lib/Bawi/— core modules (Auth, Board, User, DBI wrapper)main/ board/ user/ reg/ admin/— CGI endpoints with theirskin/<name>/*.tmpltemplates, Alias-mapped in the Apache vhost (plus legacy/x/and/xboard/→board/)search/— legacy placeholder (not web-mapped)postman/— email contact-relay for member inquiries (not web-mapped)apache2/— vhost configs and mod_perlstartup.plconf/—*.conf.sampletemplates (real configs live untracked on prod)db/— MariaDB schema dump and dated migration scriptsbin/,t/— CLI utilities and smoke testsdocker/,seed/— local test environment (see below)
A reproducible Docker test environment (same stack as prod, synthetic data) ships with the repo — see INSTALLATION.md:
docker compose up -d --build
./seed/reseed.sh
# http://localhost:8080/ (login: root / test1234)Production runs the main branch; a deploy is a git pull on the server.