> For the complete documentation index, see [llms.txt](https://adaptix-framework.gitbook.io/adaptix-framework/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adaptix-framework.gitbook.io/adaptix-framework/adaptix-c2/getting-starting/starting.md).

# Starting

## AdaptixServer

The necessary parameters for starting the AdaptixServer can be passed via command line parameters or via a configuration file.

<figure><img src="https://2104178602-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS8p8XLFtLmf0NkofQvoa%2Fuploads%2Fgit-blob-b5b8a31678ef48632d86d617fb9278be27abf6fb%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_20260228_212214.png?alt=media" alt=""><figcaption></figcaption></figure>

The configuration file is specified in the `-profile` parameter and must contain a profile in YAML format.

```json
Teamserver:
  interface: "0.0.0.0"
  port: 4321
  endpoint: "/endpoint"
  password: "pass"
  only_password: true
  operators:
    operator1: "pass1"
    operator2: "pass2"
  cert: "server.rsa.crt"
  key: "server.rsa.key"
  extenders:
    - "extenders/beacon_listener_http/config.yaml"
    - "extenders/beacon_listener_smb/config.yaml"
    - "extenders/beacon_listener_tcp/config.yaml"
    - "extenders/beacon_listener_dns/config.yaml"
    - "extenders/beacon_agent/config.yaml"
    - "extenders/gopher_listener_tcp/config.yaml"
    - "extenders/gopher_agent/config.yaml"
  axscripts:
#    - "Extension-Kit/extension-kit.axs"
  access_token_live_hours: 12
  refresh_token_live_hours: 168

HttpServer:
  error:
    status: 404
    headers:
      Content-Type: "text/html; charset=UTF-8"
      Server: "AdaptixC2"
      Adaptix-Version: "v1.2"
    page: "404page.html"
  http:
    max_header_bytes: 8192
    read_header_timeout_sec: 0
    read_timeout_sec: 0
    write_timeout_sec: 0
    idle_timeout_sec: 0
    request_timeout_sec: 300
    request_timeout_message: "504 Gateway Timeout"
    disable_keep_alives: false
    enable_http2: true
  tls:
    min_version: "TLS1.2"
    max_version: "TLS1.3"
    prefer_server_cipher_suites: false
    cipher_suites:
      - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
      - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
      - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
      - "TLS_RSA_WITH_AES_128_GCM_SHA256"
      - "TLS_RSA_WITH_AES_256_GCM_SHA384"
```

**Teamserver**:

* **port** - port for client connection
* **endpoint** - URN for connecting clients
* **password** - authenticator for clients
* **only\_password** — If `true`, only password authentication is used for any login (Cobalt Strike mode). If `false`, authentication is used with strictly defined logins and passwords.
* **cert** and **key** - SSL Certificate and Key for web server
* **extender** - array of strings-paths to go-plugins
* **axscripts -** array of strings-paths to AX Scripts
* **access\_token\_live\_hours** & **refresh\_token\_live\_hours** - The validity period of the JWT token that the client receives after authorization.

**ServerResponse:**

* error.status - web server response code in case of an illegitimate request
* error.headers - web server HTTP Headers
* error.page - the path to the file whose contents will be returned in the web server's response
* http - HTTP server settings
* tls - HTTP server cipher settings

To run adaptixserver you need an SSL certificate. You can generate your own using the ssl\_gen script.

```sh
openssl req -x509 -nodes -newkey rsa:2048 -keyout server.rsa.key -out server.rsa.crt -days 3650
```

After starting AdaptixServer, a `data` directory will be created next to the server executable file. The server database file and all other files will be created in the `data` directory.

```
./adaptixserver -profile profile.yaml
```

<figure><img src="https://2104178602-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS8p8XLFtLmf0NkofQvoa%2Fuploads%2Fgit-blob-e1beb26b4b0e1159b9a251c93a214f492a4fe1c2%2FScreenshot_20260129_110737.png?alt=media" alt=""><figcaption></figcaption></figure>

## AdaptixClient

After the AdaptixClient is launched, a directory named `.adaptix` will be created in the user's home directory. The AdaptixClient database file will be saved in the `.adaptix` directory. In the authorization form, you must specify the profile data, user nickname (any nick), and the name of the local project.

<figure><img src="https://2104178602-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS8p8XLFtLmf0NkofQvoa%2Fuploads%2Fgit-blob-faf08d74bd95f079db0498ad2e95d1695ad42905%2FScreenshot_20260129_105731.png?alt=media" alt=""><figcaption></figcaption></figure>

When authorizing, you can select which data will be synchronized with the server.

<figure><img src="https://2104178602-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS8p8XLFtLmf0NkofQvoa%2Fuploads%2Fgit-blob-843a144f7ce213b6a276de7c9e7d5548a4e72062%2FScreenshot_20260129_105805.png?alt=media" alt=""><figcaption></figcaption></figure>

After synchronizing data with the server, the main AdaptixClient window will be available.

<figure><img src="https://2104178602-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS8p8XLFtLmf0NkofQvoa%2Fuploads%2Fgit-blob-eae74715717dbb564fc43446d4c8c17eb894c965%2FScreenshot_20251229_204430.png?alt=media" alt=""><figcaption></figcaption></figure>
