{"id":794,"date":"2026-06-03T22:46:30","date_gmt":"2026-06-03T22:46:30","guid":{"rendered":"https:\/\/quantusintel.group\/osint\/blog\/2026\/06\/03\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker\/"},"modified":"2026-06-03T22:46:30","modified_gmt":"2026-06-03T22:46:30","slug":"new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker","status":"publish","type":"post","link":"https:\/\/quantusintel.group\/osint\/blog\/2026\/06\/03\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker\/","title":{"rendered":"New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with Docker"},"content":{"rendered":"<h3>New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with\u00a0Docker<\/h3>\n<blockquote><p>\u201cEvery new tool is a lesson in patience, precision, and unexpected problems.\u201d<\/p><\/blockquote>\n<figure><img data-opt-id=771569372  fetchpriority=\"high\" decoding=\"async\" alt=\"\" src=\"https:\/\/cdn-images-1.medium.com\/max\/1024\/1*-x_O-RAkco_SDHcdU3DBXA.png\" \/><figcaption>Image generated by\u00a0AI<\/figcaption><\/figure>\n<p>As a Security Analyst, I\u2019m always on the lookout for open-source tooling that elevates threat detection, incident response, and case management. Recently, I decided to dive into <strong>TheHive<\/strong>\u00a0,a powerful Security Incident Response Platform (SIRP), alongside its analyst-friendly companion, <strong>Cortex<\/strong>.<\/p>\n<p>Like most promising tools in infosec, the install process didn\u2019t go\u00a0quietly.<\/p>\n<p>This blog captures the raw, unpolished journey of deploying TheHive using Docker on <strong>Kali Linux<\/strong>, from pulling the image to hitting cryptic errors, chasing down missing directories, and ultimately documenting what actually works and what\u00a0doesn\u2019t.<\/p>\n<h3>The Plan<\/h3>\n<ol>\n<li>Pull Docker images for TheHive and\u00a0Cortex.<\/li>\n<li>Run containers, map ports, and mount\u00a0volumes.<\/li>\n<li>Start analyzing incidents like a\u00a0boss.<\/li>\n<\/ol>\n<p><strong>Reality:<\/strong><br \/> \u201cContainer started.\u201d<br \/> Then:<\/p>\n<blockquote><p><em>AccessDeniedException: \/opt\/thp\/thehive\/db\/je.properties<\/em><\/p><\/blockquote>\n<p>Let\u2019s break it all down, step by painful\u00a0step.<\/p>\n<h3>Step 1: Pulling TheHive Docker\u00a0Image<\/h3>\n<pre>docker pull strangebee\/thehive:5.0.23<br \/>docker run -d --name thehive -p 9000:9000 strangebee\/thehive:5.0.23<\/pre>\n<h3>Step 2: Java Death Logs\u00a0Begin<\/h3>\n<pre>org.thp.scalligraph.ScalligraphApplicationImpl$InitialisationFailure: \/opt\/thp\/thehive\/db\/je.properties<br \/>Caused by: java.nio.file.AccessDeniedException<\/pre>\n<p>This screamed <strong>BerkeleyDB<\/strong> and <strong>permission issues<\/strong>.<\/p>\n<h3>Step 3: File Doesn\u2019t\u00a0Exist?<\/h3>\n<p>Ran this:<\/p>\n<pre>ls -l \/opt\/thp\/thehive\/db\/je.properties<\/pre>\n<p>No such file or directory.<\/p>\n<p>Tried to fix permissions anyway:<\/p>\n<pre>sudo chown -R thehive:thehive \/opt\/thp<\/pre>\n<p>sudo chown -R thehive:thehive \/opt\/thp<\/p>\n<p>Result?<\/p>\n<p>invalid user: thehive:thehive<\/p>\n<p>Naturally. There\u2019s no \u201cthehive\u201d user, we\u2019re in Docker land, not systemd territory.<\/p>\n<h3><strong>Step 4: Clean It All\u00a0Up<\/strong><\/h3>\n<p>At this point, I made a call<strong>, let\u2019s delete TheHive and reinstall<\/strong>:<\/p>\n<pre>docker ps -a                    # Find container ID<br \/>docker rm &lt;container-id&gt;        # Remove it<br \/>docker rmi &lt;image-id&gt;           # Remove image<\/pre>\n<p>docker rmi &lt;image-id&gt; # Remove\u00a0image<\/p>\n<p><strong>Only after killing the container was I allowed to delete the\u00a0image.<\/strong><\/p>\n<h3><strong>Step 5: Docker Compose Templates Galore<\/strong><\/h3>\n<p>Navigated to my Docker templates folder, and guess\u00a0what?<\/p>\n<pre>cd ~\/Docker-Templates\/docker\/<\/pre>\n<p>Over 10+ TheHive variations, from thehive4-cortex31-nginx-https to thehive35-cortex3-es7. Overwhelming? A bit. But the community support is\u00a0real.<\/p>\n<h3>Step 6: Cortex. Still Untested, but\u00a0Pulled<\/h3>\n<pre>docker pull cortexproject\/cortex:latest<\/pre>\n<p>Image pulled, ready to test, but I paused deployment until I got TheHive running\u00a0cleanly.<\/p>\n<p><strong>Lessons Learned<\/strong><\/p>\n<ul>\n<li><strong>TheHive loves <\/strong><strong>\/opt\/thp<\/strong> \u2013 volume mapping must preserve proper ownership inside\u00a0Docker.<\/li>\n<li><strong>Don\u2019t chase systemd configs for containers.<\/strong> Look inside the Dockerfiles or use Docker\u00a0Compose.<\/li>\n<li><strong>BerkeleyDB = permission pain.<\/strong> Consider switching to ScyllaDB or Cassandra templates.<\/li>\n<li><strong>Don\u2019t assume success because a container \u201cstarts.\u201d<\/strong> Watch the logs and they tell the real\u00a0story.<\/li>\n<\/ul>\n<h3>What\u2019s Next?<\/h3>\n<ul>\n<li>Use a full Docker Compose setup (like thehive5-minimal) with proper mounted\u00a0volumes.<\/li>\n<li>Switch to <strong>ScyllaDB or Cassandra<\/strong> to avoid BerkeleyDB permission madness.<\/li>\n<li>Integrate Cortex once TheHive runs reliably.<\/li>\n<li>Push all findings to <a href=\"https:\/\/osintteam.blog\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker-6467385c318a#\">GitHub repo<\/a> with full logs, Dockerfiles, and templates.<\/li>\n<\/ul>\n<h3>Final Thoughts<\/h3>\n<p>Every new tool in cybersecurity brings power and pain. And that\u2019s okay. Debugging teaches you more than smooth installs ever will. If you\u2019re in the SOC world, automating and orchestrating investigations is worth the setup struggles.<\/p>\n<p>Let me know if you\u2019re deploying TheHive\/Cortex and hit similar snags. I\u2019d love to collaborate or share working\u00a0configs.<\/p>\n<p><strong>Until then\u2026<\/strong><br \/> <strong>New tools, new errors. Bring them\u00a0on.<\/strong><\/p>\n<p><strong>Written by:<\/strong> <a href=\"https:\/\/osintteam.blog\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker-6467385c318a#\">Manish Rawat<\/a><br \/>Security Analyst | SOC Automation Enthusiast<\/p>\n<p><em>Deploying, Breaking, and Documenting Cyber Tools One Error at a\u00a0Time<\/em><\/p>\n<p><img data-opt-id=574357117  fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/medium.com\/_\/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=6467385c318a\" width=\"1\" height=\"1\" alt=\"\" \/><\/p>\n<hr \/>\n<p><a href=\"https:\/\/osintteam.blog\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker-6467385c318a\">&#x1f527; New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with Docker<\/a> was originally published in <a href=\"https:\/\/osintteam.blog\/\">OSINT Team<\/a> on Medium, where people are continuing the conversation by highlighting and responding to this story.<\/p>","protected":false},"excerpt":{"rendered":"<p>New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with\u00a0Docker \u201cEvery new tool is a lesson in patience, precision, and unexpected problems.\u201d Image generated by\u00a0AI As a Security Analyst, I\u2019m always on the lookout for open-source tooling that elevates threat detection, incident response, and case management. Recently, I decided to dive into TheHive\u00a0,a &#8230; <a title=\"New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with Docker\" class=\"read-more\" href=\"https:\/\/quantusintel.group\/osint\/blog\/2026\/06\/03\/new-tools-new-errors-deploying-thehive-cortex-on-kali-linux-with-docker\/\" aria-label=\"Read more about New Tools, New Errors: Deploying TheHive &amp; Cortex on Kali Linux with Docker\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/posts\/794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/comments?post=794"}],"version-history":[{"count":0,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/posts\/794\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/media\/795"}],"wp:attachment":[{"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/media?parent=794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/categories?post=794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quantusintel.group\/osint\/wp-json\/wp\/v2\/tags?post=794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}