Skip to content

Security and networking

Authentication

Basic authentication

Configure basic authentication in the plugins section of your configuration file.

CLI configuration:

plugins {
    authentication {
        type = "basic"
        username = "myUserName"
        password = "mySecretPass"
    }
}

Agent configuration:

plugins {
    authentication {
        type = "basic"
        authorizedUsers = new Listing<User> {
            new {
                username = "myUserName"
                // BCrypt salted password hash
                password = "$2y$10$ki1wCrM94EViuTv0dRNEVuP3ujj2/uu2Zh8/FyFvExjZyrsdtr1SS"
            }
        }
    }
}

Generate BCrypt password hashes:

htpasswd -bnBC 10 "" yourPassword | tr -d ':'

TLS

Enable TLS for secure agent communication:

agent {
    server {
        hostname = "agent.example.com"
        tlsCert = "/path/to/cert.crt"
        tlsKey = "/path/to/cert.key"
    }
}

See the server settings reference for additional options.


Tailscale (experimental)

Connect the agent to your Tailscale network without installing the Tailscale client. This provides secure, centralized access without complex VPC or VPN configuration.

plugins {
    network {
        type = "tailscale"
        hostname = "formae-agent"
        tls = true  // Auto TLS termination via Tailscale
        authKey = "tskey-auth-..."
        advertiseTags {
            "tag:formae"
        }
    }
}
Property Description
hostname Device name on your tailnet
tls Enable automatic TLS certificate from Tailscale
authKey Tailscale auth key for device registration
advertiseTags Tags for ACL-based access control