Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
hpotter Addition of MySQL pot and using an external non-SQLite database Apr 16, 2019
.choices.docker initial Apr 16, 2019
.choices.mysql Addition of MySQL pot and using an external non-SQLite database Apr 16, 2019
.choices.queries Fixed decode issue Mar 25, 2019
.gitignore Changes to and added empty etc files Oct 5, 2017
DO_MYSQL initial Apr 16, 2019
Notes An initial implementation of MySQL/MariaDB Mar 20, 2019
README This has gotten too big; it's time to put in more feature branches. Jan 28, 2019 Changes for ability to write to other databases. Apr 16, 2019
RSAKey.cfg Fixed RSAKey, Fixed ssh command_response problem Oct 29, 2018
ajax.html Moved the JSON server port number to and fixed an encoding error. Sep 6, 2018
requirements.txt Removing versions and hoping for the best. Apr 16, 2019 Addition of MySQL pot and using an external non-SQLite database Apr 16, 2019 Merge branch 'dev' into dev_jon Oct 22, 2018


A simple to install and run Honey Pot.

Build Status

Running and developing

To install the necessary packages, do:

pip install -r requirements.txt

To run the honeypot itself, do:

python3 -m hpotter

To run the SQL to JSON webserver, do:

python3 -m hpotter.jsonserver

Once the jsonserver is running, you can see the current data by loading the ajax.html file that is in the directory above into your web browser.

To see the current contents of the database, do: sqlite3 -list main.db .dump

The JSON API is easy to query. To get all the data, go to localhost:8080:

curl localhost:8080

If you're interested in a particular table, reference that:

curl localhost:8080/sh

If you want to use JSONP, pass a callback:

curl localhost:8080/?callback=jQuery

To get JSON in the form to use with jTables, do:

curl localhost:8080/?handd=true


The default database is SQLite and requires no configuration. The tables are written into the default ("main.db") database.

If you'd like to use a different database, there are some environment variables that need setting.

HPOTTER_DB -- the name of the database type, e.g.: "mysql". Defaults to "sqlite".

HPOTTER_DB_PASSWORD -- e.g.: "my-secret-pw". Defaults to "".

HPOTTER_DB_HOST Defaults to "".

HPOTTER_DB_PORT -- e.g.: 3306 Defaults to "".

HPOTTER_DB_DB -- The database where the tables are placed e.g.: hpotter. Created if not present. Defaults to "hpotter".

Directory structure


This is the main honeypot executable. It looks in plugins and runs all the plugins found there.


This is where the protocol-specific plugins reside. They are based on The file is a good place to start for creating your own plugins.


Where the SQL to JSON web server resides.


This product includes GeoLite2 data created by MaxMind, available from

You can’t perform that action at this time.