Ghostwriter can monitor servers for open ports and alert you if a service is exposed to the internet. By default, the tasks.scan_servers function will scan all servers in the server library for open ports.
For this to work properly the Ghostwriter server should not be in your management block, i.e. the IP block allowed to talk to your servers.
If a server is found to be in use on an active assessment with an open port, the task will send a Slack notification (if enabled) to the project’s channel.
Use your own judgement to determine how best to handle scanning. You may wish to setup the task to run once an hour, or even more frequently.To increase speed and only scan servers in active use, set only_active=True in the kwargs.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ghostwriter Documentation","colors":{"primary":"#6D70A7","light":"#50B071","dark":"#6D70A7"},"logo":{"light":"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/light.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=7ba094d2f43cc72c0ed5bb0feedd46c2","dark":"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/dark.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=6d58f4692c9f7bfc4c03ea8f7db37fe3","href":"https://specterops.io/"},"favicon":"https://mintcdn.com/specterops-2/hxAceaiaqVHSIa3R/favicon.png?fit=max\u0026auto=format\u0026n=hxAceaiaqVHSIa3R\u0026q=85\u0026s=146677961412d6ff71d73e719e1c6c60","appearance":{"default":"light","strict":false},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://blog.getghostwriter.io/","label":"Learn More"},{"href":"https://code.getghostwriter.io/","label":"Get the Code"}],"primary":{"type":"button","label":"Support","href":"https://github.com/GhostManager/Ghostwriter/issues"}},"footer":{"socials":{"x":"https://twitter.com/specterops","github":"https://github.com/GhostManager/Ghostwriter","linkedin":"https://www.linkedin.com/company/specterops","slack":"https://slack.specterops.io","instagram":"https://www.instagram.com/specterops.io","youtube":"https://www.youtube.com/channel/UCWMKKqCCQkUjU8dIyiL1yhQ"}},"fonts":{"heading":{"family":"Nunito Sans","weight":900,"source":"https://fonts.gstatic.com/s/nunitosans/v15/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2","format":"woff2"}},"styling":{"codeblocks":"system","latex":false},"integrations":{"plausible":{"domain":"ghostwriter.wiki"}},"thumbnails":{"background":"https://mintcdn.com/specterops-2/0suYjBVe_0nHu2PQ/images/thumbnail.png?fit=max\u0026auto=format\u0026n=0suYjBVe_0nHu2PQ\u0026q=85\u0026s=779bd023e4a425e93f6924d3eb4b56b0"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/GhostManager/Ghostwriter"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/bloodhoundhq/shared_invite/zt-1tgq6ojd2-ixpx5nz9Wjtbhc3i8AVAWw"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"specterops-2","hasAudioNarration":false,"actualSubdomain":"specterops-2","customDomains":["www.ghostwriter.wiki"],"gitSource":{"type":"github","owner":"ghostmanager","repo":"ghostwriter","deployBranch":"master","contentDirectory":"DOCS","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6acec720b0647c1021582349","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Home","count":103},{"language":"default","tag":"Features","count":66},{"language":"default","tag":"Development","count":16},{"language":"default","tag":"GraphQL API","count":14},{"language":"default","tag":"Reporting","count":14},{"language":"default","tag":"Configuring Global Settings","count":10},{"language":"default","tag":"Infrastructure Management","count":9},{"language":"default","tag":"Operation Logs","count":9},{"language":"default","tag":"Database Models","count":8},{"language":"default","tag":"Client \u0026 Project Management","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"features/infrastructure-management/server-management/monitoring-servers","slug":"/features/infrastructure-management/server-management/monitoring-servers","pageMetadata":{"title":"Monitoring Servers","description":"Performing health checkups on servers","href":"/features/infrastructure-management/server-management/monitoring-servers"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Performing health checkups on servers\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`server-health-checks`,children:`Server Health Checks`}),`\n`,_jsxs(_components.p,{children:[`Ghostwriter can monitor servers for open ports and alert you if a service is exposed to the internet. By default, the `,_jsx(_components.code,{children:`tasks.scan_servers`}),` function will scan all servers in the server library for open ports.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`For this to work properly the Ghostwriter server should `,_jsx(_components.strong,{children:`not`}),` be in your management block, i.e. the IP block allowed to talk to your servers.`]})}),`\n`,_jsx(_components.p,{children:`If a server is found to be in use on an active assessment with an open port, the task will send a Slack notification (if enabled) to the project’s channel.`}),`\n`,_jsx(Heading,{level:`3`,id:`scheduling-server-scans`,children:`Scheduling Server Scans`}),`\n`,_jsx(_components.p,{children:`Use your own judgement to determine how best to handle scanning. You may wish to setup the task to run once an hour, or even more frequently.`}),`\n`,_jsxs(_components.p,{children:[`To increase speed and only scan servers in active use, set `,_jsx(_components.code,{children:`only_active=True`}),` in the kwargs.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Monitoring Servers","description":"Performing health checkups on servers","href":"/features/infrastructure-management/server-management/monitoring-servers"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Server Health Checks","slug":"server-health-checks","depth":2,"children":[{"title":"Scheduling Server Scans","slug":"scheduling-server-scans","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"specterops-2","siteName":"Ghostwriter Documentation","title":"Monitoring Servers - Ghostwriter Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-22T23:15:27.667Z","originalFileLocation":"features/infrastructure-management/server-management/monitoring-servers.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Performing health checkups on servers\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Monitoring Servers - Ghostwriter Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Performing health checkups on servers\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://specterops-2.mintlify.site/_mintlify/api/og/v2?division=Server+Management\u0026amp;title=Monitoring+Servers\u0026amp;description=Performing+health+checkups+on+servers\u0026amp;theme=1b2d9326256b8f19fc3d10ae\u0026amp;signature=eefd5c88a5355c7ce1927aa7a5571321635a86662b2558a5b3cbd6c89a67eb35\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Monitoring Servers - Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Performing health checkups on servers\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://specterops-2.mintlify.site/_mintlify/api/og/v2?division=Server+Management\u0026amp;title=Monitoring+Servers\u0026amp;description=Performing+health+checkups+on+servers\u0026amp;theme=1b2d9326256b8f19fc3d10ae\u0026amp;signature=eefd5c88a5355c7ce1927aa7a5571321635a86662b2558a5b3cbd6c89a67eb35\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/specterops-2/xhKbu44XUXjfbp1T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ghostwriter Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6D70A7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/infrastructure-management/server-management/monitoring-servers.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.ghostwriter.wiki/#organization\",\"name\":\"Ghostwriter Documentation\",\"url\":\"https://www.ghostwriter.wiki\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/specterops-2/rwxeaHvw9J2xZp6c/logo/light.svg?fit=max\u0026auto=format\u0026n=rwxeaHvw9J2xZp6c\u0026q=85\u0026s=7ba094d2f43cc72c0ed5bb0feedd46c2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.ghostwriter.wiki#website\",\"name\":\"Ghostwriter Documentation\",\"url\":\"https://www.ghostwriter.wiki\",\"publisher\":{\"@id\":\"https://www.ghostwriter.wiki/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers#webpage\",\"url\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers\",\"name\":\"Monitoring Servers\",\"description\":\"Performing health checkups on servers\",\"dateModified\":\"2026-01-22T23:15:27.667Z\",\"isPartOf\":{\"@id\":\"https://www.ghostwriter.wiki#website\"},\"breadcrumb\":{\"@id\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://www.ghostwriter.wiki/features/access-authentication-and-session-controls\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infrastructure Management\",\"item\":\"https://www.ghostwriter.wiki/features/infrastructure-management\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Server Management\",\"item\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Monitoring Servers\",\"item\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers#article\",\"headline\":\"Monitoring Servers\",\"name\":\"Monitoring Servers\",\"description\":\"Performing health checkups on servers\",\"url\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers\",\"mainEntityOfPage\":{\"@id\":\"https://www.ghostwriter.wiki/features/infrastructure-management/server-management/monitoring-servers#webpage\"},\"dateModified\":\"2026-01-22T23:15:27.667Z\",\"publisher\":{\"@id\":\"https://www.ghostwriter.wiki/#organization\"},\"isPartOf\":{\"@id\":\"https://www.ghostwriter.wiki#website\"}}]}\u003c/script>","siteName":"Ghostwriter Documentation","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/GhostManager/Ghostwriter"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/bloodhoundhq/shared_invite/zt-1tgq6ojd2-ixpx5nz9Wjtbhc3i8AVAWw"}]},"tabs":[{"tab":"Home","groups":[{"group":"Home","pages":[{"title":"Welcome to Ghostwriter","href":"/home"}]},{"group":"Getting Started","pages":[{"title":"Quickstart","href":"/getting-started/quickstart"},{"title":"Populating a Demo Database","href":"/getting-started/populating-a-demo-database"},{"title":"Updating Ghostwriter","href":"/getting-started/updating-ghostwriter"},{"group":"Managing the Server with Ghostwriter CLI","pages":[{"title":"Managing the Server with Ghostwriter CLI","sidebarTitle":"Overview","href":"/getting-started/managing-the-server-with-ghostwriter-cli"},{"title":"Managing Logon Sessions","href":"/getting-started/managing-the-server-with-ghostwriter-cli/managing-logon-sessions"},{"title":"Creating and Managing Backups","href":"/getting-started/managing-the-server-with-ghostwriter-cli/creating-and-managing-backups"}]}]},{"group":"Features","pages":[{"group":"Access, Authentication, \u0026 Session Controls","pages":[{"title":"Access, Authentication, \u0026 Session Controls","sidebarTitle":"Overview","href":"/features/access-authentication-and-session-controls"},{"title":"User Profile and Tokens","href":"/features/access-authentication-and-session-controls/user-profile-and-tokens"},{"title":"Single Sign-On","href":"/features/access-authentication-and-session-controls/single-sign-on"},{"title":"Multi-Factor Authentication","href":"/features/access-authentication-and-session-controls/multi-factor-authentication"},{"title":"Role-Based Access Controls","href":"/features/access-authentication-and-session-controls/role-based-access-controls"},{"title":"Session Management","href":"/features/access-authentication-and-session-controls/session-management"}]},{"group":"Client \u0026 Project Management","pages":[{"title":"Overview","href":"/features/client-and-project-management"},{"title":"Client Dashboard","href":"/features/client-and-project-management/client-dashboard"},{"group":"Project Dashboard","pages":[{"title":"Overview","href":"/features/client-and-project-management/project-dashboard"},{"title":"Project Points of Contact \u0026 Assignments","href":"/features/client-and-project-management/project-dashboard/project-points-of-contact-and-assignments"},{"title":"Scope Tracking","href":"/features/client-and-project-management/project-dashboard/scope-tracking"},{"title":"Objective Tracking","href":"/features/client-and-project-management/project-dashboard/objective-tracking"},{"title":"Deconfliction Tracking","href":"/features/client-and-project-management/project-dashboard/deconfliction-tracking"},{"title":"White Card Tracking","href":"/features/client-and-project-management/project-dashboard/white-card-tracking"}]}]},{"group":"Findings Library","pages":[{"title":"Overview","href":"/features/findings-library"},{"title":"Populating the Findings Library","href":"/features/findings-library/populating-the-findings-library"},{"title":"Template Values for Findings","href":"/features/findings-library/finding-keywords"}]},{"title":"Observations Library","href":"/features/observations-library"},{"group":"Infrastructure Management","pages":[{"title":"Infrastructure Management","sidebarTitle":"Overview","href":"/features/infrastructure-management"},{"group":"Server Management","pages":[{"title":"Server Management","sidebarTitle":"Overview","href":"/features/infrastructure-management/server-management"},{"title":"Populating the Server Library","href":"/features/infrastructure-management/server-management/populating-the-server-library"},{"title":"Server Checkout","description":"Checking-out a server for a project","href":"/features/infrastructure-management/server-management/server-management"},{"title":"Monitoring Servers","href":"/features/infrastructure-management/server-management/monitoring-servers"}]},{"group":"Domains Management","pages":[{"title":"Domains Management","sidebarTitle":"Overview","description":"Managing domains with the Domain Library","href":"/features/infrastructure-management/domains-management"},{"title":"Populating the Domain Library","href":"/features/infrastructure-management/domains-management/populating-the-domain-library"},{"title":"Domain Checkout","href":"/features/infrastructure-management/domains-management/domain-checkout-1"},{"title":"Monitoring Domains","href":"/features/infrastructure-management/domains-management/monitoring-domains"}]}]},{"group":"Operation Logs","pages":[{"title":"Overview","href":"/features/operation-logs"},{"title":"Creating a New Operation Log","href":"/features/operation-logs/creating-a-new-oplog"},{"title":"Interacting with the Operation Log Table","href":"/features/operation-logs/create-a-new-entry"},{"title":"Generating Attack Path Narrative Outlines","href":"/features/operation-logs/generating-narrative-outlines"},{"title":"Linking Evidence to Log Entries","href":"/features/operation-logs/linking-evidence-to-entries"},{"title":"Attaching Terminal Recordings to Log Entries","href":"/features/operation-logs/attaching-terminal-recordings"},{"title":"Setting up Automated Logging","href":"/features/operation-logs/setting-up-automated-logging"},{"title":"Exporting / Importing Operation Logs","href":"/features/operation-logs/exporting-importing-oplogs"},{"title":"Auditing Log Sanitization","href":"/features/operation-logs/auditing-oplogs"}]},{"group":"Reporting","pages":[{"title":"Reporting","sidebarTitle":"Overview","href":"/features/reporting"},{"group":"Collaborative Editor","pages":[{"title":"Overview","href":"/features/reporting/collaborative-editing"},{"title":"Editor Features","href":"/features/reporting/collaborative-editor/editor-features"}]},{"group":"Report Types","pages":[{"title":"Overview","href":"/features/reporting/report-types"},{"title":"Word Document Customization","href":"/features/reporting/report-types/word-document-customization"},{"title":"PowerPoint Deck Customization","href":"/features/reporting/report-types/powerpoint-deck-customization"},{"title":"Excel Spreadsheet Customization","href":"/features/reporting/report-types/excel-spreadsheet-customization"}]},{"group":"Report Templates","pages":[{"title":"Report Templates","sidebarTitle":"Overview","href":"/features/reporting/report-templates"},{"title":"Report Template Linting","href":"/features/reporting/report-templates/report-template-linting"},{"title":"Word Template Variables \u0026 Filters","href":"/features/reporting/report-templates/word-template-variables"},{"title":"Word Template Styles","href":"/features/reporting/report-templates/word-template-styles"},{"title":"Troubleshooting Word Templates","href":"/features/reporting/report-templates/troubleshooting-word-templates"}]},{"title":"Templating and Rich Text Fields","href":"/features/reporting/templating-and-rich-text-fields"},{"title":"Jinja2 Tips \u0026 Tricks","href":"/features/reporting/jinja2-tips-and-tricks"}]},{"group":"BloodHound Integration","pages":[{"title":"Overview","href":"/features/bloodhound-integration-overview"},{"title":"Configuring BloodHound","href":"/features/bloodhound-integration/configuring-bloodhound"},{"title":"Viewing \u0026 Managing BloodHound Data","href":"/features/bloodhound-integration/managing-bloodhound-data"},{"title":"Differences Between BHCE and BHE","href":"/features/bloodhound-integration/differences-between-bhce-and-bhe"},{"title":"Accessing BloodHound Data in Reports","href":"/features/bloodhound-integration/bloodhound-data-in-reports"}]},{"group":"Background Tasks","pages":[{"title":"Overview","href":"/features/background-tasks"},{"title":"Scheduling Tasks","href":"/features/background-tasks/scheduled-tasks"},{"title":"Prebuilt Tasks","href":"/features/background-tasks/prebuilt-tasks"}]},{"title":"Health Monitoring","href":"/features/health-monitoring"}]},{"group":"Configuring Global Settings","pages":[{"title":"Introduction to Command Center","sidebarTitle":"Overview","href":"/configuring-global-settings/introduction-to-command-center"},{"title":"Personalizing Company Information","href":"/configuring-global-settings/personalizing-company-information"},{"title":"Configuring Global Report Options","href":"/configuring-global-settings/configuring-global-report-options"},{"title":"Configuring the Announcement Banner","href":"/configuring-global-settings/configuring-the-announcement-banner"},{"group":"Configuring APIs","pages":[{"title":"Overview","href":"/configuring-global-settings/configuring-apis"},{"title":"Configuring Slack","href":"/configuring-global-settings/configuring-apis/configuring-slack"},{"title":"Configuring VirusTotal","href":"/configuring-global-settings/configuring-apis/configuring-virustotal"},{"title":"Configuring Namecheap","href":"/configuring-global-settings/configuring-apis/configuring-namecheap"},{"title":"Configuring Cloud Services","href":"/configuring-global-settings/configuring-apis/configuring-cloud-services"}]},{"title":"Configuring Extra Fields","href":"/configuring-global-settings/configuring-extra-fields"}]},{"group":"Getting Help","pages":[{"title":"Overview","href":"/getting-help/faq"},{"title":"Reporting a Problem","href":"/getting-help/getting-help-with-a-problem"},{"title":"Reporting a Security Issue","href":"/getting-help/reporting-a-security-issue"}]},{"group":"Workflow \u0026 Usage","pages":[{"title":"The Workflow","sidebarTitle":"Overview","href":"/workflow/basic-usage"},{"group":"The Workflow","pages":[{"title":"The Workflow","sidebarTitle":"Overview","href":"/workflow/basic-usage"},{"title":"Finding Edit \u0026 Review Workflow","href":"/workflow/basic-usage/finding-review-workflow"}]}]},{"group":"Coding Style Guide","pages":[{"title":"Overview","href":"/coding-style-guide/style-guide"},{"title":"UI Refresh Design System","sidebarTitle":"UI Refresh","href":"/coding-style-guide/ui-refresh-design-system"},{"group":"Form Layouts \u0026 Design","pages":[{"title":"Form Layouts \u0026 Design","sidebarTitle":"Overview","href":"/coding-style-guide/form-layouts-and-design"},{"title":"Formset Layout \u0026 Design","href":"/coding-style-guide/form-layouts-and-design/formset-layout-and-design"},{"title":"Custom Layout Objects","href":"/coding-style-guide/form-layouts-and-design/custom-layout-objects"}]}]},{"group":"Development","pages":[{"title":"Overview","href":"/development/stack-overview"},{"group":"Stack Overview","pages":[{"title":"Overview","href":"/development/stack-overview"},{"title":"Behind the Scenes","href":"/development/stack-overview/behind-the-scenes"}]},{"group":"Modifying Code","pages":[{"title":"Overview","href":"/development/modifying-code"},{"title":"Modifying Environment Variables","href":"/development/modifying-code/modifying-environment-variables"}]},{"title":"Testing Code","href":"/development/testing-code"},{"group":"Contributing to the Project","pages":[{"title":"Contributing to the Project","sidebarTitle":"Overview","href":"/development/contributing-to-the-project"},{"title":"Pre-Release Checklist","href":"/development/contributing-to-the-project/pre-release-checklist"}]},{"group":"Database Models","pages":[{"title":"Database Models","sidebarTitle":"Overview","href":"/development/database-models"},{"title":"API Models","href":"/development/database-models/api-models"},{"title":"Client \u0026 Project Models","href":"/development/database-models/rolodex-models"},{"title":"Configuration Models","href":"/development/database-models/configuration-models"},{"title":"Home \u0026 User Models","href":"/development/database-models/home-models"},{"title":"Infrastructure Models","href":"/development/database-models/infrastructure-models"},{"title":"Oplog Models","href":"/development/database-models/oplog-models"},{"title":"Reporting Models","href":"/development/database-models/reporting-models"}]},{"title":"Expected Services \u0026 Processes","href":"/development/expected-services-and-processes"}]}]},{"tab":"GraphQL API","pages":[{"title":"GraphQL API","href":"/features/graphql-api/graphql-api"}]}]},"basePath":"","title":"Monitoring Servers - Ghostwriter Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}