# Starting

## AdaptixServer

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

<figure><img src="/files/LsvMi99GZsFehjlOBzJq" 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="/files/xnNGBmN7pgAbTGCch7rH" 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="/files/XagdpXE5Gg1GA5hvbqar" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/BWJdIvGsm8bAVdX4kSM7" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/FpTJsU22NcEhP1gtwcLn" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adaptix-framework.gitbook.io/adaptix-framework/adaptix-c2/getting-starting/starting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
