
Docker image running https://github.com/airdcpp-web/airdcpp-webclient. You must have proper knowledge of Docker to use this image.
docker volume create --name airdcpp-volume docker run -d --name airdcpp-container \ -p 80:5600 -p 443:5601 \ -p 21248:21248 -p 21248:21248/udp -p 21249:21249 \ -e PUID=$(id -u) \ -e PGID=$(id -g) \ -v airdcpp-volume:/.airdcpp \ -v $HOME/Downloads:/Downloads \ -v $HOME/Share:/Share \ gangefors/airdcpp-webclient
The web UI will be available on http://localhost and https://localhost. HTTPS is using self-signed certs, see Enable HTTPS for more details.
If you want to access the Web UI on any other port, just update the -p
option in the command, e.g -p 8081:5600 to bind to port 8081 instead.
See Exposed Ports for more details.
Username / password for the default admin account is:
admin/password
PUID / PGID environment variables are only available using the
latesttag and versions later than 2.11.0. Older images will not be rebuilt.
docker volume create --name airdcpp-volume
This command creates a named volume that will store the application settings.
Run the
volume createcommand only once.
docker run -d --name airdcpp-container \ -p 80:5600 -p 443:5601 \ -p 21248:21248 -p 21248:21248/udp -p 21249:21249 \ -e PUID=$(id -u) \ -e PGID=$(id -g) \ -v airdcpp-volume:/.airdcpp \ -v $HOME/Downloads:/Downloads \ -v $HOME/Share:/Share \ gangefors/airdcpp-webclient
This command starts a container using the default settings built into the image, binding the application to port 80/443 (default http/https ports) so it's readily available on http://localhost and https://localhost.
The container is started as root but the application within will be running as the user running the docker command. This is necessary to make the files written by the application to be owned by your local user even outside the container.
It will also mount "Downloads" and "Share" from you home directory. Change these according to your personal setup.
If you run the container as root you need to set the PUID/PGID variables.
Example: -e PUID=1000 -e PGID=1000.
All files written by the application will be owned by this user and group.
Use UMASK to change the permissions of the files.
PUID
Application runs as this user id. Usually you want this to be your local user id. Must be >= 101.
PGID
Application runs as this group id. Usually you want this to be your local user's group id. Must be >= 101.
The reason for the >= 101 limitation is that the image already contains accounts and groups with IDs lower than that. Use
--userif you need to use IDs lower than 101.
UMASK
Changes how the application writes its files. Defaults to 0022. Read more on the umask man page.
You can also start the container as a non-root user. This is another way of telling the application which user you want it to run as.
Add --user $(id -u):$(id -g) to the docker run command and the container
will start as the user that runs the command.
docker run -d --name airdcpp-container \ -p 80:5600 -p 443:5601 \ -p 21248:21248 -p 21248:21248/udp -p 21249:21249 \ --user $(id -u):$(id -g) \ -v airdcpp-volume:/.airdcpp \ -v $HOME/Downloads:/Downloads \ -v $HOME/Share:/Share \ gangefors/airdcpp-webclient
You can also put in specific IDs if you want to run as a different user than the current user. E.g. if you need to use an ID that is lower than the ones supported by PUID/PGID (but not 0). Make sure that the mounts and the files therein are owned and writable by the user, otherwise the container will fail to start.
This feature is available since label
2.11.2-podman. The suffix is only used by v2.11.2.
You can start a container using Podman. Make sure that the mounts and the files therein are owned and writable by the user, otherwise the container will fail to start.
Podman users should run the container as root (uid=0). I.e. don't add --user
or PUID/PGID.
podman run -d --name airdcpp-container \ -p 80:5600 -p 443:5601 \ -p 21248:21248 -p 21248:21248/udp -p 21249:21249 \ -v airdcpp-volume:/.airdcpp \ -v $HOME/Downloads:/Downloads \ -v $HOME/Share:/Share \ gangefors/airdcpp-webclient
There is a docker-compose file available to set up the application as a service on a docker host. Just run the following.
docker-compose up -d
You can configure some aspects of the application when using docker-compose
by setting these environment variables before running docker-compose up -d.
PUID
Application runs as this user id. Defaults to 1000. Usually you want this to be your local user id. Must be >= 101.
PGID
Application runs as this group id. Defaults to 1000. Usually you want this to be your local user's group id. Must be >= 101.
UMASK
Changes how the application writes its files. Defaults to 0022. Read more on the umask man page.
DL_DIR
Host path mounted to /Downloads in the container. Defaults to $HOME/Downloads.
SHARE_DIR
Host path mounted to /Share in the container. Defaults to $HOME/Share.
HTTP_PORT
Published HTTP port. Defaults to 80.
HTTPS_PORT
Published HTTPS port. Defaults to 443.
TCP_PORT
Published TCP port for incoming connections. Defaults to 21248. If this is changed you have to change it in the application settings as well.
UDP_PORT
Published UDP port for incoming connections. Defaults to 21248. If this is changed you have to change it in the application settings as well.
TLS_PORT
Published TLS port for incoming connections. Defaults to 21249. If this is changed you have to change it in the application settings as well.
/.airdcpp
This volume stores the application settings.
On launch it will be populated with default settings unless the folder already contains the DCPlusPlus.xml configuration file.
/Downloads
This is the default Download folder, but you can change this in the settings through the web UI.
/Share
This is the default share folder.
Any bind mounted folder under this will automatically be added to your Share.
5600 HTTP port
5601 HTTPS port
21248 TCP and UDP port for incoming connections. You have to publish this
on the same port number otherwise clients will not be able to connect.
21249 TCP port for incoming encrypted connections. You have to publish this
on the same port number otherwise clients will not be able to connect.
If you want to use other ports for incoming connections you can change them under Settings>Connectivity>Advanced>Ports in the web UI.
The incoming connection ports are used to enable active mode. This allows you to connect to all peers in a hub, including the ones in passive mode.
Read more about connectivity modes in the official FAQ.
To add/modify administrative users, run the following commands. Admin users can then add normal users in the web UI under Settings > System > Users.
docker stop airdcpp-container docker run --rm -it --volumes-from airdcpp-container \ -e PUID=$(id -u) -e PGID=$(id -g) \ gangefors/airdcpp-webclient --add-user docker start airdcpp-container
You must stop the webclient application container before running the
--add-usercommand. If you add a user while it's running, the configuration will be overwritten when the application shuts down.
Example:
docker pull gangefors/docker-airdcpp-webclient docker stop airdcpp-container docker rm airdcpp-container docker run -d --name airdcpp-container \ -p 80:5600 -p 443:5601 \ -p 21248:21248 -p 21248:21248/udp -p 21249:21249 \ -e PUID=$(id -u) \ -e PGID=$(id -g) \ -v airdcpp-volume:/.airdcpp \ -v $HOME/Downloads:/Downloads \ -v $HOME/Share:/Share \ gangefors/airdcpp-webclient
The image comes with self-signed certificates so you should be able to use HTTPS out of the box. But if you want to generate your own certificates here's how you do it.
The container must be running.
docker exec -it airdcpp-container openssl req \ -subj "/C=US/ST=State/L=City/O=/CN=localhost" \ -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /.airdcpp/Certificates/client.key \ -out /.airdcpp/Certificates/client.crt
Change the CN string to whatever the domain name or IP you are running your service on. You can also add more information in the -subj string if you want. Check this site for more information on the different fields.
If you get any permission issues with the config files you can solve this by
running a temporary container and chowning the files through that.
docker run --rm \ --volumes-from=airdcpp-container \ debian:stable-slim \ chown -R $(id -u):$(id -g) /.airdcpp
It might happen that the startup script doesn't correctly identify that it
was podman that started the container. This can be fixed by adding
container=podman environment variable when starting the container.
podman run ... -e container=podman ...
To see what commands are run during startup of the container you can add the following environment variable.
LOG_STARTUP
Enable verbose logging during startup. Defaults to empty string, any value will enable verbose logging.
docker run ... -e LOG_STARTUP=1 ...
AirDC++ have some options for enabling communication debug logs. Just add them as normal program options after the image name.
--cdm-hub Print all protocol communication with hubs in the console --cdm-client Print all protocol communication with other clients in the console --cdm-web Print web API commands and file requests in the console
This is not needed since the images are already pushed to Docker hub.
If you want to build your own image run the following command.
docker build --no-cache --pull -t gangefors/airdcpp-webclient:latest .
The Dockerfile is set up to fetch the latest version on master branch in the https://github.com/airdcpp-web/airdcpp-webclient.
To build a different version than latest supply the build-arg dl_url.
Find the URL for the version you want to build at <[***]>
export dl_url="[***]" docker build --no-cache --pull -t gangefors/airdcpp-webclient:2.7.0 --build-arg dl_url .
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务