Hi all,
another hobby project from my repository: Hashtopolis packaged for NethServer 8.
What is Hashtopolis?
Hashtopolis is a multi-platform client-server tool for distributing hashcat tasks to multiple computers. Its main development goals are portability, robustness, multi-user support and management of multiple groups.
In practice: you run the Hashtopolis server on your NS8 node, register one or more agent machines (each with its own GPUs), and the server splits a cracking task across all of them. It is meant for authorized password recovery and security testing β e.g. auditing the strength of your own password hashes.
Documentation: https://docs.hashtopolis.org
Why self-host it?
- Your data stays on your server. Hashes, wordlists and rules never leave your infrastructure.
- Use your own hardware. Combine several GPU machines into one job; no cloud, no per-hash fees.
- Multi-user / multi-group. Suitable for a team with separate access.
NS8 integration
The module runs three rootless containers:
- hashtopolis-backend β official
hashtopolis/backendimage (PHP API server and agent endpoints) - hashtopolis-frontend β official
hashtopolis/frontendimage (Angular web UI) - hashtopolis-db β a dedicated
mysql:8.0database, data kept in thehashtopolis-dbnamed volume
Backend and database share one pod; the frontend runs as a separate container because it also listens on port 80.
Traefik publishes everything on a single host name:
https://<host>/β Angular frontendhttps://<host>/apiβ backend API and agent communication (higher priority)
Agents connect to the same /api URL.
Installation
Wiki page: ns8:applications:hashtopolis [NethServer & NethSecurity]
The easiest way is via the Software Center: add my repository as described on the Tebbiworld repository wiki page with this URL (see the NS8 manual for how to add software repositories):
https://raw.githubusercontent.com/tebbiworld/ns8-huginn/repomd/ns8/updates/
Alternatively via CLI on the NS8 cluster leader:
add-module ghcr.io/tebbiworld/hashtopolis:latest 1
Configure (replace the host name):
api-cli run module/hashtopolis1/configure-module --data '{
"host": "hashtopolis.example.org",
"lets_encrypt": true,
"http2https": true
}'
Read back the configuration, including the generated initial admin password and the agent URL:
api-cli run module/hashtopolis1/get-configuration --data '{}'
Log in at https://hashtopolis.example.org with user admin and the returned password, then change it immediately.
Note on agents
The server ships no cracking hardware itself β you install the Hashtopolis agent on your GPU machines separately. On Windows, hashcat.exe from the official hashcat.net Windows archive must be placed manually. A per-task detail worth knowing: use a single rule file per task; multiple -r rule flags cause hashcat to fail.
Important disclaimer
This is a private hobby project, built for my own needs and shared as-is. No warranty, no guaranteed support, use at your own risk. It is an unofficial, community-built package, not affiliated with or endorsed by the Hashtopolis project. Only use it against hashes you are authorized to test. The module pulls the upstream open-source components at runtime (Hashtopolis GPL-3.0-or-later, plus MySQL under its own license). The moduleβs own code is GPL-3.0-or-later.
Repo & documentation: GitHub - tebbiworld/ns8-hashtopolis: NethServer 8 module for Hashtopolis Β· GitHub
Feedback and bug reports are welcome via GitHub issues, but please donβt expect enterprise-level maintenance.
Have fun with it!