Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
ahmia-site — Django-based search engine and crawler stack that indexes .onion hidden services on the Tor network, providing searchable metadata for dark web content discovery. | Kitploit
Tools/GitHubGitHub/ahmia/ahmia-site
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringWeb SecurityPrivacyCrawler
GitHubahmia/ahmia-site

ahmia-site

Django-based search engine and crawler stack that indexes .onion hidden services on the Tor network, providing searchable metadata for dark web content discovery.

View Repository
7901143520 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Website

https://ahmia.fi/

Ahmia is the search engine for .onion domains on the Tor anonymity network. It is led by Juha Nurmi and is based in Finland. This repository contains crawlers used by Ahmia search engine.

Compatibility

The newest version of Ahmia is built with Python 3, Django 5 and Elasticsearch 8. You will need to know these technologies to create a working Ahmia installation. Ahmia crawls using ahmia-crawler.

Prerequisites

Ahmia-index should be installed and running

Installation guide

pip install -r requirements.txt

Configuration

This is a common step, both for local (dev) and production environment.

cp ahmia/example.env ahmia/.env

Please modify the values in .env, to fit your needs. You have to specify at least the postgresql credentials, if you are using the production settings.

Setup Website

Migrate db

python manage.py makemigrations ahmia
python manage.py migrate

Make the static files

python manage.py collectstatic

Copy Elasticsearch CA cert in place

/usr/local/share/ca-certificates/http_ca.crt

Run site in dev mode

Start development server

Development settings use sqlite as a database. Default settings should work out of the box.

python manage.py runserver

Production -- Nginx

NOTE: If your deployment directory isn't /usr/local/lib/ahmia-site replace accordingly

  • Configure and run nginx:
# Check the confs and *.map filtering files you plan to utilise
cp *.map /etc/nginx/
cp conf/nginx/nginx.conf /etc/nginx/nginx.conf
cp conf/nginx/django-ahmia /etc/nginx/sites-enabled/django-ahmia
service nginx start

Increase worker_connections in /etc/nginx/nginx.conf:

events {
        worker_connections 2048;
}

Production -- Gunicorn

EITHER:

  • Run gunicorn via bash scripts (work as daemons ~ edit files to change):
bash ./bin/run-ahmia.sh
bash ./bin/run-ahmia-onion.sh

OR

  • configure and run gunicorn (tested with gunicorn==21.2.0) as systemd daemon
cp conf/gunicorn/*.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable ahmia.service
systemctl status ahmia.service
systemctl enable ahmia-onion.service
systemctl status ahmia-onion.service
systemctl restart gunicorn

Edit your /lib/systemd/system/nginx.service to add ahmia-site.service ahmia-site-onion.service

systemctl edit nginx

[Unit]
After=network-online.target remote-fs.target nss-lookup.target ahmia.service ahmia-onion.service
Requires=ahmia.service ahmia-onion.service

systemctl daemon-reload
systemctl cat nginx

Delete added onions once a week

# Every three days
40 5 */3 * * cd /usr/local/lib/ahmia-site && venv/bin/python manage.py deleteonions >> weeklydelete.log 2>&1

License

Ahmia is licensed under the 3-clause BSD license.

Download Tool