Self-maintained AceStream engine, auto-rebuilt on new releases. See gabo-it/Acestream-Manager.
2.2K
Self-maintained AceStream engine image, part of the AceStream Manager stack.
This image is not meant to be run standalone — it's one of three services (acestream, acexy, webui) that make up the full stack, orchestrated via Docker Compose.
Create a docker-compose.yml with the content below, adjust any values directly in it, then run docker compose up -d. No separate .env file needed.
services:
acestream:
image: ghcr.io/gabo-it/acestream-engine:latest
container_name: acestream-engine
restart: unless-stopped
environment:
HTTP_PORT: "6677"
PORT: "44556"
ACCESS_TOKEN: "" # set this if this port is reachable beyond your LAN
# Any official engine flag goes in this one line — reference:
# https://docs.acestream.net/developers/engine-command-line-options/
ENGINE_FLAGS: "--client-console --bind-all --live-cache-type memory"
# Containers default to UTC — edit to your IANA timezone (e.g.
# Europe/Rome) for correctly-timed container clocks/logs.
TZ: "UTC"
expose:
- "6677"
ports:
- "6677:6677"
- "44556:44556/tcp"
- "44556:44556/udp"
networks:
- acestream-net
healthcheck:
test: ["CMD-SHELL", "wget -q -t1 -O- http://127.0.0.1:6677/webui/api/service?method=get_version | grep -q '\"error\": null'"]
interval: 30s
timeout: 5s
retries: 3
start_period: 25s
tmpfs:
- /srv/ace/.ACEStream:size=512m,mode=1777 # keeps all engine caching in RAM
acexy:
image: ghcr.io/javinator9889/acexy:0.2.2
container_name: acexy
restart: unless-stopped
depends_on:
acestream:
condition: service_healthy
environment:
ACEXY_HOST: acestream
ACEXY_PORT: "6677"
ACEXY_LISTEN_ADDR: ":8080"
ACEXY_NO_RESPONSE_TIMEOUT: 30s # raise if streams fail with "timeout awaiting response headers"
ACEXY_BUFFER_SIZE: 4.2MiB # raise if playback is choppy
ACEXY_CLIENT_EVICTION_TIMEOUT: 10s
TZ: "UTC"
ports:
- "8080:8080"
networks:
- acestream-net
webui:
image: ghcr.io/gabo-it/acestream-webui:latest
container_name: acestream-webui
restart: unless-stopped
depends_on:
- acexy
environment:
PORT: "4000"
DB_PATH: /data/acestream.db
ACESTREAM_HTTP_PORT: "6677"
TZ: "UTC"
volumes:
- webui-data:/data
ports:
- "4000:4000"
networks:
- acestream-net
# Optional: self-hosted EPG translation / cross-alphabet matching.
# Disabled by default: docker compose --profile translate up -d
# Then: Playlist → "LibreTranslate URL" → http://libretranslate:5000
libretranslate:
image: libretranslate/libretranslate:latest
container_name: libretranslate
restart: unless-stopped
profiles: ["translate"]
environment:
# ~200MB RAM per language loaded — adjust to your actual EPG languages.
LT_LOAD_ONLY: en,it,ru
volumes:
- libretranslate-models:/home/libretranslate/.local
networks:
- acestream-net
# Edit directly to match your hardware — no .env needed.
deploy:
resources:
limits:
cpus: '1'
memory: 1G
# Optional: Cloudflare WARP for the webui's own outbound requests only —
# not connected to AceStream/acexy traffic, nothing routed through it yet.
# ⚠️ Requires NET_ADMIN — a much broader permission than anything else here.
# Disabled by default: docker compose --profile warp up -d
warp:
image: caomingjun/warp
container_name: warp
restart: unless-stopped
profiles: ["warp"]
cap_add:
- NET_ADMIN
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv4.conf.all.src_valid_mark=1
environment:
- WARP_SLEEP=2
volumes:
- warp-data:/var/lib/cloudflare-warp
networks:
- acestream-net
networks:
acestream-net:
driver: bridge
volumes:
webui-data:
libretranslate-models:
warp-data:
docker compose up -d alone starts the three core services — libretranslate is a separate profile and stays off unless requested: docker compose --profile translate up -d. Only needed for optional EPG translation / cross-alphabet channel matching; self-hosted, no third-party service involved. Its CPU/RAM limits above are deliberate — translation is real neural inference and, uncapped, can peg every core on a shared host.
GitHub: gabo-it/Acestream-Manager
See the main repository for:
latest — always the most recent build<version> (e.g. 3.2.11) — matches the bundled AceStream engine versionv1.0, v1.1, ... — pinned to a specific stable release of the whole stackThis image is automatically rebuilt via GitHub Actions whenever a new AceStream engine version is published upstream — see .github/workflows/docker-build.yml.
Built on top of the official AceStream engine.
Content type
Image
Digest
sha256:50b039fd2…
Size
140.6 MB
Last updated
7 days ago
docker pull gaboita/acestream-engine