Skip to content
Open-source blogging/forum software written in V
Branch: master
Clone or download
Latest commit 86d1a68 Jan 18, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Create LICENSE Jul 29, 2019 Update Dec 11, 2019
header.html fix log in link Dec 11, 2019
index.html lock topics Dec 13, 2019
init_postgres_db.sql lock topics Dec 13, 2019
main.v make App public Jan 12, 2020
new.html use ORM; ban users; is_admin; delete posts; app.logged_in; log off Dec 10, 2019
oauth.v fix oauth.v Jan 18, 2020
post.html lock topics Dec 13, 2019
user.v remove unused imports; inc nr views Dec 14, 2019


Open-source blogging/forum software written in V.

(The name is not final, name suggestions are welcome.)

This is pre-alpha software.

Lots of things are broken and not implemented yet in V, vweb, and vorum.

Setting up the database

Install Postgres and libpq, create a database vorum (you can use any name), and run the initialization script:

psql -f init_postgres_db.sql -d vorum

Edit Postgres connection settings (Postgres user and db name) in main.v.


V 0.1.23 is required.

git clone
cd vorum
v .

Running vorum on http://localhost:8092...


Everything, including HTML templates, is in one binary ~100 KB file vorum. That's all you need to deploy.

Setting up GitHub authentication

Right now only GitHub authentication is supported. (Traditional registration via email will be implemented soon.)

  • Create a GitHub oauth app (GitHub Settings => OAuth Apps).

  • Set Authorization callback URL to

  • Copy Client ID and Client Secret, and update the values in oauth.v or set VORUM_OAUTH_CLIENT_ID and VORUM_OAUTH_SECRET env vars.

Known problems:

  • vweb HTML templates are precompiled and are part of the application's binary, so every time a template is changed, the entire app has to be rebuilt. This will be resolved in the future.

  • no epoll/kqueue yet. So the performance is pretty bad until this is implemented: about 1k req/sec.

  • Right now only Postgres is supported. SQLite, MySQL, and MS SQL backends will be supported in the future.

You can’t perform that action at this time.