metahkg icon indicating copy to clipboard operation
metahkg copied to clipboard

Metahkg is a free and open source lihkg-style forum.

Metahkg

stable: metahkg.org

dev build: dev.metahkg.org

React Nodejs Typescript

Gitlab Github License

Telegram Discord

Maintainers wanted! See https://l.metahkg.org/239.

TL;DR

branch=dev
git clone --recurse-submodules -b $branch https://gitlab.com/metahkg/metahkg.git
cd metahkg && git pull origin $branch && git submodule foreach git checkout $branch && git submodule foreach git pull
./setup.sh

About

This open-source project was created primarily because of me being unable to register a lihkg account as a high school student.

Currently, it aims to be a fully featured alternative to lihkg. However, I might also add (and I have added) other useful features.

As contrasted with lihkg, metahkg is open to everyone and anyone can create an account with a email address, no matter issued by a university or not.

Repos

This repository contains eight sub-repositories written in different languages and frameworks:

Core

  • metahkg-web (typescript, react)
  • metahkg-server (typescript, nodejs, fastify)
  • metahkg-links (typescript,nodejs, fastify)
  • metahkg-api (typescript, auto-generated)
  • rlp-proxy-rewrite (typescript, nodejs, fastify)
  • metahkg-redirect (typescript, next.js)

Projects on the same branch should follow a same minor version. Note that there might be delays, make sure to pull new changes from the sub-repositories, as this repository is not frequently updated.

Forks

  • forks/imageproxy (go)
  • forks/imgpush (python, flask)

Versioning

All sub-projects here follow a same versioning, major.minor.patch.

Packages with the same minor version are fully compatibile. Packages with the same major but not minor version are highly compatibile. Packages with different major versions have little to no compatibility.

e.g. metahkg-server v2.5.1 would be fully compatibile with metahkg-api v2.5.x and metahkg-web v2.5.x, and vice versa.

Branches

dev branch is the development branch, where new features and versions are developed. master branch is a maintained snapshot (bug fixes only) of the dev branch, and would be updated to a different snapshot after some development in the dev branch.

If you with to contribute, please develop base on the dev branch. See CONTRIBUTING.md for more information.

metahkg.org runs the latest master branch code, while dev.metahkg.org runs the latest dev branch code. They are updated to use the latest docker images every hour.

Metahkg Api Client

We have a typescript api client here (in metahkg-api), for easily accessing the api. Please use the api client with a same minor version of metahkg-server.

Docs

Metahkg docs

Contributing

See CONTRIBUTING.md

Todo / Roadmap

See epics or TODO.md.

Issues

Report a bug / submit a feature request by creating an issue.

Cloning

Please clone with:

git clone --recurse-submodules https://gitlab.com/metahkg/metahkg.git
cd metahkg
git submodule update --init --recursive
git submodule foreach git checkout dev
git submodule foreach git pull

Deploying

Metahkg currently only supports using docker for deployment.

Docker

Docs

Script

./setup.sh