Share

Manually Setting up an Edge Device

Currently, Outpost requires you to purchase and setup your own device.

Outpost Physical Machine Requirements

Outpost requires a physical machine connected to your local network, behind your firewall. Typically, this is a small "NUC"-style device that runs headless (i.e., without a monitor or keyboard), but it can be any machine that meets the minimum requirements.

We recommend the following specifications, which should be sufficient for most deployments:

  • Operating System: 64-bit (amd64) Linux distribution (e.g., Ubuntu)
  • CPU: 64-bit (amd64) CPU
  • RAM: 8 GB
  • Storage: 256 GB
  • Networking: Dual NIC (Network Interface Controller)

Setting Up Your Own Edge Device

The following are the basic steps needed to setup your Outpost device:

  1. Re-image the Device (if needed)

    If the machine ships with Windows, re-image it with a Linux distribution (e.g., Ubuntu): How to Install Ubuntu on Windows

  2. Install SSH

    Enable remote access by installing SSH: Install SSH on Ubuntu

  3. Enable SSHD (SSH Daemon)

    Ensure that the SSH service is running and enabled on boot: Enable SSHD on Ubuntu

  4. Register Outpost Device in Platform Console Register device with the platform: Register Outpost Device

  5. Run Setup Scripts

    Once the machine is ready and accessible via SSH, proceed to run the Outpost setup scripts (detailed below).

Note:
Note: Steps may vary slightly based on your Linux distribution and device model.

Installation & Configuration of Outpost (Automated)

Note:
Note: make sure you have registered an Outpost device in the Platform Console of Tandem Connect before running these setup scripts. They will ask for some information from that registration process. See: Register Outpost Device

These steps assume a fresh installation of Ubuntu or another Debian-based Linux distribution, used exclusively for Outpost.

Important:

It is your responsibility to ensure that you have an appropriate licence for Docker, if required.

  • By using the install script, you agree to Autodesk's Terms of Use.

Step-by-Step Installation

Run the following commands on the target Linux machine:

wget https://cdn.tandem-connect.autodesk.com/outpost/install-debian.sh

sudo chmod 700 install-debian.sh
sudo ./install-debian.sh

Follow the on-screen prompts. The default options should work for most installations.

System Maintenance (Scripted)

A maintenance script is provided to assist with routine patching. It performs the following actions:

✅ Updates:

  • OS packages
  • Docker packages
  • Outpost (if using the :latest image tag)

❌ It does not perform:

  • Major OS version upgrades

IMPORTANT

This script is a convenience tool. Maintenance and patching of the Linux OS remain your responsibility.

Download & Use the Maintenance Script

# One-time setup:
wget https://cdn.tandem-connect.autodesk.com/outpost/update-debian.sh
sudo chmod 700 update-debian.sh

# Run manually according to your patching schedule:
sudo ./update-debian.sh

Advanced Configuration

Installation & Configuration of Outpost and Dependencies (Manual Steps)

These steps assume that you have a new installation of Ubuntu Server or Desktop and that this installation will be used exclusively for Outpost. It also assumes that the minimum requirements have been met. Do not follow these steps if you have completed the automated installation above.

Step 1 - Create a User for Outpost

Login as a user with sudo privileges (or root):

sudo useradd -m -s /bin/sh outpost

Add the outpost user to the docker group:

sudo usermod -aG docker outpost

Step 2 - Set Up Docker's APT Repository

This step is based on the official documentation: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository. If a conflict exists between this document and the official documentation, use the Docker documentation.

sudo apt-get update

sudo apt-get -y install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

Step 3 - Install the Docker Packages

sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Step 4 - Create the Docker Compose File

Switch to the outpost user:

sudo su - outpost

Create a directory for Outpost to use for persistent storage:

mkdir volume

Create a new file called compose.yml:

vi compose.yml

Paste the following example content, updating the placeholders:

services:
  outpost:
    image: autodesk/tandem-connect-outpost:latest
    pull_policy: always
    ports:
     - "47808:47808/udp"
    volumes:
     - /home/outpost/volume:/usr/src/volumes
    restart: unless-stopped
    environment:
     - API_URL=https://api-1.tandem-connect.usa.autodesk.com/v1
     - ACCOUNT_ID=<your account id from above>
     - OUTPOST_DEVICE_ID=<your outpost device id from above>
     - PASSWORD=<your outpost device password from above>
    logging:
       options:
          max-size: "20m"
          max-file: "3"

Remove the ports section if port mappings are not required.

