-
Notifications
You must be signed in to change notification settings - Fork 0
pcat manager web ipk
pcat-manager-web is now open source at github.com/photonicat/pcat-manager-web. Prefer reading the source directly for code-level questions.
This page covers downloading the shipped IPK to understand its install layout and its socket protocol with pcat-manager.
The web management interface source (Python Flask backend, Tailwind CSS + Alpine.js frontend) is at:
Key paths in the source tree for PMU/MCU-related logic:
| Source file | What it covers |
|---|---|
app/pcat_manager_web.py |
Flask routes: MCU version checks, MCU update, package management |
app/pc_socket_client.py |
Unix socket client: pmu-fw-version-get, query_stm32_version
|
app/app.py |
Core application logic, system monitoring |
app/pcat_config.py |
URL configuration (MCU manifest, package version endpoints) |
Use the Photonicat 2 package manifest as the source for current filenames:
BASE_URL=https://dl.photonicat.com/repos/photonicatwrt/photonicat2
curl -fL -o /tmp/packages-volatile.txt "$BASE_URL/packages-volatile.txt"
WEB_PKG=$(awk '/^pcat-manager-web_.*\.ipk$/ { print; exit }' /tmp/packages-volatile.txt)
MANAGER_PKG=$(awk '/^pcat-manager_.*\.ipk$/ { print; exit }' /tmp/packages-volatile.txt)
printf 'web package: %s\n' "$WEB_PKG"
printf 'manager package: %s\n' "$MANAGER_PKG"Download pcat-manager-web and pcat-manager from the manifest:
curl -fL -o /tmp/pcat-manager-web.ipk "$BASE_URL/volatile/$WEB_PKG"
curl -fL -o /tmp/pcat-manager.ipk "$BASE_URL/volatile/$MANAGER_PKG"The inspected pcat-manager-web package is a tar-format IPK containing debian-binary, data.tar.gz, and control.tar.gz.
mkdir -p /tmp/pcat-manager-web-ipk /tmp/pcat-manager-web-root
tar xf /tmp/pcat-manager-web.ipk -C /tmp/pcat-manager-web-ipk
tar xzf /tmp/pcat-manager-web-ipk/data.tar.gz -C /tmp/pcat-manager-web-root
find /tmp/pcat-manager-web-root/usr/share/pcat-manager-web -maxdepth 2 -type f | sortThe Python application is installed under:
/usr/share/pcat-manager-web/
Expected files include:
app.pyc
cmd_tool.pyc
opkg-install.pyc
pc_socket_client.pyc
pcat-manager-web-main.pyc
pcat_manager_web.pyc
pcat_util/*.pyc
templates/*.html
static/*
The init script is:
/etc/init.d/pcat-manager-web
It launches:
python3 /usr/share/pcat-manager-web/pcat-manager-web-main.pycThe shipped IPK contains compiled .pyc bytecode. The corresponding .py source is at github.com/photonicat/pcat-manager-web.
The web app talks to the local pcat-manager daemon over /tmp/pcat-manager.sock. See app/pc_socket_client.py in the source for the Python side of this protocol. Inspect the pcat-manager package to verify the daemon-side socket and command strings:
mkdir -p /tmp/pcat-manager-ipk /tmp/pcat-manager-root
tar xf /tmp/pcat-manager.ipk -C /tmp/pcat-manager-ipk
tar xzf /tmp/pcat-manager-ipk/data.tar.gz -C /tmp/pcat-manager-root
find /tmp/pcat-manager-root -type f | sortExpected files include:
/etc/init.d/pcat-manager
/etc/pcat-manager.conf
/usr/bin/pcat-manager
For quick command discovery:
strings /tmp/pcat-manager-root/usr/bin/pcat-manager |
rg -i 'pmu|firmware|fw-version|status|socket|update'The socket commands used for MCU interaction include pmu-status and pmu-fw-version-get. The web package's /update, /pkg_upload, and /pkg_update routes are for package upload/install, not MCU firmware flashing.
The public manifest listed pcat-manager-web_2.0.1-27_aarch64_generic.ipk, while the full OpenWrt image shipped pcat-manager-web 2.2.1-116.
The version-check and update logic is in app/pcat_manager_web.py (see pcat_package_version_info and remote_pcat_package_version_info functions) and configured via app/pcat_config.py:
-
package_version_urldefaults tohttps://dl.photonicat.com/repos/openwrt/r2304/packages-volatile.txt -
volatile_packages_urlis the base URL for remote package installation - The update flow invokes
opkg-install.pycon the device
This path discovers and installs IPK package updates. It is separate from the MCU production manifest and MCU update endpoint. Use OpenWrt Image Inspection and MCU Version Check for the MCU firmware path.