Containerized Ente CLI with cron-based scheduled exports.
3.1K
Minimal Alpine container for automated Ente CLI exports.
Built from upstream cli-v* releases (currently cli-v0.3.0) for linux/amd64 and linux/arm64.
Source: https://github.com/the-wittch/ente-cli
mkdir -p cli-data data
docker run -d --name ente-cli --restart unless-stopped \
-e SCHEDULER=loop \
-e LOOP_INTERVAL=21600 \
-e TZ=UTC \
-v "$PWD/cli-data:/cli-data:rw" \
-v "$PWD/data:/data:rw" \
wittchy/ente-cli:latest
# One-time login (loop mode runs as enteuser)
docker exec -it -u enteuser ente-cli /usr/local/bin/ente-cli account add
| Mode | Env | Behavior |
|---|---|---|
| loop (default) | SCHEDULER=loop · LOOP_INTERVAL=21600 | Export on start, then every N seconds. Drops to non-root enteuser (uid 1000). |
| cron | SCHEDULER=cron · CRON_SCHEDULE=0 */6 * * * | Export on start, then on cron matches. Stays root for BusyBox crond. Quiet between runs. |
Default cron 0 */6 * * * = startup + 00:00 / 06:00 / 12:00 / 18:00 in container TZ. Silence at other times is expected.
| Variable | Default | Purpose |
|---|---|---|
SCHEDULER | loop | loop or cron |
LOOP_INTERVAL | 21600 | Seconds between loop exports |
CRON_SCHEDULE | 0 */6 * * * | Five-field cron when SCHEDULER=cron |
TZ | UTC | Timezone for cron + log timestamps |
HEALTHCHECK_URL | (empty) | Healthchecks.io / Uptime Kuma push URL |
CROND_LOG_LEVEL | 8 | BusyBox verbosity (8 quiet; 2/0 debug) |
| Path | Purpose |
|---|---|
/cli-data | Credentials & config (persist this) |
/data | Decrypted export destination |
/etc/crontabs/root | Optional mounted crontab (:ro) |
latest — newest build from the latest upstream cli-v* releasecli-v0.3.0 / v0.3.0 — pinned upstream release<git-sha> — immutable CI build/data and /cli-data/cli-data so you do not need to re-authenticatedocker exec -u enteuser in loop mode so files stay owned by uid 1000The ente-cli binary is AGPL-3.0.
Content type
Image
Digest
sha256:2bfc48139…
Size
10.9 MB
Last updated
4 days ago
docker pull wittchy/ente-cli