Sign inSign up

giof71/airconnect

By giof71

•Updated 8 days ago

Run AirConnect with docker

Image
1

50K+

giof71/airconnect repository overview

⁠airconnect-docker

A docker image for AirConnect⁠.
The latest images include version 1.12.3⁠.

⁠References

This is based on this project⁠ by philippe44⁠.
It will let you use your upnp renderers (including those created with upmpdcli⁠ and mpd⁠) and your Chromecast devices as AirPlay devices.

REPOSITORYDESCRIPTION
Source codeGitHub⁠
Docker imagesDocker Hub⁠

⁠Build

Simply build using the following:

docker build . -t giof71/airconnect:latest

⁠Configuration

Configuration is available through a set of environment variables.
There are currently just a few variables available to set, but more will come as soon as possible.

VARIABLEDESCRIPTION
USER_MODEAllows running using PUID/PGID, defaults to yes
USE_CONFIG_VOLUMEUse /config as the config directory, defaults to yes
PUIDGroup used to run the application, defaults to 1000
PGIDGroup used to run the application, defaults to 1000
PREFER_STATICPrefer -static version of the executable, defaults to no
AIRCONNECT_MODEAirConnect mode: upnp or cast, defaults to upnp
CODECFormat used to send HTTP audio, refer to the AirConnect documentation⁠
LATENCYValue for argument -l, set to 1000:2000 for Sonos and Heos players
CONFIG_FILE_PREFIXPrefix for the config file, empty by default
LOG_LEVEL_ALLEnables log of type all using the provided value
LOG_LEVEL_MAINEnables log of type main using the provided value
LOG_LEVEL_UTILEnables log of type util using the provided value
LOG_LEVEL_UPNPEnables log of type upnp using the provided value
LOG_LEVEL_RAOPEnables log of type raop using the provided value
ENABLE_AUTO_NETWORKAllows to automatically set NETWORK_SELECT, defaults to yes, but this does not override an explicitly set NETWORK_SELECT variable anyway
NETWORK_SELECTSets the network interface or ip and optionally port
AUTO_NETWORK_URLUsed for selecting the network to use, defaults to 1.1.1.1
NETWORK_USE_IPUse ip instead of network card for -b, defaults to yes
⁠Log Level Values

Please note that the possible values for the variables starting with LOG_LEVEL_ are the following: error, warn, info, debug, sdebug.

⁠Generate a configuration file

You can generate a configuration file for the upnp version using the following command:

docker run -it \
  --user 1000:1000 \
  --network host \
  --rm \
  -v ${PWD}:/config \
  --entrypoint /app/bin/airupnp-linux \
  giof71/airconnect \
  -i /config/airconnect-upnp-new.xml

The option --user 1000:1000 is needed if the current directory is owned by your user (use the correct uid/gid if they are not 1000 and 1000 respectively).
This will result in a new file named airconnect-upnp-new.xml in you current directory.
Similarly the command for the cast version is like the following:

docker run -it \
  --user 1000:1000 \
  --network host \
  --rm \
  -v ${PWD}:/config \
  --entrypoint /app/bin/aircast-linux \
  giof71/airconnect \
  -i /config/airconnect-cast-new.xml

The resulting file will be of course named airconnect-cast-new.xml.
You can then modify your configuration files to your needs and use them in the your compose file(s) by putting them in the /config volume.

⁠Run

Simple docker-compose files below.

⁠UPnP mode
---
version: "3"

volumes:
  config:

services:
  airconnect:
    image: giof71/airconnect:latest
    container_name: airconnect-upnp
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - AIRCONNECT_MODE=upnp
    volumes:
      - config:/config
    restart: unless-stopped
⁠Chromecast mode
---
version: "3"

volumes:
  config:

services:
  airconnect:
    image: giof71/airconnect:latest
    container_name: airconnect-cast
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - AIRCONNECT_MODE=cast
    volumes:
      - config:/config
    restart: unless-stopped

⁠Changelog

The changelog of the upstream project is available here⁠.

DATEDESCRIPTION
2026-09-25Bump to version 1.12.3⁠
2026-09-24Bump to version 1.12.2⁠
2026-09-07Bump to version 1.11.3⁠
2026-08-08Bump to version 1.11.2⁠
2026-08-04Bump to version 1.11.1⁠
2026-06-28Bump to version 1.10.1⁠
2025-11-21Bump to version 1.9.3⁠
2025-10-24Bump to version 1.9.2⁠
2025-10-19Fix build adding libatomic1⁠ (see issue #14⁠)
2025-10-11Build for arm/v5 instead of arm/v6
2025-10-11Bump to version 1.9.1⁠
2025-06-16Add support for linux/arm/v6 (see issue #8⁠)
2024-10-16Add variable USER_MODE and USE_CONFIG_VOLUME
2024-03-15Bump to version 1.8.3⁠
2024-03-11Prefer ip over iface for the select network interface
2024-03-09Auto select network interface (see #3⁠)
2024-01-26Add support for log levels
2024-01-15Bump to version 1.7.0⁠
2024-01-09Bump to version 1.6.3⁠
2023-12-27Bump to version 1.6.2⁠
2023-12-26Bump to version 1.6.1⁠
2023-12-18Bump to version 1.6.0⁠
2023-12-05Add support for LATENCY (see #1⁠)
2023-12-05Bump to version 1.5.4⁠
2023-12-02Bump to version 1.5.3⁠
2023-11-28Bump to version 1.5.0⁠
2023-11-22First working release

Tag summary

Content type

Image

Digest

sha256:74a11cd9c…

Size

44.1 MB

Last updated

8 days ago

docker pull giof71/airconnect