Migrated all 80 app JSON files to place config_path inside each
install_methods object instead of at the root level. This allows
different install methods (e.g. Debian vs Alpine) to have distinct
config paths.
Also updated AGENTS.md JSON structure example to reflect the change.
Add new ProxmoxVED container templates (ct/*.sh), install scripts (install/*.sh) and metadata (json/*.json) for multiple applications: Akaunting, Blinko, Certimate, Dagu, Gogs, InvoiceShelf, Matomo, Papermark, RSS-Bridge, SolidTime and WhoDB. Each ct script includes update logic and deployment helpers; install scripts handle dependency installation, service creation (systemd), DB setup, and Caddy/PHP/Node/Postgres configuration where applicable. JSON entries provide UI metadata, resource defaults and access ports for each app.
Remove non-portable dummy_touchscreen InputDevice from Xorg config and adjust dummy_mouse entry. Hardcode supervisord environment/user/display to 'neko' and :99.0 for X, PulseAudio, Firefox, Openbox and the Neko server to simplify runtime on bare-metal. Update /etc/neko/neko.yaml to disable session cookies, enable WebRTC icelite, add nat1to1 mapping with ${LOCAL_IP}, set EPR port range 59000-59100, and disable desktop input. Update json/neko.json to clear the default username (null) and clarify the password-only login note. These changes make the packaged runtime compatible without the custom Xorg driver and streamline defaults for deployment.
Migrate manifest to the updated schema and enrich metadata: rename install_methods_json->install_methods and notes_json->notes, add categories, date_created, updateable, interface_port and default_credentials fields. Adjust description text (remove emoji) and set the install script path (ct/mini-qr.sh). These changes prepare the Mini QR package for the newer CT manifest format and include basic deployment metadata.
Introduce Neko container template with installer and metadata. Adds ct/neko.sh (container install entrypoint and update routine), install/neko-install.sh (detailed install/build steps: fetch GitHub release m1k1o/neko, build client/server, configure supervisord, systemd service, runtime users, plugins, and default neko.yaml), and json/neko.json (app metadata, resources, port 8080, default credentials and notes). Enables automated provisioning of the Neko WebRTC virtual browser on Debian 12 with default CPU/RAM/disk values.
Add a new .github agent (pve-script-creator.agent.md) with workflow and strict rules for generating CT/install/json files. Remove legacy CT/install/json artifacts for alpine-ironclaw and openthread-br (ct/, install/, json/ entries deleted). Also adjust mqttx update logic: set CLEAN_INSTALL=1 and move the update msg_info after fetch_and_deploy_gh_release to ensure a clean deployment before reporting/updating and then run yarn build in the app web dir.
MQTTX Web is a static browser-based MQTT client with no backend.
Makes more sense as an addon installable into any existing container
than as a dedicated LXC.
Addon installs into /opt/mqttx, builds web/ with yarn, serves via
Nginx on configurable port (default 8095). Supports install/update/uninstall.
- openthread-br: add socat dep for TCP adapters, add --vendor-name/--model-name
(mandatory), bind REST API to 0.0.0.0:8081, configure otbr-web to listen on
all interfaces, update TCP example with socat forkpty pattern
- kan: export BETTER_AUTH_SECRET and POSTGRES_URL before build (required by
@t3-oss/env-nextjs zod validation at build time)
- mysql: remove MariaDB-on-trixie workaround (MySQL repo now has trixie packages),
update GPG key from RPM-GPG-KEY-mysql-2023 to RPM-GPG-KEY-mysql-2025
- Set ADMIN_EMAIL/ADMIN_PASSWORD so admin user is created on first boot
- Generate JWT keypair for authentication to work
- Run doctrine:migrations:migrate for DB schema
- Save credentials to ~/slink.creds
- Build from source via git clone + cmake/ninja
- Privileged container for network admin (iptables/ipset/tun)
- Web GUI on port 80, REST API, mDNS service discovery
- Configurable RCP device path in /etc/default/otbr-agent
- Git-based update with shallow fetch + rebuild
Raise default resources for DrawDB container: update ct/drawdb.sh to set var_ram from 2048 to 6144 and var_disk from 4 to 5 to allocate more memory and disk. Also adjust json/homelable.json formatting by expanding the categories array to multiple lines for readability; no functional metadata changes.
- Add hardcoded OTT (123456) for all emails in museum.yaml so users
don't need to search logs for verification codes
- Replace separate helper scripts with single 'ente-setup' command
that handles: admin whitelisting (user_id from DB), CLI account
add, and subscription upgrade in one guided flow
- Simplify JSON notes to single first-start instruction
The admin CLI requires the user to be whitelisted via their numeric
user_id in museum.yaml's internal.admin field. The helper script
ente-upgrade-subscription now:
1. Looks up user_id from PostgreSQL by email
2. Adds internal.admin to museum.yaml if not present
3. Restarts museum
4. Runs the subscription upgrade
This replaces the previous approach that incorrectly assumed the
first user was auto-admin (that fallback only works when internal
section is completely absent AND was unreliable).
The 'internal.admins' field expects user IDs, not emails. Setting it
to an empty array explicitly disables admin access. Without the field,
museum falls back to treating the first registered user as admin,
which is the correct behavior for self-hosted instances.
- Add 'internal: admins: []' section to museum.yaml so admin CLI
commands work after adding email to the list
- Fix --no-limit flag in helper script (requires 'True' argument)
- Add admin setup step to JSON first-start notes