Repository navigation
Added
-
Zim Pro is licensed under the GNU General Public License v3.0, with a contributing guide,
a code of conduct, a security policy, and issue and pull request templates. -
Health checks:
/api/health, aHEALTHCHECKin the image, and a health check for every
service in the compose files. The captcha solver inside the VPN waits until the VPN is
healthy, and so does Zim Pro when all of its traffic goes through the VPN. -
Queues in Settings: downloads, builds and feed syncs side by side, with what is
running (and when it last moved), what is waiting in order, what is held and what
failed. Pause and resume a queue, change how many run at once, move a waiting job up,
down, to the top or the bottom, retry all failed and cancel all waiting. A day's
figures: done, failed, average wait and run time, 95th percentile, and an hourly chart. -
Redis, optional (
KIWIX_REDIS_URL): the order of each queue and whether it is
paused are kept in Redis, where other tools can see and change them, and the logs are
streamed to it. The database keeps every job's record, so the queues carry on without
Redis and fill it again when it is back.docker/compose.redis.ymlruns both, and
compose.full.ymlnow includes Redis. -
Monitoring in Settings: health checks (disk space, database, responsiveness,
memory, Redis, VPN, captcha solver, catalog, stuck jobs, failures, errors) and charts of
the last hour or day for CPU, memory, responsiveness, requests, fetches, download speed,
jobs and errors, with tables of requests by part of the API, the sites fetched from and
the AI providers. A job that has not moved for ten minutes is flagged and logged. -
Logs in Settings: every line from every part of the server in one list, with the
part and the job it belongs to; filter by level, part, job or text, follow it live, and
download it. Kept inlogs/zim-pro.login the state folder and read back after a
restart. Secrets are blanked out. Each failed or slow request is logged, and each MCP
tool call, AI answer, settings change and queue change.
Changed
- Import OPML shows what the file holds before anything is added: its folders and
feeds, with those you already have marked. Choose which folders to bring in, one
collection per folder or all in one, a category, and whether to sync straight away.
Drop the file on the dialog, choose it, or paste the text.
Fixed
- In the first minute after the machine starts, an automatic change of VPN address was
refused as "too soon after the last one", and the VPN's state could show as empty. - Feed syncs and link builds could stop for good after the VPN changed its address. Each
change dropped the connections open through the proxy, the HTTP library kept them as in
use, and once all were kept no request could be sent. A new set of connections is now
started after each change of address, and whenever the old set runs dry. - Every fetch of a feed, page or file now has a deadline: the answer must start within
a minute, and arrive in full at no less than 50 KB/s on average (at least two minutes).
A site that never finishes answering fails that one page instead of holding up the
build. Checking a feed address gives up after 30 seconds per address. - Checking a feed address used the proxy even when it was switched off in Settings.
Install
- Docker:
docker pull ghcr.io/magicstack-llp/zim-pro:0.5.0(amd64 and arm64) - Executable: download
zim-pro-0.5.0-linux-x86_64.tar.gzor-linux-arm64, unpack it and run./zim-pro. No Python needed. - Python 3.13:
pip install zim-pro==0.5.0
GitHub adds the source code archives to every release automatically.