---
title: Creating a server with kernel extensions enabled via API
description: Learn how to create a server and enable kernel extensions via Scaleway's API
tags: apple-silicon kext kernel extensions
dates:
  validation: 2026-01-20
  posted: 2026-01-20
---
import Requirements from '@macros/iam/requirements.mdx'

Some workloads on Apple Silicon servers require kernel extensions (`kexts`), for example, when using MacFUSE.  
Kernel extensions are low-level components that extend macOS capabilities at the kernel level. On Scaleway Apple Silicon servers, kernel extensions are disabled by default for security and stability reasons. However, you can enable them when creating a server via the API by setting the `enable_kext` parameter.

<Message type="important">
  Enabling kernel extensions may affect system stability and security. Only enable this option if required for your use case (e.g., development, testing, or debugging kexts).
</Message>


<Requirements />

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization
- An [API key](/iam/how-to/create-api-keys/) with sufficient permissions
- `curl` or another HTTP client to call the API


## Enabling kernel extensions via API

1. Before making API calls, set your environment variables:
    ```bash
    export SCW_SECRET_KEY="<YOUR_API_SECRET_KEY>"
    ```

2. Create an Apple Silicon server using the [API](https://www.scaleway.com/en/developers/api/apple-silicon/#path-servers-create-a-server). Set the `enable_kext` parameter to `true`.
    **API Endpoint:**
    ```bash
    POST https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers
    ```
    Replace `{zone}` with your desired Availability Zone (e.g. `fr-par-3`). 

    **Example Request (cURL)**
    ```bash
    curl -X POST \
    -H "X-Auth-Token: $SCW_SECRET_KEY" \
    -H "Content-Type: application/json" \
    -d '{
        "name": "string",
        "project_id": "string",
        "type": "string",
        "enable_kext": true
    }' \
    "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers"
    ```

    ### Key Fields

    | Field         | Type    | Description                                       |
    | ------------- | ------- | ------------------------------------------------- |
    | `name`        | string  | Server name (optional, you can generate one)      |
    | `project_id`  | string  | Your Scaleway Project ID                          |
    | `type`        | string  | Server type (e.g. `M2-M`, `M2-L`, `M1-M`)         |
    | `enable_kext` | boolean | Enables kernel extension capability on the server |

    <Message type="tip">
        Alternatively, you can create the server also using the [Scaleway CLI](https://cli.scaleway.com/apple-silicon/#create-a-server):
        ```bash
        scw apple-silicon server create \
        name=mac-server-with-kext \
        type=M2-M \
        enable-kext=true
        ```

        ### Explanation of flags:

        | Flag          | Description                                             |
        | ------------- | ------------------------------------------------------- |
        | `name`        | The server name                                         |
        | `type`        | Server type (`M1-M`, `M2-M`, `M2-L`, etc.)              |
        | `enable-kext` | Set to `true` to allow kernel extension loading support |
    </Message>


On success, the API returns a JSON with server details, including:

- `id` — server UUID
- `type` — chosen hardware
- `name` — assigned or given name
- Network info (e.g., public IP)
- Credentials (`ssh_username`, `sudo_password`)
- Status and creation timestamps

## Installing MacFUSE

Once your server is running with kernel extensions enabled, you can install MacFUSE.
MacFUSE adds support for FUSE file systems to macOS, which run in user space and are safer and easier to develop than conventional file systems.

1. Connect to your Apple Silicon server [using Remote Desktop](/apple-silicon/how-to/access-remote-desktop-mac-mini/).
2. Open Safari (or another browser) and download MacFUSE from [https://macfuse.github.io/](https://macfuse.github.io/).
3. Run the installer.
4. After installation, open **System Settings → Security & Privacy**. You should see an **Allow** button.
5. Click **Allow**, then restart your server.

<Message type="tip">
  No recovery mode is required to enable `kexts` using this method.
</Message>