anbox stream agent #96

Supports: bionic focal


The Anbox Stream Agent creates a communication path between the Stream Gateway and an AMS instance.

Anbox Cloud - Anbox Stream Agent

Anbox Cloud offers a software stack that runs Android applications in any cloud enabling high-performance streaming of graphics to desktop and mobile client devices.

At its heart, it uses lightweight container technology instead of full virtual machines to achieve higher density and better performance per host while ensuring security and isolation of each container. Depending on the target platform, payload, and desired application performance (e.g. frame rate), more than 100 containers can be run on a single machine.

For containerization of Android, Anbox Cloud uses the well established and secure container hypervisor LXD. LXD is secure by design, scales to a large number of containers and provides advanced resource management for hosted containers.

Also have a look at the official Anbox Cloud website for more information.

NOTE: Anbox Cloud is a paid offering. You will need a Ubuntu Advantage subscription for this charm to work. You can learn more at

WARNING: The Ubuntu Advantage for Infrastructure token every user gets for free for personal use does *NOT work and will result in a failed deployment! You need to use a valid *Ubuntu Advantage for Applications** token to be able to deploy successfully.

Anbox Stream Agent

The Anbox Stream Agent is a charm deployed in each region of your deployment. It establishes a connection between the main entrypoint for streaming (the Anbox Stream Gateway) and AMS while keeping AMS secure and unexposed to public networks.

It also allows containers to be created as close to the user as possible by configuring geographical regions.

$ juju deploy cs:~anbox-charmers/anbox-stream-agent
$ juju config anbox-stream-agent ua_token=<your UA token>
$ juju relate ams anbox-stream-agent

For more information about streaming, visit the official documentation on


(string) ID of the agent
(string) Authentication secret to use to generate user specific credentials for the configured coturn server. If set an auth secret provided by an established relation to the coturn charm will be ignored.
(string) Comma separated list of URLs to the coturn server to use for STUN and TURN. If set an established relation to the coturn charm will be ignored.
(boolean) Expose a TCP port for each container for WebRTC to bind to avoid a TURN relay server.
(string) Comma separated list of extra STUN servers the agent should promote for clients connecting to its region
(string) Location the agent is available on. If not set its private address will be used.
(string) Used by the nrpe subordinate charms. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
(string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
(string) CA for the NATs servers the agent talks to
(string) URL of the NATs server to use to communicate with the stream gateway [DEPRECATED, use nats_urls]
(string) Newline separated list URLs of NATs servers to use to communicate with the stream gateway
(int) Port the agent listens on.
(string) Identifies which network interface to use for the public address
(string) Region the agent is deployed in
(string) Maximum lifetime of an authentication token generate for the TURN relay server
(string) APT source to use instead of the automatic one generated from UA. Overrides UA source if both are set.
(string) Key ID to import to the APT keyring in order to access the specified source archive. Required if ua_source is set.
(string) Ubuntu Advantage token you have received with your license of Anbox Cloud
(boolean) Use staging contracts API service