Server Configuration - waffl3ss/HashTasker GitHub Wiki

Server Configuration

The server reads config.yaml from its working directory at startup. Changes require a restart.

Full Example

server:
  host: "0.0.0.0"
  port: 8080
  session_key: "output-of-openssl-rand-hex-32"
  upload_path: "./uploads"
  wordlists_path: "/crack/wordlists"
  rulesets_path: "/crack/rules"
  hashmodes_path: "./hashmodes.txt"
  wordlist_mode: "push"

database:
  host: "localhost"
  port: 3306
  user: "hashtasker"
  password: "set-this"
  database: "hashtasker"

ldap:
  enabled: false
  host: "dc01.example.com"
  port: 389
  bind_dn: "[email protected]"
  bind_pass: "service-account-password"
  base_dn: "OU=Users,DC=example,DC=com"
  user_filter: "(sAMAccountName=%s)"
  admin_group: "CN=Cracking-Admins,OU=Groups,DC=example,DC=com"

admin:
  username: "admin"
  password: "set-a-strong-password"

server

Key Default Description
host Listen address
port Listen port
session_key Required. Secret used to sign session cookies. Startup fails if empty or left at the example value.
upload_path Uploaded custom wordlists, push-mode chunk files, generated potfiles
wordlists_path Directory listed in the job form's wordlist dropdown. Also health-checked every 30 seconds.
rulesets_path Directory listed in the ruleset dropdown
hashmodes_path hashcat mode list used to populate the hash mode dropdown
wordlist_mode push push or nfs. See Wordlist Modes. Read once at startup.

static_path and template_path may appear in older configs. They are ignored because assets are embedded in the binary.

database

HashTasker always tries SQLite first (hashtasker.db in the working directory). These MySQL settings are used only if SQLite fails to open, and the failure is logged. password must be set to something other than the example value or the server will not start.

ldap

Key Description
enabled Turn LDAP authentication on
host, port Directory server. Plain LDAP (no TLS).
bind_dn, bind_pass Service account used to search for users. Read-only is sufficient.
base_dn Subtree searched for users
user_filter Search filter; %s is replaced with the escaped login name. AD: (sAMAccountName=%s). OpenLDAP: (uid=%s).
admin_group Full DN of a group. Users whose memberOf contains this exact DN are admins.

See Authentication and Users for how logins are processed.

admin

The built-in local admin. Always works, even when LDAP is enabled or down. The password is bcrypt-hashed when the server starts. Startup fails if it is empty or changeme.

Files in the Working Directory

File Purpose
config.yaml This file
hashmodes.txt Hash mode list
changelog.md Rendered on the in-app Changelog page (read at request time)
hashtasker.db SQLite database (created automatically)
uploads/ Server working files (created automatically)