Requirements
Supported OSes
Specs
Minimum
- 1 vcpu
- 2gb ram or 1gb ram + 1gb swap
Recommended
- 2 vcpu
- 4gb ram
Dependencies
tip
You could install other dependencies using the setup script, but you must install git and clone the repository first.
Git
Debian
sudo apt install git
Arch
sudo pacman -Sy git
RHEL
sudo dnf install git
MacOS
brew install git
Nodejs & yarn
Debian
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# use the nodesource setup script
sudo apt install -y nodejs
# install nodejs
sudo corepack enable
# enable yarn
Arch
sudo pacman -Sy nodejs
# install nodejs
sudo corepack enable
# enable yarn
RHEL
sudo dnf install nodejs
# install nodejs
sudo corepack enable
# enable yarn
MacOS
brew install nodejs yarn
Docker & docker-compose
Debian
sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Arch
sudo pacman -Sy docker docker-compose
RHEL
sudo dnf install docker
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
MacOS
brew install docker docker-compose
Nginx
Debian
sudo apt install nginx
Arch
sudo pacman -Sy nginx-mainline
RHEL
sudo dnf install nginx
MacOS
brew install nginx
Mongodb shell and database tools
Optional
This is now optional but still recommended. Required in many manual steps. Skip this for now if you just want to try out metahkg.
Debian
sudo apt install gnupg
# install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# import public key
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# add mongodb apt repository
sudo apt update
# update packages list
sudo apt install mongodb-org-shell mongodb-org-tools
# install mongosh and mongodb database tools
Arch
Install from aur.
cd ~/Downloads
# go to downloads folder (or any other folders)
git clone https://aur.archlinux.org/mongosh-bin.git
git clone https://aur.archlinux.org/mongodb-tools-bin.git
# clone the aur repositories
cd mongosh-bin
makepkg -si
# install mongosh
cd ../mongodb-tool-bin
makepkg -si
# install mongodb tools
cd ..
rm -rf mongodb-tools-bin mongosh-bin
# remove the repositories after installation
RHEL
Add the mongodb repository:
nano /etc/yum.repos.d/mongodb-org-6.0.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
Install:
sudo dnf install mongodb-org-shell mongodb-org-tools
MacOS
brew tap mongodb/brew
# add mongodb formula repository
brew update
brew install mongodb-database-tools mongodb-community-shell
Third party services
- mailgun (for sending emails) - obtain an api key at mailgun.com
- recaptcha - obtain a site key and secret pair from developers.google.com/recaptcha
Domain
Tip
You don't need a domain to test or deploy locally. See below.
Metahkg needs five domains / subdomains, for the web app and api, link shortening, images processing/proxy, and metadata (link preview) proxy.
- cloudflare
- namecheap
- You can get a free domain from namecheap if you are a student
- Some free subdomains are available, for example from duckdns
Deploying locally
If you are deploying locally only, you can use domains that resolves to localhost
( e.g. *.test.wcyat.me )
You can configure the domain to resolve to localhost on your machine only:
sudo nano /etc/hosts
Append a line to /etc/hosts.
# ...
127.0.0.1 example.com
127.0.0.1 l.example.com
127.0.0.1 i.example.com
127.0.0.1 rlp.example.com
127.0.0.1 r.example.com