Step 5 - Start Docker

Change to the directory where the compose.yml file is located:

cd /home/outpost
docker compose up -d

Outpost should start, connect to Tandem Connect, retrieve its configuration and start the pipeline. You can confirm this by viewing the logs.


Docker Compose File Reference

Environment Variable Mandatory Description Example
API_URL Yes The Tandem Connect API URL https://api-1.tandem-connect.usa.autodesk.com/v1
ACCOUNT_ID Yes Tandem Connect Account ID 414db421-02a7-520e-ae18-e73b295b30e8
OUTPOST_DEVICE_ID Yes Outpost Device ID my-custom-id
PASSWORD Yes Outpost Device Password 5mfrSGa3cR2pDgft
LOG_DATA_REMOTE_ENDPOINT No 3rd-party endpoint for plugin logs https://my-logs-service.com/my-account/logs
LOG_EXCEPTION_REMOTE_ENDPOINT No 3rd-party endpoint for plugin exceptions https://my-logs-service.com/my-account/exceptions
MAX_BAD_DIR No Max files in "bad" directory 100
MAX_PLUGIN_CONSUME No Max in-progress files 15
CUSTOM_NPM_REGISTRY No Custom NPM registry https://npm.yourcompany.com
CUSTOM_NPM_ACCOUNT No Username for NPM registry svc_account
CUSTOM_NPM_PASSWORD No Password for NPM registry mypassw0rd
API_MS_TIMEOUT No API timeout in ms 60000
PLUGIN_DOWNLOAD_MS_TIMEOUT No Plugin download timeout in ms 600000
HTTP_PROXY / http_proxy No

HTTP Proxy Support: Accepts any HTTP URL string value. This is only for the HTTP protocol.

Outpost and all plugins should use this environment variable for HTTP proxy configuration.

Endpoints listed in NO_PROXY (e.g. localhost, 127.0.0.1) will bypass the proxy settings.

⚠️ WARNING: Ensure your proxy server is running and properly configured before setting proxy environment variables. Incorrect proxy settings can cause application failures, timeouts, and connectivity issues.
http://proxy:80
HTTPS_PROXY / https_proxy No

Accepts any https url string value. It is only for HTTPS protocol.

Outpost and all plugins should use this env var for https proxy.

Endpoints listed in NO_PROXY (e.g. localhost, 127.0.0.1) will bypass the proxy settings.

⚠️ WARNING: Ensure your proxy server is running and properly configured before setting proxy environment variables. Incorrect proxy settings can cause application failures, timeouts, and connectivity issues.

https://proxy:80
NO_PROXY / no_proxy No

Accepts any endpoint string value. Use , for multiple instances.

Outpost and all plugins should use this variable to bypass proxy settings and fall back to the default network route.

⚠️ WARNING: Ensure your proxy server is running and properly configured before setting proxy environment variables. Incorrect proxy settings can cause application failures, timeouts, and connectivity issues.

localhost,127.0.0.1
ALL_PROXY / all_proxy No

Accepts any endpoint string value.

Outpost and all plugins should use this variable to proxy all traffic. Do not combine ALL_PROXY with other proxy settings, except NO_PROXY.

Endpoints listed in NO_PROXY (e.g., localhost, 127.0.0.1) will bypass the proxy.

⚠️ WARNING: Ensure your proxy server is running and properly configured before setting proxy environment variables. Incorrect proxy settings can cause application failures, timeouts, and connectivity issues.

http://proxy:80

Custom variables should be prefixed with OP_VAR_ and consumed as opvar. in plugin config.


Useful Docker Commands

List running containers:

docker container ls

Example output:

CONTAINER ID   IMAGE   ...   PORTS                      NAMES
e3784e50cf65   autodesk/tandem-connect-outpost ...      outpost-bacnet_outpost-1

View logs:

docker logs <container_id>

Shutdown Outpost:

docker compose down

Connectivity and Firewalls

Outpost requires the following connectivity:

System Purpose Port/Protocol Example
Autodesk Tandem Connect API Retrieve config and plugins 443/TCP api-1.tandem-connect.usa.autodesk.com
NPM Registry Retrieve third-party NPM packages 443/TCP registry.npm.org + GitHub
Autodesk Tandem APIs Access and update facility components 443/TCP developer.api.autodesk.com, tandem.autodesk.com
Source/Destination System System being integrated As per system N/A

Other Connectivity Options

Outpost supports Purdue model architectures and can act as a proxy between network layers. Contact support for more information.

Was this information helpful?