Publicly available demo - https://github.manticoresearch.com/
Blogpost about this project - https://manticoresearch.com/blog/manticoresearch-github-issue-search-demo/
To run the project on your local machine, you need to have Docker installed with the compose plugin. Follow these commands to start:
git clone https://github.com/manticoresoftware/manticore-github-issue-search.git
cd manticore-github-issue-search/docker
cp .env.example .env
If you want to be able to crawl your github repositores, specify your github token ("Generate your token" -> "classic" -> specify name -> no checkboxes -> "Generate token") in GITHUB_TOKENS=""
in the .env
file.
cd containers/manticore
# skip the following line if you just want to crawl your own repositories instead and don't need any ready data
wget https://github.com/manticoresoftware/manticore-github-issue-search/releases/download/240327/backup.tar.gz && rm -fr backup && tar xzf backup.tar.gz
cd ../..
docker compose down -v
docker compose up
After completing these steps, the project should be accessible at http://localhost/. If you have restored from a backup, you can open one of the crawled repositories, for example, http://localhost/manticoresoftware/manticoresearch/.
The default port for the server is 80, so if you need to change it, update the nginx
section in app/config/app.ini.tpl
.
In the .env
file, you can set up the other variables:
GITHUB_TOKENS
- GitHub tokens to use for crawlingGMAIL_ACCOUNT
/GMAIL_PASSWORD
- to send notifications throughSSL_CERT_PEM
/SSL_CERT_KEY
- for HTTPS
If you aim to use this project beyond a Manticore Search demo, such as an alternative to GitHub's issue search, there's a method for deploying it on a remote server. First, install yoda on your machine and familiarize yourself with its documentation.
You will need a GitHub token to utilize the GitHub API. Ensure that your token is set in your environment on the user account you're using to deploy.
You should add the GITHUB_TOKENS
to the remote server's environment. Usually, this can be done by adding it to the ~/.bashrc
file like so:
export GITHUB_TOKENS=...
Remember, if you haven't added any tokens, you're limited to 60 requests per hour. That's not a lot for indexing an average repository. If you started the project with Docker Compose before without a token, note that Docker Compose caches it, and you'll need to recreate all containers after making changes by running docker compose up --force-recreate
.
For deployment, tweak the docker/Envfile
with your server details and make sure you have passwordless authentication set up with your SSH key. Then, simply run:
yoda deploy --env=production
Please remember, deployment happens from the default branch to the server from the local machine. You can use the --branch
flag with the yoda
command to deploy from a different branch.
Place your public keys in the docker/.ssh/authorized_keys
folder on the local machine.
-
Start by initializing a new server using Rocky Linux 9 as the base operating system.
-
Enter your server's IP address in the
Envfile
file on your local machine. -
Execute the following command to prepare the server and also set up SSH keys for you:
yoda setup --host=server-ip
-
Kick off the deployment process with the next command:
yoda deploy --host=server-ip
or
yoda deploy --env=production --branch=main
-
Wait for it to finish, and then you're good to go!