1. Packages
  2. Packages
  3. Freebox
  4. Installation & Configuration
Viewing docs for Freebox v0.3.11
published on Friday, Jul 3, 2026 by OlivierPaquien

Freebox: Installation & Configuration

freebox logo
Viewing docs for Freebox v0.3.11
published on Friday, Jul 3, 2026 by OlivierPaquien

    How installation works

    This provider is distributed as a plugin binary (pulumi-resource-freebox), written in Go. Pulumi downloads and runs that binary regardless of the language you write your program in.

    A language SDK (npm, PyPI, NuGet, Go module) is a separate generated package that gives you typed APIs in TypeScript, Python, C#, or Go. It is not the same thing as the plugin binary.

    RuntimeWhat you need
    YAMLPlugin binary only
    TypeScript / Python / C# / GoPlugin binary + language SDK

    Plugin installation

    Install the plugin from a GitHub release or from a local build:

    # From GitHub Releases
    VERSION="$(gh release view --repo OlivierPaquien/pulumi-freebox --json tagName -q .tagName)"
    VERSION="${VERSION#v}"
    pulumi plugin install resource freebox "$VERSION" \
      --server github://api.github.com/OlivierPaquien/pulumi-freebox
    
    # From a local build
    VERSION="$(gh release view --repo OlivierPaquien/pulumi-freebox --json tagName -q .tagName)"
    VERSION="${VERSION#v}"
    go build -o bin/pulumi-resource-freebox .
    pulumi plugin install resource freebox "$VERSION" --file ./bin/pulumi-resource-freebox
    

    Pulumi installs the matching plugin automatically when you add a published language SDK to your project.

    Language SDKs

    YAML

    No SDK required. Install the plugin, then use resource tokens directly (for example freebox:fw:PortForwarding). See the overview example in _index.md.

    TypeScript, Python, C#, Go

    Install the SDK for your language from the public package registries:

    LanguageCommand
    Node.js (TypeScript/JavaScript)npm install pulumi-freebox
    Pythonpip install pulumi-freebox
    .NETdotnet add package OlivierPaquien.Pulumi.Freebox
    Gogo get github.com/OlivierPaquien/pulumi-freebox/sdk/go@sdk/go/vVERSION

    Replace VERSION with a release version (for example sdk/go/v0.3.9).

    Local SDK generation (alternative)

    If you need an unreleased version or want SDK sources inside your project:

    VERSION="$(gh release view --repo OlivierPaquien/pulumi-freebox --json tagName -q .tagName)"
    VERSION="${VERSION#v}"
    pulumi package add github.com/OlivierPaquien/pulumi-freebox@v$VERSION
    

    This downloads the schema, installs the plugin if needed, and adds the SDK sources to your project. You can also point at a locally built plugin:

    go build -o bin/pulumi-resource-freebox .
    pulumi package add . --plugin bin/pulumi-resource-freebox
    

    Alternatively, generate an SDK directory from schema.json:

    pulumi package gen-sdk ./schema.json --language <nodejs|python|csharp|go>
    

    Freebox API authorization

    Before using the provider, register an application with your Freebox and obtain an app_id and token. See the Freebox API login documentation.

    Run the provider binary with the authorize subcommand to complete the pairing flow interactively:

    go build -o bin/pulumi-resource-freebox .
    ./bin/pulumi-resource-freebox authorize
    

    Follow the prompts, then approve the request on your Freebox (LCD or web UI). The command prints FREEBOX_APP_ID and FREEBOX_TOKEN for use in Pulumi config or environment variables.

    Grant the application the permissions required by the resources you manage (for example firewall rules, DHCP, VPN, virtual machines).

    Configuration

    The following configuration options are available:

    OptionRequiredDescriptionEnvironment variable
    freebox:appIdYesFreebox API application IDFREEBOX_APP_ID
    freebox:tokenYesFreebox API authentication tokenFREEBOX_TOKEN
    freebox:endpointNoFreebox URL (default: http://mafreebox.freebox.fr)FREEBOX_ENDPOINT
    freebox:apiVersionNoAPI version to use (default: latest)FREEBOX_VERSION

    Set via Pulumi config

    pulumi config set freebox:endpoint http://mafreebox.freebox.fr
    pulumi config set freebox:appId your_app_id
    pulumi config set freebox:token --secret your_token
    # optional:
    pulumi config set freebox:apiVersion latest
    

    Set via environment variables

    export FREEBOX_ENDPOINT=http://mafreebox.freebox.fr
    export FREEBOX_APP_ID=your_app_id
    export FREEBOX_TOKEN=your_token
    # optional:
    export FREEBOX_VERSION=latest
    

    Debug logging

    Pulumi does not always surface plugin logs on the console. The provider also writes debug output to a log file:

    • Default: /tmp/pulumi-freebox-provider.log, or $HOME/.pulumi/pulumi-freebox-provider.log if /tmp is not writable. On Windows: %TEMP%\pulumi-freebox-provider.log.
    • Custom: set FREEBOX_DEBUG_LOG=/path/to/file (when Pulumi passes environment variables to the plugin).

    After rebuilding the plugin locally, reinstall it so Pulumi uses the new binary:

    VERSION="$(gh release view --repo OlivierPaquien/pulumi-freebox --json tagName -q .tagName)"
    VERSION="${VERSION#v}"
    pulumi plugin install resource freebox "$VERSION" --file ./bin/pulumi-resource-freebox --reinstall
    FREEBOX_DEBUG_LOG=$HOME/freebox-provider.log pulumi up
    

    The log file contains a [freebox] log file: ... line at startup confirming the output path.

    freebox logo
    Viewing docs for Freebox v0.3.11
    published on Friday, Jul 3, 2026 by OlivierPaquien

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial