Commit Graph
18777 Commits
Author SHA1 Message Date
Rögl-Brunner Michel 03ea5280e6 CI hosts: single-use, reset before every job 2026-11-12 11:11:19 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 9b6c24f8ff Update CHANGELOG.md (#18627)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 08:54:34 +00:00
push-app-to-main[bot]andCanbiZ cbb347cc61 Pixelfed (#18523)
* Add pixelfed (ct)

* arm64 unknown

* pixelfed: use nginx_enable_site, enable FFI for vips, align .env with upstream

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-11-12 09:54:10 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 0ad290c81f Update CHANGELOG.md (#18626)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 08:53:15 +00:00
CanbiZ (MickLesk) 0b25f9c6a5 Whisparr-eros: set the first login and save it (#18617)
* fix(whisparr-eros): set the first login and save it

Eros 3.6 turns on forms login and creates the user whisparr with a password that only appears in its log, so a fresh install showed a login nobody knew the password for (#18616). The install now sets a random password through WHISPARR__AUTH__INITIALPASSWORD for the first start only, removes it again, and saves the login in ~/whisparr-eros.creds; the password stays out of the logs.

* whisparr-eros: set the first password in the unit, write creds with cat
2026-11-12 09:52:47 +01:00
Rögl-Brunner Michel 1ac6100001 pr-script-test: build every PR automatically, forks included 2026-11-12 09:22:03 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 46f54a9071 Update CHANGELOG.md (#18625)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 08:13:14 +00:00
Rögl-Brunner Michel d67f53176e pr-script-test: /test can pick the platforms, and takes app names in PRs 2026-11-12 09:12:45 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 1edcadd90b Update CHANGELOG.md (#18623)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11
2026-11-11 22:53:34 +00:00
CanbiZ (MickLesk) b1597ac3d1 Paperless-AI: install and update to 4.0 (#18620)
* Paperless-AI: install and update to 4.0

4.0 is a rewrite as a single Node.js process. requirements.txt is gone,
so every install since its release on 2026-11-10 failed at pip, and an
update would have failed the same way.

Install and update now build it the way upstream's image does. An
update from 3.x removes the Python RAG service and rewrites the unit
without data/.env as its environment: 4.0 migrates that file on first
start and treats any setting passed as a variable as locked.

* Paperless-AI: migrate pre-RAG 3.x units too, drop comments
2026-11-11 23:53:08 +01:00
CanbiZ (MickLesk) 0f2e4022c0 Immich: bump to 3.4.1 (#18619) 2026-11-11 21:39:28 +01:00
juronja bf5fa77f0b TrueNas: Fixing isolookup and dialog (#18578)
* fix(truenas-vm): improve ISO fetching logic and exclusions

* fix(truenas-vm): enhance ISO selection and error handling

* fix(truenas-vm): improve ISO selection and error handling

* fix(truenas-vm): enhance ISO lookup and selection process to filter by stable releases only and improve user dialog
2026-11-11 21:33:09 +01:00
Rögl-Brunner Michel fb58720888 arm-runner-setup: get past the runner's DNS failing for the arm64 mirror
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
The ARM runner's resolver cannot resolve ports.ubuntu.com since this
afternoon; apt then hangs. The name is now looked up over DNS-over-HTTPS
when needed, and a failing apt prints the runner's network state.
2026-11-11 16:24:38 +01:00
Rögl-Brunner Michel 7258873339 arm-runner-setup: time limits, so a hung setup can't hold the report 2026-11-11 16:03:49 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 243c3b1047 Update CHANGELOG.md (#18612)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11 14:24:52 +00:00
CanbiZ (MickLesk) 5a4f599f4f Fill platforms when a script moves from DevScripts (#18611)
Setting is_dev to false left platforms as DevScripts had them, usually empty or pve only, although a container in ProxmoxVE is synced to Incus from then on. 36 production records had no platforms because of it. The migration now sets pve and incus for containers, pve where nothing was set, and amd64 for an empty architectures.
2026-11-11 15:24:20 +01:00
Rögl-Brunner Michel 6163037afd pr-script-test: every ct/ script on ARM64 too, as information only
- ARM runs on GitHub's ubuntu-24.04-arm runner (free for public repos), set
  up by arm-runner-setup.sh: Incus 6.0 LTS from Zabbly (key pinned, APT
  pin), screenshots through Playwright. ARM rows are shown but never count:
  not in the headline, the check, the review or the approval, and the job
  runs with continue-on-error.
- var_arm64=no is not built on ARM; unset is built with var_arm64=yes.
- arm-script-test.yml builds one script on ARM by hand, posting nothing.
- Update test: only the versions update_script checks are set back.
- The screenshot browser gets a writable HOME.
2026-11-11 13:31:33 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 95abb0a2d6 Update CHANGELOG.md (#18610)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11 12:26:01 +00:00
CanbiZ (MickLesk) 76996d2d82 Pocketbase: install and update from the new host (removed in github) (#18609)
* fix(pocketbase): install and update from the new host

PocketBase moved from GitHub to ganigeorgiev.com in October 2026; the GitHub repo is archived at v0.40.6 and gets no new releases. Install and update now read the latest stable tag from the new release API and download the zip from its fixed download path. The update no longer runs pocketbase update, which older binaries point at GitHub.

* fix(pocketbase): query the release API with curl_with_retry
2026-11-11 13:25:36 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 009c7b0c0e Update CHANGELOG.md (#18608)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11 11:30:22 +00:00
Rögl-Brunner Michel 01f37f501f pr-script-test: build vm/ scripts, and every ct/ script on Incus too
- vm/ scripts run unattended (VM_UNATTENDED=1) on the Proxmox hosts, IDs
  9100-9199, one VM per host at a time. Checks: success line, the VM keeps
  running, a DHCP lease, and a ${VM_IP} URL answering 200. Console
  screenshot from QEMU when there is no web UI. ARM64-only scripts are
  listed as not built.
- Every ct/ script now builds on pve and incus (new incus-test runners,
  incus-ci-host-setup.sh); the comment gets a Platform column.
- Spinner frames are dropped from logs and live output.
- The sweeper ignores and removes locks of killed jobs (older than 3h).
2026-11-11 11:48:57 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] b60ff8540a Update CHANGELOG.md (#18606)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11 10:30:42 +00:00
CanbiZ (MickLesk) 3aca471c7b Immich: bump to 3.4.0 (#18600)
3.4.0 adds FUTO Backups, which run restic from PATH and use restic-proxy when it is there. Both are built from the refs the server Dockerfile pins, and an update only rebuilds them when those change. pigz is installed, which database backups now use for compression when present. mise skips its own restic, and the extism-js fallback follows the js-pdk version in mise.toml (v1.7.0) instead of a fixed v1.6.0.
2026-11-11 11:30:11 +01:00
Rögl-Brunner Michel f63d1bd425 pr-script-test: test the update too, and /test <app> in issues
Update test: after a passing install, every version file the install
wrote (~/.<app>) is set back to 0.0.0-ci and the container's own
`update` runs unattended, pulling the PR's ct/ script, so
update_script's real path is exercised. It must report "Updated
successfully" without errors, and services and URL are checked again.
Apps without a version file get "nothing to update", a GitHub rate
limit counts as not tested. Separate Install and Update columns in the
report; a failed update requests changes like a failed install.

The job's read-only token is passed to the build so release lookups are
not rate limited (all test containers share one public IP).

/test <app> in an issue builds that app from main, install and update,
and answers in the issue; no check run, review or approval.
2026-11-11 10:46:01 +01:00
Rögl-Brunner Michel d859b2f764 pr-script-test: runners named after their host
A second test host (pve-ci-2) now serves both repositories. The setup
script registered runners as pve-ci-<repo> with --replace, which would
have made it take over the first host's registration; they are now
named <host>-<repo>.
2026-11-11 10:30:43 +01:00
Michel Roegl-Brunner 81e8e0495b Increase timeout from 60 to 90 minutes 2026-11-11 09:41:57 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] ebd69e822d Update CHANGELOG.md (#18604)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-11 08:18:37 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] c1e45c1c51 Update CHANGELOG.md (#18599)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10
2026-11-10 18:36:57 +00:00
Rögl-Brunner Michel e1dd96614d pr-script-test: approve migrations only when they change nothing else
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Anyone with write access can push to a push-app-to-main branch, and the
bot's approval counts toward the main ruleset's required review. The
approval now only covers what a migration contains: if the PR changes
anything besides ct/*.sh and install/*.sh (workflows, misc/, ...), it is
tested as usual but not approved, and the result comment says why.
2026-11-10 16:34:29 +01:00
Rögl-Brunner Michel cfada6ed6a pr-script-test: run on DevScripts migrations by itself, approve passes
PRs that the push-app-to-main app opens on a branch of this repository
(scripts moving over from DevScripts, reviewed and tested there,
writable only by writers) are now built on pull_request_target for
every push, pinned to the pushed commit; an event for an older push is
ignored. When every script passes, the bot approves the tested commit,
which counts toward the main ruleset's required review; a new push
drops it as stale, and a later run that does not fully pass withdraws
it. Untestable (CPU) and setup errors are never approved. All other
PRs still need /test and are never approved.
2026-11-10 16:32:40 +01:00
Rögl-Brunner Michel cc27caf470 pr-script-test: say why nothing was built
A /test on a PR that only changes vm/ (#18578, TrueNAS) found nothing
to build and stopped without a word. The gate now always answers:
"Nothing to build" with the reason for each file (vm/ not covered,
tools/ not built, install/ script without a ct/ script of the same
name, more than 10 scripts), and when some scripts are built the rest
are listed as "Not built" in the progress and the result comment.
File names from the PR are put in code spans with backticks and line
breaks removed.
2026-11-10 16:24:59 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] dc9d75a5ad Update CHANGELOG.md (#18597)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 15:22:34 +00:00
Michel Roegl-Brunner 79481f3a74 pr-script-test: pre-answer prompt variables built in a loop (#18596)
OpenCloud reads var_opencloud_${server}_fqdn for each server in
servers=("opencloud" "collabora" "wopi"), so the scan for literal
var_ names found nothing and the build stopped at the first prompt
(#18586). Templates of the form var_...${x}... are now expanded with
the words of `for x in ...`, or of the array that loop walks; nothing
is executed. Hostname-like answers are derived from the variable name
(ci-opencloud-collabora.example.test), so several cannot collide.
2026-11-10 16:22:06 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] bd7f6f60bd Update CHANGELOG.md (#18595)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 15:05:16 +00:00
Michel Roegl-Brunner db30bcd960 Build PR scripts on a Proxmox test host via /test (#18594)
A maintainer comments `/test` on a pull request and a self-hosted
runner on a disposable Proxmox VE host builds every ct/ script the PR
touches (and the ct/ entry point of every changed install/ script),
checks the result and reports back on the PR.

- Gate: only users with write access; builds the latest commit only if
  nothing was pushed to the fork after the comment, or a pinned
  `/test <full sha>`.
- Build: the PR tree at that commit is served from the test host with
  every raw.githubusercontent.com/community-scripts/ProxmoxVE/main URL
  rewritten to it, so engine changes in the PR are tested too.
  Unattended (mode=default); prompts declared the AGENTS.md way are
  pre-answered with CI values.
- Checks: build and install succeed, container running, no failed
  units, the URL the script prints answers 200. Screenshot of that URL.
- Report: check run, one comment (results, screenshot, install log,
  mentions of the PR author and whoever asked), changes requested on a
  real failure, dismissed again on a pass. CPU-feature failures (no
  AVX2 on the test host) are marked untestable, not failed.
- The test job has a read-only token and no secrets; its runner carries
  only the proxmox-test label. Container IDs 9050-9099.

Same file as in DevScripts; github.repository selects the URLs and the
container ID range.
2026-11-10 16:04:32 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] cba9a593cf Update CHANGELOG.md (#18591)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 09:40:40 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 9fa4751635 Update CHANGELOG.md (#18590)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 09:35:05 +00:00
Michel Roegl-Brunner aba63a4e3b Force symbolic link update for writefreely (#18588) 2026-11-10 10:34:34 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 7b985d5ed8 Update CHANGELOG.md (#18589)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 09:28:16 +00:00
CanbiZ (MickLesk) aa219cff0b fix(openproject): start memcached when IPv6 is disabled (#18584)
Debian 13's memcached also listens on ::1 and cannot start in a container with IPv6 disabled, so openproject configure failed (#18579). adventurelog had the same memcached silently down. Both drop the ::1 listener.
2026-11-10 10:27:48 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] d367da8fcb Update CHANGELOG.md (#18585)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 09:08:55 +00:00
Zajsoft 2880722c71 Update pip install command for runlike (#18583) 2026-11-10 10:08:29 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 641cc9ab1d Update CHANGELOG.md (#18582)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-10 08:08:26 +00:00
Christian BenincasaandClaude Opus 5.5 17cf76f6ee Tunarr: fix install and update for the new release layout and latest ErsatzTV-ffmpeg (#18577)
* Tunarr: drop binary rename for the new release folder layout

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tunarr: track the latest ErsatzTV-ffmpeg and link ffmpeg into /usr/bin

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 09:07:56 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] c120fb6f9f Update CHANGELOG.md (#18575)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-09
2026-11-09 16:27:30 +00:00
CanbiZ (MickLesk) bf3bd50926 security: remove hardcoded credentials in several scripts (#18572) 2026-11-09 17:27:03 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] cfeb555f8b Update CHANGELOG.md (#18571)
Create Changelog Pull Request / update-changelog-pull-request (push) Skipped
Sync ct/install to Incus / dispatch (push) Skipped
Set state to is_deleted in pocketbase / delete-pocketbase-entry (push) Canceled after 0s
Update script timestamp on .sh changes / update-script-timestamp (push) Canceled after 0s
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-09 13:41:43 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] af8f922610 Update CHANGELOG.md (#18570)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-09 13:19:39 +00:00
github-actions[bot] 08854f9b1b chore(ct): sync zipline defaults from PocketBase (#18569)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-09 14:19:13 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 293a0a85c1 Update CHANGELOG.md (#18567)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-09 12:27:09 +00:00