This project's goal is improve the "history search problem" of the major Chromium based browsers.
If you search for "Browser History", you'll find more posts about Privacy, VPNs and other ways to protect your search history. Very few will discuss better ways to use or analyze your browser history. If you do find a solution, it will usually show you how to export history into a cvs file.
Follow these steps to get started:
git clone git@github.com:richhorace/elastic-stack-browser-history.git
cd elastic-stack-browser-history/scripts
pyton browser-history.py
cd ..
docker-compose -f docker-compose-ingest.yml up
open http://localhost:5601
Then follow instructons in 3. Load pre-built Visualizations and Dashboards
Brave, Chrome and Edge use same SQLite database file called History
and the table structure is exactly the same. Firefox SQLite database file called is places.sqlite
. Of course being an Apple product, Safari's SQLite database file called is History.db
SELECT
datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime') AS visit_date,
url,
title AS url_title
FROM urls
ORDER BY visit_date DESC
Let's get the most out of three fields!!
- last_visit_time
- url
- title
Within 5 minutes (after docker image pulls), you will have all your browser(s) history in Elastic Stack.
Note: You need to exit your browser(s). SQLite database does not have a with_no_lock option. If you do not quit your browser, the python script will error with: [BROWSER_NAME]!! IS OPEN. PLEASE CLOSE YOUR BROWSER AND RETRY..
Example has been tested on Mac with the following versions:
- Python 3.7.6
- Elasticsearch 7.8.0
- Logstash 7.8.0
- Kibana 7.8.0
- Docker 19.03.0
- Docker Compose 1.25.5
After cloning the repo complete the following to extract browser data.
- From the scripts folder, run browser-history python script:
cd scripts
python browser_history.py
Starting brave
brave: Results 4
Starting chrome
chrome: Results 1
Starting firefox
firefox: Results 3716
Starting safari
safari: Results 6
Starting edge
edge: Results 2
-
Launch Containers
Docker Compose Ingest will launch Elasticsearch, Logstash and Kibana official Elastic images.
docker-compose -f docker-compose-ingest.yml up
After Kibana is ready you can load dashboard with the Import Dashboard API (experimental feature)
- From Kibana sidebar, navigate to Stack Management
- Under Kibana select Saved Objects
- From Save Object select Import and navagate to repo location of BrowserHistory-Kibana.ndjson
- Select Import
- Select Browser History Dashboard
You can start the Stack with only Elasticsearch and Kibana to view existing data.
Start: `docker-compose -f docker-compose.yml up`
Stop: `docker-compose -f docker-compose.yml down`
-
Not Clearing Browser History: If you do not clear your browser history then you will duplicate your old browsing history.
Run docker-compose down with -v to delete docker volume
docker-compose down -v
-
Clearing Browser History: If you are clearing your browser history backup your history files.