Compare commits

...

124 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
1cac2afc41 Update CHANGELOG.md (#4939)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-03 01:15:31 +01:00
community-scripts-pr-app[bot]
644a365c69 Update versions.json (#4938)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-03 02:14:48 +02:00
community-scripts-pr-app[bot]
9bd4f5bb1b Update CHANGELOG.md (#4935)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 20:01:56 +01:00
Dan Beghin
b2a80b6971 fix(wastebin): use tar asset (#4934)
* fix(wastebin): use tar asset

* and install script...

* testing

* Revert "testing"

This reverts commit 74d2fd163b.
2025-06-02 21:01:19 +02:00
CanbiZ
1e3d0e501b lowercase immich 2025-06-02 18:14:47 +02:00
community-scripts-pr-app[bot]
3aa1f05343 Update CHANGELOG.md (#4930)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 15:40:44 +01:00
CanbiZ
05c008241e add hw for immich, openwebui / remove scrypted (#4927) 2025-06-02 16:40:08 +02:00
community-scripts-pr-app[bot]
91d8efcde0 Update CHANGELOG.md (#4929)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 15:00:32 +01:00
community-scripts-pr-app[bot]
16ac1adf75 Update CHANGELOG.md (#4928)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 14:54:14 +01:00
community-scripts-pr-app[bot]
805bbc5ee3 Update CHANGELOG.md (#4925)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 13:16:50 +01:00
Michel Roegl-Brunner
43697716ae Various fixes (#4924) 2025-06-02 14:16:11 +02:00
community-scripts-pr-app[bot]
623c8d993d Update versions.json (#4923)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 14:07:38 +02:00
CanbiZ
bf2545ce40 Pulse: fix missing .env on service startup 2025-06-02 13:44:28 +02:00
CanbiZ
dd9e285962 Update kimai-install.sh 2025-06-02 13:23:18 +02:00
community-scripts-pr-app[bot]
7f513afcf2 Update .app files (#4921)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-02 13:19:49 +02:00
CanbiZ
912c92d6f3 update_install error for pulse 2025-06-02 13:17:20 +02:00
community-scripts-pr-app[bot]
a4904fdd7e Update CHANGELOG.md (#4919)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 12:12:21 +01:00
CanbiZ
b4a58b907f MySQL/MariaDB: fix create user with password (#4918)
* MySQL/MariaDB: Fix Authentification with password

* add apache guac

* harmonize $STD value
2025-06-02 13:11:41 +02:00
CanbiZ
824fd22aae fix mysql_version 2025-06-02 12:07:11 +02:00
community-scripts-pr-app[bot]
feacacc368 Update CHANGELOG.md (#4917)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 10:42:00 +01:00
CanbiZ
a307f9086b tools.func: Bugfix old gpg key for mysql & little improvements (#4916) 2025-06-02 11:41:25 +02:00
community-scripts-pr-app[bot]
d97ce713ac Update CHANGELOG.md (#4913)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 09:49:32 +01:00
community-scripts-pr-app[bot]
807870e739 Update CHANGELOG.md (#4911)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 09:47:23 +01:00
community-scripts-pr-app[bot]
53c40775ee Update date in json (#4912)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-02 09:47:02 +01:00
community-scripts-pr-app[bot]
bf9f5d62e2 Update CHANGELOG.md (#4910)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 09:46:10 +01:00
CanbiZ
6650e0bdd8 PVE-Privilege-Converter (#4906) 2025-06-02 10:46:00 +02:00
rcourtman
f2bf6c9a6f make Pulse installation non-interactive (#4848)
* fix: streamline Pulse installation for web-based configuration

- Remove all interactive prompts during installation
- Remove .env setup (handled by web UI)
- Remove configuration messages (handled by web UI)
- Change install directory from /opt/pulse-proxmox to /opt/pulse
- Update JSON note to reflect web-based setup wizard

Pulse now features a complete web-based configuration system with
automatic setup detection, making manual .env configuration obsolete.

The new workflow:
1. Script installs Pulse without any user interaction
2. Service starts automatically
3. User navigates to the provided URL
4. Pulse shows setup wizard for configuration
5. No SSH or manual file editing required

This provides the ideal community script experience - completely
hands-off installation with configuration through the web interface.

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* Update pulse.sh to align with non-interactive installation

- Change paths from /opt/pulse-proxmox to /opt/pulse
- Remove .env file backup/restore logic since Pulse now uses web-based configuration
- Simplify permissions setting to match new installation approach

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* little fixes

* Update pulse.sh

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-06-02 10:45:00 +02:00
community-scripts-pr-app[bot]
8d50a5d8a9 Update CHANGELOG.md (#4908)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 09:40:13 +01:00
CanbiZ
4e3286f11b Introducing core.func (#4907) 2025-06-02 10:39:46 +02:00
CanbiZ
e08a587439 kimai revert failed mariadb
quickfix due failed migration of mariadb for kimai #4880
2025-06-02 10:25:24 +02:00
community-scripts-pr-app[bot]
6ee8349d28 Update CHANGELOG.md (#4905)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 08:56:48 +01:00
risc
87f6c9ebde Display default password even if there isn't a default username (#4900)
This fixes the display of the Deluge script.
2025-06-02 09:56:23 +02:00
community-scripts-pr-app[bot]
6239075c2d Update CHANGELOG.md (#4904)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 07:25:36 +01:00
Bidyut Mukherjee
04ee11aab7 Fix tinyauth configuration parsing (#4901)
Co-authored-by: Bidyut Mukherjee <bidyut@bidyut-macbook-pro.lan>
2025-06-02 08:25:09 +02:00
community-scripts-pr-app[bot]
60ae9bba5d Update CHANGELOG.md (#4903)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 01:16:11 +01:00
community-scripts-pr-app[bot]
85dd171b48 Update versions.json (#4902)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 02:15:25 +02:00
community-scripts-pr-app[bot]
a174177357 Update versions.json (#4893)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 14:06:59 +02:00
community-scripts-pr-app[bot]
7afae35553 Update CHANGELOG.md (#4891)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 09:55:50 +01:00
Slaviša Arežina
1a49970ae2 Add note to json about credentials (#4887) 2025-06-01 10:52:56 +02:00
community-scripts-pr-app[bot]
a413750562 Update CHANGELOG.md (#4890)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 09:52:07 +01:00
community-scripts-pr-app[bot]
82707e1def Update CHANGELOG.md (#4889)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 09:50:50 +01:00
community-scripts-pr-app[bot]
ac3d8c6b54 Update date in json (#4888)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-01 09:50:30 +01:00
push-app-to-main[bot]
1fd24bd60d immich (#4886) 2025-06-01 10:50:08 +02:00
community-scripts-pr-app[bot]
fc780646d2 Update CHANGELOG.md (#4883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 01:18:20 +01:00
community-scripts-pr-app[bot]
5f175b4f7b Update versions.json (#4882)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-01 02:17:38 +02:00
community-scripts-pr-app[bot]
afaeadd77e Update CHANGELOG.md (#4878)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 21:19:32 +01:00
CanbiZ
72c7abeb69 Silverbullet: Fix Installation (wrong path) (#4873) 2025-05-31 22:19:08 +02:00
community-scripts-pr-app[bot]
12723c33d0 Update CHANGELOG.md (#4877)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 21:17:26 +01:00
CanbiZ
7af6bf3fe7 ActualBudget: fix update check (file instead of folder check) (#4874) 2025-05-31 22:16:52 +02:00
community-scripts-pr-app[bot]
e56436d3f2 Update CHANGELOG.md (#4875)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 20:48:33 +01:00
Slaviša Arežina
25de119cad Remove Authentik script (#4867) 2025-05-31 21:48:08 +02:00
community-scripts-pr-app[bot]
c8308da95e Update CHANGELOG.md (#4871)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 18:33:52 +01:00
community-scripts-pr-app[bot]
9923094a54 Update CHANGELOG.md (#4870)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 18:33:37 +01:00
Slaviša Arežina
463cc62443 Fix libssl url (#4868) 2025-05-31 19:33:19 +02:00
Bram Suurd
92227fb9bf Revert "Update package dependencies in package.json and package-lock.json (#4845)" (#4869)
This reverts commit 809bc6c302.
2025-05-31 19:33:01 +02:00
community-scripts-pr-app[bot]
18a9c524ae Update versions.json (#4865)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 14:07:11 +02:00
community-scripts-pr-app[bot]
d925ae0f04 Update CHANGELOG.md (#4860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 01:15:09 +01:00
community-scripts-pr-app[bot]
cb0d0bd83e Update versions.json (#4859)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-31 02:14:28 +02:00
community-scripts-pr-app[bot]
9fcfb2fe49 Update CHANGELOG.md (#4854)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 15:55:41 +01:00
Chris
d23aa3fda0 slskd: add space in sed command (#4853) 2025-05-30 16:55:05 +02:00
community-scripts-pr-app[bot]
131f83505c Update versions.json (#4850)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 14:07:17 +02:00
community-scripts-pr-app[bot]
5a95a745ff Update CHANGELOG.md (#4849)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 12:52:52 +01:00
Jainil Prajapati 🪐
809bc6c302 Update package dependencies in package.json and package-lock.json (#4845) 2025-05-30 13:52:16 +02:00
community-scripts-pr-app[bot]
4fba20d80b Update CHANGELOG.md (#4847)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 07:03:23 +01:00
Slaviša Arežina
42a7614d15 Fix working directory and plugins (#4838) 2025-05-30 08:02:57 +02:00
community-scripts-pr-app[bot]
2dd7ebda2c Update CHANGELOG.md (#4841)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 01:15:40 +01:00
community-scripts-pr-app[bot]
e388ce82a1 Update versions.json (#4840)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-30 02:14:58 +02:00
community-scripts-pr-app[bot]
ac902f2098 Update .app files (#4835)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-29 21:37:15 +02:00
community-scripts-pr-app[bot]
a23b83dfc5 Update CHANGELOG.md (#4836)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 20:36:28 +01:00
Tobias
85975fbe15 SearXNG fix limiter (#4834)
* fix limiter

* apply to existing lxc
2025-05-29 21:35:54 +02:00
community-scripts-pr-app[bot]
23e33c5cb6 Update CHANGELOG.md (#4833)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 20:02:53 +01:00
CanbiZ
e39e5d5b7d Docmost: add jq before nodejs install (#4831)
special for docmost - because they used an fixed pnpm
2025-05-29 21:02:17 +02:00
community-scripts-pr-app[bot]
1619d6a093 Update CHANGELOG.md (#4832)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 19:33:03 +01:00
Slaviša Arežina
f23b688d55 Fix Dashboard not beign accessible (#4828) 2025-05-29 20:32:30 +02:00
community-scripts-pr-app[bot]
b6319b5dd3 Update CHANGELOG.md (#4830)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 18:26:14 +01:00
community-scripts-pr-app[bot]
030e6344d2 Update CHANGELOG.md (#4829)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 18:26:05 +01:00
CanbiZ
85837d8099 Update mysql-install.sh (#4820) 2025-05-29 19:25:36 +02:00
CanbiZ
5295ed8cf2 Docker-VM: set individual Hostname / Disk-Space formatting (#4821)
* Docker-VM: Refactor (Hostname / Disk-Space)

* Update docker-vm.json
2025-05-29 19:25:25 +02:00
CanbiZ
85ae0e2f74 change node Version 2025-05-29 17:53:00 +02:00
CanbiZ
b406921c1a fix pulse 2025-05-29 15:29:33 +02:00
community-scripts-pr-app[bot]
5a16b5995d Update versions.json (#4822)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 14:07:26 +02:00
community-scripts-pr-app[bot]
fd637c8819 Update CHANGELOG.md (#4819)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 07:44:17 +01:00
Götz Görisch
6d40ca9cd6 docs: fix casing of OpenWrt (#4805)
* reason: https://openwrt.org/trademark

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
2025-05-29 08:43:39 +02:00
community-scripts-pr-app[bot]
48979104d7 Update CHANGELOG.md (#4814)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 01:15:30 +01:00
community-scripts-pr-app[bot]
964950c82c Update versions.json (#4813)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-29 02:14:45 +02:00
community-scripts-pr-app[bot]
0677af31c4 Update CHANGELOG.md (#4811)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 20:41:17 +01:00
xb00tt
4495ffee6a Update pulse.json (#4809)
Proxmox-API-Token link had a rogue blank space after https://
2025-05-28 21:40:53 +02:00
CanbiZ
6745dad963 fix missing header after ved migration 2025-05-28 21:35:09 +02:00
CanbiZ
e9470ab1af remove old ved links in source 2025-05-28 21:32:23 +02:00
CanbiZ
5abcb47051 Umbrel: Fix MachineType (#4810)
* Umbrel: Fix MachineType

* Update umbrel-os-vm.sh

* Update umbrel-os-vm.sh
2025-05-28 21:23:30 +02:00
CanbiZ
709a899f8f fix Basename cleanup 2025-05-28 20:46:01 +02:00
community-scripts-pr-app[bot]
b9ff7513a4 Update CHANGELOG.md (#4806)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 19:04:27 +01:00
CanbiZ
7a963a76b7 fix wrong dev/null 2025-05-28 20:03:58 +02:00
community-scripts-pr-app[bot]
13506d92fb Update .app files (#4802)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-28 15:45:24 +02:00
community-scripts-pr-app[bot]
36f859c062 Update CHANGELOG.md (#4801)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 14:44:32 +01:00
CanbiZ
adc8225ed2 Umbrel-OS (#4788) 2025-05-28 15:44:05 +02:00
community-scripts-pr-app[bot]
640dca8d8b Update .app files (#4798)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-28 14:57:21 +02:00
community-scripts-pr-app[bot]
3b0713b812 Update CHANGELOG.md (#4800)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 13:56:27 +01:00
community-scripts-pr-app[bot]
d20165f25c Update CHANGELOG.md (#4799)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 13:55:58 +01:00
CanbiZ
c79d05ca5f Habitica: Use Node20 (#4796) 2025-05-28 14:55:35 +02:00
Stavros
f0dd1c264d refactor: use binary and randomize credentials in tinyauth (#4632) 2025-05-28 14:55:14 +02:00
community-scripts-pr-app[bot]
951782d8f2 Update CHANGELOG.md (#4797)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 13:46:29 +01:00
CanbiZ
5e8ee6baa8 MariaDB CLI Update, Go Install Helper & Minor Cleanup (#4793)
* .

* switch mysql to mariadb

* fix some basenames

* remove basename to correct filename

* merge firefly from main
2025-05-28 14:45:53 +02:00
community-scripts-pr-app[bot]
7bb9fb09ba Update versions.json (#4794)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 14:07:37 +02:00
community-scripts-pr-app[bot]
eb04327aa9 Update CHANGELOG.md (#4792)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 12:36:49 +01:00
community-scripts-pr-app[bot]
ce39e7c87e Update CHANGELOG.md (#4791)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 12:35:19 +01:00
community-scripts-pr-app[bot]
0e75a57582 Update date in json (#4790)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-28 12:35:06 +01:00
push-app-to-main[bot]
8765b7ac1d oauth2-proxy (#4784)
* 'Add new script'

* change cleaning

* change cleaning

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-05-28 13:34:38 +02:00
community-scripts-pr-app[bot]
56e316b849 Update CHANGELOG.md (#4789)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 12:32:56 +01:00
CanbiZ
79a5624905 Alpine-Node-RED: add service to rc (#4783) 2025-05-28 13:32:32 +02:00
CanbiZ
a4dee03140 optimize mariadb check 2025-05-28 13:25:03 +02:00
CanbiZ
8787ef57b5 Update tools.func 2025-05-28 13:17:28 +02:00
CanbiZ
86674ef376 quickfix: remove apple hints in tarball extraction 2025-05-28 12:00:59 +02:00
community-scripts-pr-app[bot]
1e195cac1e Update CHANGELOG.md (#4782)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 10:43:20 +01:00
CanbiZ
8e8e09668b Pulse: use prebuild tarball file / remove unneeded npm actions (#4776)
* Pulse: use new tarball file

* Update pulse.sh

* Update pulse-install.sh

* remove npm packages
2025-05-28 11:42:46 +02:00
CanbiZ
6ef1c99f65 quickfix: node-red 2025-05-28 11:35:19 +02:00
community-scripts-pr-app[bot]
e2a8b8b799 Update CHANGELOG.md (#4781)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 10:25:49 +01:00
CanbiZ
c356f77efe Refactor: Remove redundant dependencies & unify unzip usage (#4780)
* refactor unzip / remove dep

* remove deps from alpine packages

* remove gnupg

* remove gnupg
2025-05-28 11:25:13 +02:00
community-scripts-pr-app[bot]
dcfe80e069 Update CHANGELOG.md (#4779)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 09:54:27 +01:00
CanbiZ
010928fee2 Refactor: Remove gpg / gnupg from script base (#4775)
* Refactor: Remove gpg / gnupg from

* push more

* add more

* Update reactive-resume-install.sh

* Revert: add unzip

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-05-28 10:54:01 +02:00
CanbiZ
aed2c0e5bf Merge branch 'main' of https://github.com/community-scripts/ProxmoxVE 2025-05-28 10:46:55 +02:00
CanbiZ
9e2d66266a node-red (alpine): remove unneeded service file 2025-05-28 10:46:47 +02:00
community-scripts-pr-app[bot]
da406b5ce8 Update CHANGELOG.md (#4777)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 09:30:59 +01:00
CanbiZ
a7bf2679de Refactor: Linkwarden + OS Upgrade (#4756)
* Refactor: Linkwarden + OS Upgrade

* update fetch_and_deploy function

* Update linkwarden.sh
2025-05-28 10:30:33 +02:00
274 changed files with 3522 additions and 1741 deletions

View File

@@ -14,8 +14,138 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-06-03
## 2025-06-02
### 🆕 New Scripts
- PVE-Privilege-Converter [@MickLesk](https://github.com/MickLesk) ([#4906](https://github.com/community-scripts/ProxmoxVE/pull/4906))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(wastebin): use tar asset [@dbeg](https://github.com/dbeg) ([#4934](https://github.com/community-scripts/ProxmoxVE/pull/4934))
- MySQL/MariaDB: fix create user with password [@MickLesk](https://github.com/MickLesk) ([#4918](https://github.com/community-scripts/ProxmoxVE/pull/4918))
- Fix alpine-tinyauth env configuration parsing logic [@gokussjx](https://github.com/gokussjx) ([#4901](https://github.com/community-scripts/ProxmoxVE/pull/4901))
- #### 💥 Breaking Changes
- make Pulse installation non-interactive [@rcourtman](https://github.com/rcourtman) ([#4848](https://github.com/community-scripts/ProxmoxVE/pull/4848))
### 🧰 Maintenance
- #### 💾 Core
- [core] add hw-accelerated for immich, openwebui / remove scrypted [@MickLesk](https://github.com/MickLesk) ([#4927](https://github.com/community-scripts/ProxmoxVE/pull/4927))
- [core] tools.func: Bugfix old gpg key for mysql & little improvements [@MickLesk](https://github.com/MickLesk) ([#4916](https://github.com/community-scripts/ProxmoxVE/pull/4916))
- [core] Varius fixes to Config file feature [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4924](https://github.com/community-scripts/ProxmoxVE/pull/4924))
### 🌐 Website
- #### 🐞 Bug Fixes
- Display default password even if there isn't a default username [@0risc](https://github.com/0risc) ([#4900](https://github.com/community-scripts/ProxmoxVE/pull/4900))
## 2025-06-01
### 🆕 New Scripts
- immich ([#4886](https://github.com/community-scripts/ProxmoxVE/pull/4886))
### 🌐 Website
- #### 📝 Script Information
- AdventureLog: add login credentials info [@tremor021](https://github.com/tremor021) ([#4887](https://github.com/community-scripts/ProxmoxVE/pull/4887))
## 2025-05-31
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Silverbullet: Fix Installation (wrong path) [@MickLesk](https://github.com/MickLesk) ([#4873](https://github.com/community-scripts/ProxmoxVE/pull/4873))
- ActualBudget: fix update check (file instead of folder check) [@MickLesk](https://github.com/MickLesk) ([#4874](https://github.com/community-scripts/ProxmoxVE/pull/4874))
- Omada Controller: Fix libssl url [@tremor021](https://github.com/tremor021) ([#4868](https://github.com/community-scripts/ProxmoxVE/pull/4868))
### 🌐 Website
- #### 🐞 Bug Fixes
- Revert "Update package dependencies in package.json and package-lock.json (#4845) [@BramSuurdje](https://github.com/BramSuurdje) ([#4869](https://github.com/community-scripts/ProxmoxVE/pull/4869))
### 💥 Breaking Changes
- Remove Authentik script [@tremor021](https://github.com/tremor021) ([#4867](https://github.com/community-scripts/ProxmoxVE/pull/4867))
## 2025-05-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- slskd: add space in sed command [@vhsdream](https://github.com/vhsdream) ([#4853](https://github.com/community-scripts/ProxmoxVE/pull/4853))
- Alpine Traefik: Fix working directory and plugins [@tremor021](https://github.com/tremor021) ([#4838](https://github.com/community-scripts/ProxmoxVE/pull/4838))
### 🌐 Website
- #### 🐞 Bug Fixes
- Update package dependencies in package.json and package-lock.json [@enough-jainil](https://github.com/enough-jainil) ([#4845](https://github.com/community-scripts/ProxmoxVE/pull/4845))
## 2025-05-29
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- SearXNG fix limiter [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4834](https://github.com/community-scripts/ProxmoxVE/pull/4834))
- Docmost: add jq before nodejs install [@MickLesk](https://github.com/MickLesk) ([#4831](https://github.com/community-scripts/ProxmoxVE/pull/4831))
- Alpine Traefik: Fix Dashboard not beign accessible [@tremor021](https://github.com/tremor021) ([#4828](https://github.com/community-scripts/ProxmoxVE/pull/4828))
- MySQL: Fix Wrong Command [@MickLesk](https://github.com/MickLesk) ([#4820](https://github.com/community-scripts/ProxmoxVE/pull/4820))
- docs: fix casing of OpenWrt [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#4805](https://github.com/community-scripts/ProxmoxVE/pull/4805))
- #### ✨ New Features
- Docker-VM: set individual Hostname / Disk-Space formatting [@MickLesk](https://github.com/MickLesk) ([#4821](https://github.com/community-scripts/ProxmoxVE/pull/4821))
## 2025-05-28
### 🆕 New Scripts
- Umbrel-OS [@MickLesk](https://github.com/MickLesk) ([#4788](https://github.com/community-scripts/ProxmoxVE/pull/4788))
- oauth2-proxy ([#4784](https://github.com/community-scripts/ProxmoxVE/pull/4784))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Habitica: Use Node20 [@MickLesk](https://github.com/MickLesk) ([#4796](https://github.com/community-scripts/ProxmoxVE/pull/4796))
- Alpine-Node-RED: add service to rc [@MickLesk](https://github.com/MickLesk) ([#4783](https://github.com/community-scripts/ProxmoxVE/pull/4783))
- #### ✨ New Features
- Pulse: use prebuild tarball file / remove unneeded npm actions [@MickLesk](https://github.com/MickLesk) ([#4776](https://github.com/community-scripts/ProxmoxVE/pull/4776))
- #### 💥 Breaking Changes
- Refactor: Linkwarden + OS Upgrade [@MickLesk](https://github.com/MickLesk) ([#4756](https://github.com/community-scripts/ProxmoxVE/pull/4756))
- #### 🔧 Refactor
- refactor: use binary and randomize credentials in tinyauth [@steveiliop56](https://github.com/steveiliop56) ([#4632](https://github.com/community-scripts/ProxmoxVE/pull/4632))
- MariaDB CLI Update, Go Install Helper & Minor Cleanup [@MickLesk](https://github.com/MickLesk) ([#4793](https://github.com/community-scripts/ProxmoxVE/pull/4793))
- Refactor: Remove redundant dependencies & unify unzip usage [@MickLesk](https://github.com/MickLesk) ([#4780](https://github.com/community-scripts/ProxmoxVE/pull/4780))
- Refactor: Remove gpg / gnupg from script base [@MickLesk](https://github.com/MickLesk) ([#4775](https://github.com/community-scripts/ProxmoxVE/pull/4775))
### 🌐 Website
- #### 📝 Script Information
- pulse: correct url in note [@xb00tt](https://github.com/xb00tt) ([#4809](https://github.com/community-scripts/ProxmoxVE/pull/4809))
## 2025-05-27
### 🆕 New Scripts

View File

@@ -20,79 +20,79 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -d "/opt/2fauth" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
# Crawling the new version and checking whether an update is required
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
msg_info "Updating $APP to ${RELEASE}"
$STD apt-get update
$STD apt-get -y upgrade
# Creating Backup
msg_info "Creating Backup"
mv "/opt/2fauth" "/opt/2fauth-backup"
if ! dpkg -l | grep -q 'php8.3'; then
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
fi
msg_ok "Backup Created"
# Upgrade PHP
if ! dpkg -l | grep -q 'php8.3'; then
$STD apt-get install -y \
lsb-release \
gpg
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
$STD apt-get update
$STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
fi
# Execute Update
curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "2FAuth-${RELEASE//v/}/" "/opt/2fauth"
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
cd "/opt/2fauth" || return
chown -R www-data: "/opt/2fauth"
chmod -R 755 "/opt/2fauth"
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-dev --prefer-source
php artisan 2fauth:install
$STD systemctl restart nginx
# Cleaning up
msg_info "Cleaning Up"
rm -rf "v${RELEASE}.zip"
if dpkg -l | grep -q 'php8.2'; then
$STD apt-get remove --purge -y php8.2*
fi
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
# Last Action
echo "${RELEASE}" >/opt/2fauth_version.txt
msg_ok "Updated $APP to ${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
# Check if installation is present | -f for file, -d for folder
if [[ ! -d "/opt/2fauth" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
# Crawling the new version and checking whether an update is required
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
msg_info "Updating $APP to ${RELEASE}"
$STD apt-get update
$STD apt-get -y upgrade
# Creating Backup
msg_info "Creating Backup"
mv "/opt/2fauth" "/opt/2fauth-backup"
if ! dpkg -l | grep -q 'php8.3'; then
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
fi
msg_ok "Backup Created"
# Upgrade PHP
if ! dpkg -l | grep -q 'php8.3'; then
$STD apt-get install -y \
lsb-release \
gpg
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
$STD apt-get update
$STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
fi
# Execute Update
curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "2FAuth-${RELEASE//v/}/" "/opt/2fauth"
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
cd "/opt/2fauth" || return
chown -R www-data: "/opt/2fauth"
chmod -R 755 "/opt/2fauth"
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-dev --prefer-source
php artisan 2fauth:install
$STD systemctl restart nginx
# Cleaning up
msg_info "Cleaning Up"
rm -rf "v${RELEASE}.zip"
if dpkg -l | grep -q 'php8.2'; then
$STD apt-get remove --purge -y php8.2*
fi
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
# Last Action
echo "${RELEASE}" >/opt/2fauth_version.txt
msg_ok "Updated $APP to ${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
@@ -102,4 +102,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"

View File

@@ -24,7 +24,7 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -d /opt/actualbudget ]]; then
if [[ ! -f /opt/actualbudget_version.txt ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi

View File

@@ -37,7 +37,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
mv /opt/adventurelog/ /opt/adventurelog-backup/
curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q /opt/v${RELEASE}.zip -d /opt/
$STD unzip /opt/v${RELEASE}.zip -d /opt/
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
@@ -78,4 +78,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -36,7 +36,7 @@ function update_script() {
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
mkdir -p /usr/share/nginx/html
rm -rf /usr/share/nginx/html/*
unzip -q it-tools.zip -d /tmp/it-tools
$STD unzip it-tools.zip -d /tmp/it-tools
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
rm -rf /tmp/it-tools
rm -f it-tools.zip

View File

@@ -32,10 +32,6 @@ function update_script() {
$STD npm install -g --unsafe-perm node-red
msg_ok "Updated Node-RED"
msg_info "Restarting Node-RED"
$STD rc-service nodered restart
msg_ok "Restarted Node-RED"
exit 0
}

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# Author: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/steveiliop56/tinyauth
APP="Alpine-tinyauth"
APP="Alpine-Tinyauth"
var_tags="${var_tags:-alpine;auth}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
@@ -25,34 +25,23 @@ function update_script() {
exit 1
fi
msg_info "Updating Alpine Packages"
msg_info "Updating packages"
$STD apk -U upgrade
msg_ok "Updated Alpine Packages"
msg_ok "Updated packages"
msg_info "Updating tinyauth"
msg_info "Updating Tinyauth"
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
$STD service tinyauth stop
temp_file=$(mktemp)
cp /opt/tinyauth/.env /opt
rm -rf /opt/tinyauth
mkdir -p /opt/tinyauth
curl -fsSL "https://github.com/steveiliop56/tinyauth/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar -xzf "$temp_file" -C /opt/tinyauth --strip-components=1
cd /opt/tinyauth/frontend
$STD bun install
$STD bun run build
mv dist /opt/tinyauth/internal/assets/
cd /opt/tinyauth
$STD go mod download
CGO_ENABLED=0 go build -ldflags "-s -w"
cp /opt/.env /opt/tinyauth
echo "${RELEASE}" >/opt/tinyauth_version.txt
rm -f "$temp_file"
msg_info "Restarting tinyauth"
rm -f /opt/tinyauth/tinyauth
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
chmod +x /opt/tinyauth/tinyauth
echo "${RELEASE}" > /opt/tinyauth_version.txt
msg_info "Restarting Tinyauth"
$STD service tinyauth start
msg_ok "Restarted tinyauth"
msg_ok "Updated tinyauth"
msg_ok "Restarted Tinyauth"
msg_ok "Updated Tinyauth"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

View File

@@ -1,91 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://goauthentik.io/
APP="Authentik"
var_tags="${var_tags:-identity-provider}"
var_disk="${var_disk:-12}"
var_cpu="${var_cpu:-6}"
var_ram="${var_ram:-10240}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/authentik-server.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
NODE_VERSION="22"
PG_VERSION="16"
setup_uv
install_postgresql
install_node_and_modules
install_go
msg_info "Stopping ${APP}"
systemctl stop authentik-server
systemctl stop authentik-worker
msg_ok "Stopped ${APP}"
msg_info "Building ${APP} website"
mkdir -p /opt/authentik
curl -fsSL "${RELEASE}" -o "authentik.tar.gz"
tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
rm -rf authentik.tar.gz
cd /opt/authentik/website
$STD npm install
$STD npm run build-bundled
cd /opt/authentik/web
$STD npm install
$STD npm run build
msg_ok "Built ${APP} website"
msg_info "Building ${APP} server"
cd /opt/authentik
go mod download
go build -o /go/authentik ./cmd/server
go build -o /opt/authentik/authentik-server /opt/authentik/cmd/server/
msg_ok "Built ${APP} server"
msg_info "Building Authentik"
cd /opt/authentik
$STD uv sync --frozen --no-install-project --no-dev
uv run python -m lifecycle.migrate
ln -s /opt/authentik/.venv/bin/gunicorn /usr/local/bin/gunicorn
ln -s /opt/authentik/.venv/bin/celery /usr/local/bin/celery
msg_ok "Authentik built"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting ${APP}"
systemctl start authentik-server
systemctl start authentik-worker
msg_ok "Started ${APP}"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000/if/flow/initial-setup/${CL}"

View File

@@ -37,7 +37,7 @@ function update_script() {
cd /opt
curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o $(basename "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip")
mv /opt/baikal /opt/baikal-backup
unzip -o -q "baikal-${RELEASE}.zip"
$STD unzip -o "baikal-${RELEASE}.zip"
cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
cp -r /opt/baikal-backup/Specific/ /opt/baikal/
chown -R www-data:www-data /opt/baikal/

View File

@@ -38,7 +38,7 @@ function update_script() {
cd /opt
mv /opt/barcodebuddy/ /opt/barcodebuddy-backup
curl -fsSL "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip")
unzip -q "v${RELEASE}.zip"
$STD unzip "v${RELEASE}.zip"
mv "/opt/barcodebuddy-${RELEASE}" /opt/barcodebuddy
cp -r /opt/barcodebuddy-backup/data/. /opt/barcodebuddy/data
chown -R www-data:www-data /opt/barcodebuddy/data

View File

@@ -36,7 +36,7 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}"
mv /opt/bookstack /opt/bookstack-backup
curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
unzip -q "/opt/BookStack-${RELEASE}.zip" -d /opt
$STD unzip "/opt/BookStack-${RELEASE}.zip" -d /opt
mv "/opt/BookStack-${RELEASE}" /opt/bookstack
cp /opt/bookstack-backup/.env /opt/bookstack/.env
[[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/

View File

@@ -42,7 +42,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
unzip -q commafeed-"${RELEASE}"-h2-jvm.zip
$STD unzip commafeed-"${RELEASE}"-h2-jvm.zip
rsync -a --exclude 'data/' commafeed-"${RELEASE}"-h2/ /opt/commafeed/
rm -rf commafeed-"${RELEASE}"-h2 commafeed-"${RELEASE}"-h2-jvm.zip
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -46,7 +46,7 @@ function update_script() {
msg_info "Updating Crafty-Controller to v${RELEASE}"
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
unzip -q crafty-4-v${RELEASE}.zip
$STD unzip crafty-4-v${RELEASE}.zip
cp -a crafty-4-v${RELEASE}/. /opt/crafty-controller/crafty/crafty-4/
rm -rf crafty-4-v${RELEASE}
cd /opt/crafty-controller/crafty/crafty-4

View File

@@ -38,7 +38,7 @@ function update_script() {
rm -rf /opt/documenso
cd /opt
curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip
unzip -q v${RELEASE}.zip
$STD unzip v${RELEASE}.zip
mv documenso-${RELEASE} /opt/documenso
cd /opt/documenso
mv /opt/.env /opt/documenso/.env

View File

@@ -47,7 +47,7 @@ function update_script() {
msg_info "Updating $APP to latest version"
temp_file=$(mktemp)
curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
unzip -oq -d /opt/fileflows "$temp_file"
$STD unzip -o -d /opt/fileflows "$temp_file"
msg_ok "Updated $APP to latest version"
msg_info "Starting $APP"

View File

@@ -39,8 +39,8 @@ function update_script() {
cp /opt/fluid-calendar/.env /opt/fluid.env
rm -rf /opt/fluid-calendar
tmp_file=$(mktemp)
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
unzip -q $tmp_file
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
$STD unzip $tmp_file
mv ${APP}-${RELEASE}/ /opt/fluid-calendar
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar
@@ -74,4 +74,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -37,7 +37,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/gotify
curl -fsSL "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip" -o $(basename "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip")
unzip -oq gotify-linux-amd64.zip
$STD unzip -o gotify-linux-amd64.zip
rm -rf gotify-linux-amd64.zip
chmod +x gotify-linux-amd64
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -39,7 +39,7 @@ function update_script() {
rm -rf grist_bak
mv grist grist_bak
curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip")
unzip -q v$RELEASE.zip
$STD unzip v$RELEASE.zip
mv grist-core-${RELEASE} grist
mkdir -p grist/docs

View File

@@ -1,6 +1,6 @@
___ __ _ __ _ __ __
/ | / /___ (_)___ ___ / /_(_)___ __ ______ ___ __/ /_/ /_
/ /| | / / __ \/ / __ \/ _ \______/ __/ / __ \/ / / / __ `/ / / / __/ __ \
/ ___ |/ / /_/ / / / / / __/_____/ /_/ / / / / /_/ / /_/ / /_/ / /_/ / / /
/_/ |_/_/ .___/_/_/ /_/\___/ \__/_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/
___ __ _ _______ __ __
/ | / /___ (_)___ ___ /_ __(_)___ __ ______ ___ __/ /_/ /_
/ /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ / / / __ `/ / / / __/ __ \
/ ___ |/ / /_/ / / / / / __/_____/ / / / / / / /_/ / /_/ / /_/ / /_/ / / /
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ /_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/
/_/ /____/

View File

@@ -1,6 +0,0 @@
___ __ __ __ _ __
/ | __ __/ /_/ /_ ___ ____ / /_(_) /__
/ /| |/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/
/ ___ / /_/ / /_/ / / / __/ / / / /_/ / ,<
/_/ |_\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_|

6
ct/headers/immich Normal file
View File

@@ -0,0 +1,6 @@
_ _ __
(_)___ ___ ____ ___ (_)____/ /_
/ / __ `__ \/ __ `__ \/ / ___/ __ \
/ / / / / / / / / / / / / /__/ / / /
/_/_/ /_/ /_/_/ /_/ /_/_/\___/_/ /_/

6
ct/headers/oauth2-proxy Normal file
View File

@@ -0,0 +1,6 @@
__ __ ___
____ ____ ___ __/ /_/ /_ |__ \ ____ _________ _ ____ __
/ __ \/ __ `/ / / / __/ __ \__/ /_____/ __ \/ ___/ __ \| |/_/ / / /
/ /_/ / /_/ / /_/ / /_/ / / / __/_____/ /_/ / / / /_/ /> </ /_/ /
\____/\__,_/\__,_/\__/_/ /_/____/ / .___/_/ \____/_/|_|\__, /
/_/ /____/

View File

@@ -1,6 +0,0 @@
__ __ __ __
/ / / /___ ___ / /_ ________ / /
/ / / / __ `__ \/ __ \/ ___/ _ \/ /
/ /_/ / / / / / / /_/ / / / __/ /
\____/_/ /_/ /_/_.___/_/ \___/_/

View File

@@ -47,7 +47,7 @@ function update_script() {
fi
rm -rf /opt/hoarder
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
unzip -q v"${RELEASE}".zip
$STD unzip v"${RELEASE}".zip
mv karakeep-"${RELEASE}" /opt/hoarder
cd /opt/hoarder/apps/web
$STD pnpm install --frozen-lockfile

View File

@@ -104,7 +104,6 @@ function update_script() {
if [ "$UPD" == "2" ]; then
msg_info "Installing Home Assistant Community Store (HACS)"
$STD apt update
$STD apt install -y unzip
cd /root/.homeassistant
$STD bash <(curl -fsSL https://get.hacs.xyz)
msg_ok "Installed Home Assistant Community Store (HACS)"

View File

@@ -62,7 +62,6 @@ function update_script() {
if [ "$UPD" == "3" ]; then
msg_info "Installing Home Assistant Community Store (HACS)"
$STD apt update
$STD apt install unzip
cd /var/lib/docker/volumes/hass_config/_data
$STD bash <(curl -fsSL https://get.hacs.xyz)
msg_ok "Installed Home Assistant Community Store (HACS)"

319
ct/immich.sh Normal file
View File

@@ -0,0 +1,319 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://immich.app
APP="immich"
var_tags="${var_tags:-photos}"
var_disk="${var_disk:-20}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/immich ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
STAGING_DIR=/opt/staging
BASE_DIR=${STAGING_DIR}/base-images
SOURCE_DIR=${STAGING_DIR}/image-source
if [[ -f ~/.intel_version ]]; then
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
readarray -t INTEL_URLS < <(sed -n "/intel/p" ./Dockerfile | awk '{print $3}')
INTEL_RELEASE="$(grep "intel-opencl-icd" ./Dockerfile | awk -F '_' '{print $2}')"
if [[ "$INTEL_RELEASE" != "$(cat ~/.intel_version)" ]]; then
msg_info "Updating Intel iGPU dependencies"
for url in "${INTEL_URLS[@]}"; do
curl -fsSLO "$url"
done
$STD dpkg -i ./*.deb
rm ./*.deb
msg_ok "Intel iGPU dependencies updated"
fi
rm ~/Dockerfile
fi
if [[ -f ~/.immich_library_revisions ]]; then
libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
readarray -d '' NEW_REVISIONS < <(for library in "${libraries[@]}"; do
echo "$library: $(curl -fsSL https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/sources/"$library".json | jq -cr '.revision' -)"
done)
UPDATED_REVISIONS="$(comm -13 <(sort ~/.immich_library_revisions) <(echo -n "${NEW_REVISIONS[@]}" | sort))"
if [[ "$UPDATED_REVISIONS" ]]; then
readarray -t NAMES < <(echo "$UPDATED_REVISIONS" | awk -F ':' '{print $1}')
rm -rf "$SOURCE_DIR"
mkdir -p "$SOURCE_DIR"
cd "$BASE_DIR"
$STD git pull
cd "$STAGING_DIR"
for name in "${NAMES[@]}"; do
if [[ "$name" == "libjxl" ]]; then
msg_info "Recompiling libjxl"
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
$STD git submodule update --init --recursive --depth 1 --recommend-shallow
$STD git apply "$BASE_DIR"/server/sources/libjxl-patches/jpegli-empty-dht-marker.patch
$STD git apply "$BASE_DIR"/server/sources/libjxl-patches/jpegli-icc-warning.patch
mkdir build
cd build
$STD cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
-DJPEGXL_ENABLE_DOXYGEN=OFF \
-DJPEGXL_ENABLE_MANPAGES=OFF \
-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF \
-DJPEGXL_ENABLE_BENCHMARK=OFF \
-DJPEGXL_ENABLE_EXAMPLES=OFF \
-DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
-DJPEGXL_FORCE_SYSTEM_HWY=ON \
-DJPEGXL_ENABLE_JPEGLI=ON \
-DJPEGXL_ENABLE_JPEGLI_LIBJPEG=ON \
-DJPEGXL_INSTALL_JPEGLI_LIBJPEG=ON \
-DJPEGXL_ENABLE_PLUGINS=ON \
-DJPEGLI_LIBJPEG_LIBRARY_SOVERSION="$JPEGLI_LIBJPEG_LIBRARY_SOVERSION" \
-DJPEGLI_LIBJPEG_LIBRARY_VERSION="$JPEGLI_LIBJPEG_LIBRARY_VERSION" \
-DLIBJPEG_TURBO_VERSION_NUMBER=2001005 \
..
$STD cmake --build . -- -j"$(nproc)"
$STD cmake --install .
ldconfig /usr/local/lib
$STD make clean
cd "$STAGING_DIR"
rm -rf "$SOURCE"/{build,third_party}
msg_ok "Recompiled libjxl"
fi
if [[ "$name" == "libheif" ]]; then
msg_info "Recompiling libheif"
SOURCE=${SOURCE_DIR}/libheif
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBHEIF_REVISION"
mkdir build
cd build
$STD cmake --preset=release-noplugins \
-DWITH_DAV1D=ON \
-DENABLE_PARALLEL_TILE_DECODING=ON \
-DWITH_LIBSHARPYUV=ON \
-DWITH_LIBDE265=ON \
-DWITH_AOM_DECODER=OFF \
-DWITH_AOM_ENCODER=OFF \
-DWITH_X265=OFF \
-DWITH_EXAMPLES=OFF \
..
$STD make install -j "$(nproc)"
ldconfig /usr/local/lib
$STD make clean
cd "$STAGING_DIR"
rm -rf "$SOURCE"/build
msg_ok "Recompiled libheif"
fi
if [[ "$name" == "libraw" ]]; then
msg_info "Recompiling libraw"
SOURCE=${SOURCE_DIR}/libraw
: "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBRAW_REVISION"
$STD autoreconf --install
$STD ./configure
$STD make -j"$(nproc)"
$STD make install
ldconfig /usr/local/lib
$STD make clean
cd "$STAGING_DIR"
msg_ok "Recompiled libraw"
fi
if [[ "$name" == "imagemagick" ]]; then
msg_info "Recompiling ImageMagick"
SOURCE=$SOURCE_DIR/imagemagick
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION"
$STD ./configure --with-modules
$STD make -j"$(nproc)"
$STD make install
ldconfig /usr/local/lib
$STD make clean
cd "$STAGING_DIR"
msg_ok "Recompiled ImageMagick"
fi
if [[ "$name" == "libvips" ]]; then
msg_info "Recompiling libvips"
SOURCE=$SOURCE_DIR/libvips
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBVIPS_REVISION"
$STD meson setup build --buildtype=release --libdir=lib -Dintrospection=disabled -Dtiff=disabled
cd build
$STD ninja install
ldconfig /usr/local/lib
cd "$STAGING_DIR"
rm -rf "$SOURCE"/build
msg_ok "Recompiled libvips"
fi
done
echo -n "${NEW_REVISIONS[@]}" >~/.immich_library_revisions
msg_ok "Image-processing libraries compiled"
fi
fi
RELEASE=$(curl -s https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP} services"
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
if [[ "$(cat /opt/${APP}_version.txt)" < "1.133.0" ]]; then
msg_info "Upgrading to the VectorChord PostgreSQL extension"
NUMBER="$(
sed -n '2p' <(
sudo -u postgres psql -A -d immich <<EOF
SELECT atttypmod as dimsize
FROM pg_attribute f
JOIN pg_class c ON c.oid = f.attrelid
WHERE c.relkind = 'r'::char
AND f.attnum > 0
AND c.relname = 'smart_search'::text
AND f.attname = 'embedding'::text;
EOF
)
)"
$STD sudo -u postgres psql -d immich <<EOF
DROP INDEX IF EXISTS clip_index;
DROP INDEX IF EXISTS face_index;
ALTER TABLE smart_search ALTER COLUMN embedding SET DATA TYPE real[];
ALTER TABLE face_search ALTER COLUMN embedding SET DATA TYPE real[];
EOF
$STD apt-get update
$STD apt-get install postgresql-16-pgvector -y
curl -fsSL https://github.com/tensorchord/VectorChord/releases/download/0.3.0/postgresql-16-vchord_0.3.0-1_amd64.deb -o vchord.deb
$STD dpkg -i vchord.deb
rm vchord.deb
sed -i "s|vectors.so|vchord.so|" /etc/postgresql/16/main/postgresql.conf
systemctl restart postgresql.service
$STD sudo -u postgres psql -d immich <<EOF
CREATE EXTENSION IF NOT EXISTS vchord CASCADE;
ALTER TABLE smart_search ALTER COLUMN embedding SET DATA TYPE vector($NUMBER);
ALTER TABLE face_search ALTER COLUMN embedding SET DATA TYPE vector(512);
EOF
$STD apt purge vectors-pg16 -y
msg_ok "Database upgrade complete"
fi
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
rm -rf "${APP_DIR:?}"/*
rm -rf "$SRC_DIR"
immich_zip=$(mktemp)
curl -fsSL "https://github.com/immich-app/immich/archive/refs/tags/v${RELEASE}.zip" -o "$immich_zip"
msg_info "Updating ${APP} web and microservices"
unzip -q "$immich_zip"
mv "$APP-$RELEASE"/ "$SRC_DIR"
mkdir -p "$ML_DIR"
cd "$SRC_DIR"/server
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
$STD npm run build
$STD npm prune --omit=dev --omit=optional
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR"
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
$STD python3 -m venv "$ML_DIR"/ml-venv
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install -U uv
uv -q sync --extra openvino --no-cache --active
)
patchelf --clear-execstack "$ML_DIR"/ml-venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install -U uv
uv -q sync --extra cpu --no-cache --active
)
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
cp "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
if [[ -f ~/.openvino ]]; then
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
fi
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
cd "$APP_DIR"
grep -Rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
grep -RlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR"
msg_info "Updating Immich CLI"
$STD npm install --build-from-source sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
sed -i "s|pgvecto.rs|vectorchord|" /opt/"${APP}"/.env
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
rm -f "$immich_zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "${APP} is already at v${RELEASE}"
fi
systemctl restart immich-ml immich-web
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2283${CL}"

View File

@@ -50,7 +50,7 @@ function update_script() {
fi
rm -rf /opt/karakeep
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
unzip -q "v${RELEASE}.zip"
$STD unzip "v${RELEASE}.zip"
mv karakeep-"${RELEASE}" /opt/karakeep
cd /opt/karakeep/apps/web
$STD pnpm install --frozen-lockfile

View File

@@ -64,7 +64,7 @@ function update_script() {
trap "echo Unable to download release file for version ${RELEASE}; try again later" ERR
set -e
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
unzip -q "${RELEASE}".zip
$STD unzip "${RELEASE}".zip
set +e
trap - ERR
rm -rf /opt/kimai

View File

@@ -37,7 +37,7 @@ function update_script() {
cd /opt
mv /opt/koillection/ /opt/koillection-backup
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip")
unzip -q "${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "/opt/koillection-${RELEASE}" /opt/koillection
cd /opt/koillection
cp -r /opt/koillection-backup/.env.local /opt/koillection

View File

@@ -1,17 +1,17 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://linkwarden.app/
APP="Linkwarden"
var_tags="${var_tags:-bookmark}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-12}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}"
var_version="${var_version:-24.04}"
header_info "$APP"
variables
@@ -27,48 +27,36 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
NODE_VERSION="22"
NODE_MODULE="yarn@latest"
install_node_and_modules
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
msg_info "Stopping ${APP}"
systemctl stop linkwarden
msg_ok "Stopped ${APP}"
msg_info "Updating Rust"
$STD apt-get install -y build-essential
$STD curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
echo 'export PATH=/usr/local/cargo/bin:$PATH' >>/etc/profile
source /etc/profile
$STD cargo install monolith
msg_ok "Updated Rust"
RUST_CRATES="monolith" install_rust_and_crates
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
mv /opt/linkwarden/.env /opt/.env
rm -rf /opt/linkwarden
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip
unzip -q ${RELEASE}.zip
mv linkwarden-${RELEASE:1} /opt/linkwarden
fetch_and_deploy_gh_release "linkwarden/linkwarden"
cd /opt/linkwarden
$STD yarn
$STD npx playwright install-deps
$STD yarn playwright install
cp /opt/.env /opt/linkwarden/.env
mv /opt/.env /opt/linkwarden/.env
$STD yarn prisma:generate
$STD yarn web:build
$STD yarn prisma:deploy
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start linkwarden
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -rf /opt/${RELEASE}.zip
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
rm -rf /root/.cache/yarn
rm -rf /opt/linkwarden/.next/cache
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else

View File

@@ -50,7 +50,7 @@ function update_script() {
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
rm -rf /opt/lubelogger
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
$STD unzip LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
chmod 700 /opt/lubelogger/CarCareTracker
cp -rf /tmp/lubeloggerData/* /opt/lubelogger/
echo "${RELEASE}" >"/opt/${APP}_version.txt"

View File

@@ -69,7 +69,7 @@ function update_script() {
rm -rf /opt/meilisearch-ui
mkdir -p /opt/meilisearch-ui
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
unzip -q "$tmp_file" -d "$tmp_dir"
$STD unzip "$tmp_file" -d "$tmp_dir"
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
cd /opt/meilisearch-ui
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts

View File

@@ -39,7 +39,7 @@ function update_script() {
rm -rf myspeed_bak
mv myspeed myspeed_bak
curl -fsSL "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip" -o $(basename "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip")
unzip -q MySpeed-$RELEASE.zip -d myspeed
$STD unzip MySpeed-$RELEASE.zip -d myspeed
cd myspeed
$STD npm install
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -39,7 +39,7 @@ function update_script() {
mv /opt/netbox/ /opt/netbox-backup
cd /opt
curl -fsSL "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip")
unzip -q "v${RELEASE}.zip"
$STD unzip "v${RELEASE}.zip"
mv /opt/netbox-${RELEASE}/ /opt/netbox/
cp -r /opt/netbox-backup/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/

64
ct/oauth2-proxy.sh Normal file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/oauth2-proxy/oauth2-proxy/
APP="oauth2-proxy"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/oauth2-proxy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/oauth2-proxy/oauth2-proxy/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP} services"
systemctl stop oauth2-proxy
msg_ok "Stopped ${APP}"
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/oauth2-proxy/oauth2-proxy
curl -fsSL "https://github.com/oauth2-proxy/oauth2-proxy/releases/download/v${RELEASE}/oauth2-proxy-v${RELEASE}.linux-amd64.tar.gz" -o /opt/oauth2-proxy.tar.gz
tar -xzf /opt/oauth2-proxy.tar.gz
mv /opt/oauth2-proxy-v${RELEASE}.linux-amd64/oauth2-proxy /opt/oauth2-proxy
systemctl start oauth2-proxy
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Cleaning up"
rm -f "/opt/oauth2-proxy.tar.gz"
rm -rf "/opt/oauth2-proxy-v${RELEASE}.linux-amd64"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "${APP} is already up to date (${RELEASE})"
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Now you can modify /opt/oauth2-proxy/config.toml with your needed config.${CL}"

View File

@@ -40,7 +40,7 @@ function update_script() {
cd /opt
mv /opt/paperless-ai /opt/paperless-ai_bak
curl -fsSL "https://github.com/clusterzx/paperless-ai/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/clusterzx/paperless-ai/archive/refs/tags/v${RELEASE}.zip")
unzip -q v${RELEASE}.zip
$STD unzip v${RELEASE}.zip
mv paperless-ai-${RELEASE} /opt/paperless-ai
mkdir -p /opt/paperless-ai/data
cp -a /opt/paperless-ai_bak/data/. /opt/paperless-ai/data/

View File

@@ -37,7 +37,7 @@ function update_script() {
cd /opt
mv /opt/partdb/ /opt/partdb-backup
curl -fsSL "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip")
unzip -q "v${RELEASE}.zip"
$STD unzip "v${RELEASE}.zip"
mv /opt/Part-DB-server-${RELEASE}/ /opt/partdb
cd /opt/partdb/

View File

@@ -19,20 +19,20 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Petio ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP"
systemctl stop petio.service
curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
unzip petio-latest.zip -d /opt/Petio
systemctl start petio.service
msg_ok "Updated $APP"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Petio ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP"
systemctl stop petio.service
curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
$STD unzip petio-latest.zip -d /opt/Petio
systemctl start petio.service
msg_ok "Updated $APP"
exit
}
start

View File

@@ -39,7 +39,7 @@ function update_script() {
msg_info "Updating ${APP}"
cd /opt
curl -fsSL "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip
$STD unzip ${RELEASE}.zip
rm -rf "/opt/${APP}"
mv ${APP}-${RELEASE:1} /opt/${APP}
cd /opt/Pf2eTools

View File

@@ -37,7 +37,7 @@ function update_script() {
cd /opt
mv /opt/phpipam/ /opt/phpipam-backup
curl -fsSL "https://github.com/phpipam/phpipam/releases/download/v${RELEASE}/phpipam-v${RELEASE}.zip" -o $(basename "https://github.com/phpipam/phpipam/releases/download/v${RELEASE}/phpipam-v${RELEASE}.zip")
unzip -q "phpipam-v${RELEASE}.zip"
$STD unzip "phpipam-v${RELEASE}.zip"
cp /opt/phpipam-backup/config.php /opt/phpipam
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"

View File

@@ -38,7 +38,7 @@ function update_script() {
msg_info "Updating Pingvin Share to v${RELEASE}"
cd /opt
curl -fsSL "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip")
unzip -q v${RELEASE}.zip
$STD unzip v${RELEASE}.zip
cp -rf pingvin-share-${RELEASE}/* /opt/pingvin-share
cd /opt/pingvin-share
cd backend

View File

@@ -58,7 +58,6 @@ function update_script() {
if [ "$UPD" == "2" ]; then
msg_info "Installing Home Assistant Community Store (HACS)"
$STD apt update
$STD apt install unzip
cd /var/lib/containers/storage/volumes/hass_config/_data
$STD bash <(curl -fsSL https://get.hacs.xyz)
msg_ok "Installed Home Assistant Community Store (HACS)"
@@ -110,4 +109,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"

View File

@@ -33,7 +33,7 @@ function update_script() {
echo "${RELEASE}" >/opt/${APP}_version.txt
cp -f /opt/privatebin/cfg/conf.php /tmp/privatebin_conf.bak
curl -fsSL "https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip
$STD unzip ${RELEASE}.zip
rm -rf /opt/privatebin/*
mv PrivateBin-${RELEASE}/* /opt/privatebin/
mv /tmp/privatebin_conf.bak /opt/privatebin/cfg/conf.php

View File

@@ -36,7 +36,7 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
curl -fsSL "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" -o $(basename "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip")
unzip -o -q "projectsend-r${RELEASE}.zip" -d projectsend
$STD unzip -o "projectsend-r${RELEASE}.zip" -d projectsend
chown -R www-data:www-data /opt/projectsend
chmod -R 775 /opt/projectsend
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: rcourtman
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@@ -23,46 +23,37 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pulse-proxmox ]]; then
if [[ -d /opt/pulse-monitor ]]; then
msg_error "An old installation was detected. Please recreate the LXC from scratch (https://github.com/community-scripts/ProxmoxVE/pull/4848)"
exit 1
fi
if [[ ! -d /opt/pulse ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop pulse-monitor
systemctl stop pulse
msg_ok "Stopped ${APP}"
msg_info "Updating Pulse"
if [[ -f /opt/pulse-proxmox/.env ]]; then
cp /opt/pulse-proxmox/.env /tmp/.env.backup.pulse
fi
temp_file=$(mktemp)
mkdir -p /opt/pulse-proxmox
rm -rf /opt/pulse-proxmox/*
curl -fsSL "https://github.com/rcourtman/Pulse/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse-proxmox
if [[ -f /tmp/.env.backup.pulse ]]; then
mv /tmp/.env.backup.pulse /opt/pulse-proxmox/.env
fi
cd /opt/pulse-proxmox
$STD npm install --unsafe-perm
cd /opt/pulse-proxmox/server
$STD npm install --unsafe-perm
cd /opt/pulse-proxmox
$STD npm run build:css
mkdir -p /opt/pulse
rm -rf /opt/pulse/*
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Pulse to ${RELEASE}"
msg_info "Setting permissions for /opt/pulse-proxmox..."
chown -R pulse:pulse "/opt/pulse-proxmox"
find "/opt/pulse-proxmox" -type d -exec chmod 755 {} \;
find "/opt/pulse-proxmox" -type f -exec chmod 644 {} \;
chmod 600 /opt/pulse-proxmox/.env
msg_info "Setting permissions for /opt/pulse..."
chown -R pulse:pulse "/opt/pulse"
find "/opt/pulse" -type d -exec chmod 755 {} \;
find "/opt/pulse" -type f -exec chmod 644 {} \;
msg_ok "Set permissions."
msg_info "Starting ${APP}"
systemctl start pulse-monitor
systemctl start pulse
msg_ok "Started ${APP}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."

View File

@@ -20,38 +20,38 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/rdtc/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop rdtc
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
$STD apt-get remove --purge -y dotnet-sdk-8.0
$STD apt-get install -y dotnet-sdk-9.0
fi
mkdir -p rdtc-backup
cp -R /opt/rdtc/appsettings.json rdtc-backup/
curl -fsSL "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip" -o $(basename "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip")
unzip -oqq RealDebridClient.zip -d /opt/rdtc
cp -R rdtc-backup/appsettings.json /opt/rdtc/
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start rdtc
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf rdtc-backup RealDebridClient.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/rdtc/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop rdtc
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
$STD apt-get remove --purge -y dotnet-sdk-8.0
$STD apt-get install -y dotnet-sdk-9.0
fi
mkdir -p rdtc-backup
cp -R /opt/rdtc/appsettings.json rdtc-backup/
curl -fsSL "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip" -o $(basename "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip")
$STD unzip -o RealDebridClient.zip -d /opt/rdtc
cp -R rdtc-backup/appsettings.json /opt/rdtc/
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start rdtc
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf rdtc-backup RealDebridClient.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
exit
}
start

View File

@@ -39,7 +39,7 @@ function update_script() {
res_tmp=$(mktemp)
rm -rf /opt/${APP}
curl -fsSL "https://github.com/AmruthPillai/Reactive-Resume/archive/refs/tags/v${RELEASE}.zip" -O $res_tmp
unzip -q $res_tmp
$STD unzip $res_tmp
mv ${APP}-${RELEASE}/ /opt/${APP}
cd /opt/${APP}
export PUPPETEER_SKIP_DOWNLOAD="true"
@@ -66,7 +66,7 @@ function update_script() {
brwsr_tmp=$(mktemp)
TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL https://github.com/browserless/browserless/archive/refs/tags/v${TAG}.zip -O $brwsr_tmp
unzip -q $brwsr_tmp
$STD unzip $brwsr_tmp
mv browserless-${TAG}/ /opt/browserless
cd /opt/browserless
$STD npm install

View File

@@ -27,6 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
sed -i 's/^\([[:space:]]*limiter:\)[[:space:]]*true/\1 false/' /etc/searxng/settings.yml
if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
msg_ok "There is currently no update available."
fi
@@ -39,4 +40,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}"

View File

@@ -34,7 +34,7 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}"
curl -fsSL "https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip" -o $(basename "https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip")
unzip -q silverbullet-server-linux-x86_64.zip
$STD unzip silverbullet-server-linux-x86_64.zip
mv silverbullet /opt/silverbullet/bin/
chmod +x /opt/silverbullet/bin/silverbullet
echo "${RELEASE}" >/opt/silverbullet/${APP}_version.txt

View File

@@ -38,7 +38,7 @@ function update_script() {
msg_info "Updating $APP to v${RELEASE}"
tmp_file=$(mktemp)
curl -fsSL "https://github.com/slskd/slskd/releases/download/${RELEASE}/slskd-${RELEASE}-linux-x64.zip" -o $tmp_file
unzip -q -oj $tmp_file slskd -d /opt/${APP}
$STD unzip -oj $tmp_file slskd -d /opt/${APP}
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
@@ -55,7 +55,7 @@ function update_script() {
cd /tmp
rm -rf /opt/soularr
curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
unzip -q main.zip
$STD unzip main.zip
mv soularr-main /opt/soularr
cd /opt/soularr
$STD pip install -r requirements.txt

View File

@@ -39,7 +39,7 @@ function update_script() {
rm -rf spoolman_bak
mv spoolman spoolman_bak
curl -fsSL "https://github.com/Donkie/Spoolman/releases/download/${RELEASE}/spoolman.zip" -o $(basename "https://github.com/Donkie/Spoolman/releases/download/${RELEASE}/spoolman.zip")
unzip -q spoolman.zip -d spoolman
$STD unzip spoolman.zip -d spoolman
cd spoolman
$STD pip3 install -r requirements.txt
curl -fsSL "https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example" -o ".env"

View File

@@ -37,7 +37,7 @@ function update_script() {
cd /opt
mv /opt/teddycloud /opt/teddycloud_bak
curl -fsSL "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" -o $(basename "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip")
unzip -q -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
$STD unzip -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
cp -R /opt/teddycloud_bak/certs /opt/teddycloud_bak/config /opt/teddycloud_bak/data /opt/teddycloud
echo "${VERSION}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${VERSION}"

View File

@@ -50,7 +50,7 @@ function update_script() {
cp /opt/tianji/src/server/.env /opt/.env
mv /opt/tianji /opt/tianji_bak
curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip")
unzip -q v${RELEASE}.zip
$STD unzip v${RELEASE}.zip
mv tianji-${RELEASE} /opt/tianji
cd tianji
export NODE_OPTIONS="--max_old_space_size=4096"

View File

@@ -1,40 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://umbrel.com/
APP="Umbrel"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated ${APP} LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized! (manual reboot is required!)${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -35,7 +35,7 @@ function update_script() {
mkdir -p /opt/logos
mv /opt/wallos/db/wallos.db /opt/wallos.db
mv /opt/wallos/images/uploads/logos /opt/logos/
unzip -q v${RELEASE}.zip
$STD unzip v${RELEASE}.zip
rm -rf /opt/wallos
mv Wallos-${RELEASE} /opt/wallos
rm -rf /opt/wallos/db/wallos.empty.db

View File

@@ -20,28 +20,28 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/wastebin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
msg_info "Running Migration"
if [[ ! -f /opt/${APP}_version.txt ]]; then
echo "2.7.1" >/opt/${APP}_version.txt
mkdir -p /opt/wastebin-data
cat <<EOF >/opt/wastebin-data/.env
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/wastebin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
msg_info "Running Migration"
if [[ ! -f /opt/${APP}_version.txt ]]; then
echo "2.7.1" >/opt/${APP}_version.txt
mkdir -p /opt/wastebin-data
cat <<EOF >/opt/wastebin-data/.env
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
WASTEBIN_CACHE_SIZE=1024
WASTEBIN_HTTP_TIMEOUT=30
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
EOF
systemctl stop wastebin
cat <<EOF >/etc/systemd/system/wastebin.service
systemctl stop wastebin
cat <<EOF >/etc/systemd/system/wastebin.service
[Unit]
Description=Wastebin Service
After=network.target
@@ -54,35 +54,35 @@ EnvironmentFile=/opt/wastebin-data/.env
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
fi
msg_ok "Migration Done"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Wastebin"
systemctl stop wastebin
msg_ok "Wastebin Stopped"
systemctl daemon-reload
fi
msg_ok "Migration Done"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Wastebin"
systemctl stop wastebin
msg_ok "Wastebin Stopped"
msg_info "Updating Wastebin"
temp_file=$(mktemp)
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip" -o "$temp_file"
unzip -o -q $temp_file
cp -f wastebin /opt/wastebin/
chmod +x /opt/wastebin/wastebin
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Wastebin"
msg_info "Updating Wastebin"
temp_file=$(mktemp)
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst" -o "$temp_file"
tar -xf $temp_file
cp -f wastebin /opt/wastebin/
chmod +x /opt/wastebin/wastebin
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Wastebin"
msg_info "Starting Wastebin"
systemctl start wastebin
msg_ok "Started Wastebin"
msg_info "Starting Wastebin"
systemctl start wastebin
msg_ok "Started Wastebin"
msg_info "Cleaning Up"
rm -f $temp_file
msg_ok "Cleanup Completed"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
msg_info "Cleaning Up"
rm -f $temp_file
msg_ok "Cleanup Completed"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
@@ -92,4 +92,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8088${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8088${CL}"

View File

@@ -41,7 +41,7 @@ function update_script() {
cp /opt/wavelog/assets/js/sections/custom.js /opt/custom.js
fi
curl -fsSL "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip
$STD unzip ${RELEASE}.zip
rm -rf /opt/wavelog
mv wavelog-${RELEASE}/ /opt/wavelog
rm -rf /opt/wavelog/install

View File

@@ -47,7 +47,7 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
curl -fsSL "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip
$STD unzip ${RELEASE}.zip
rm -rf /opt/zigbee2mqtt
mv zigbee2mqtt-${RELEASE} /opt/zigbee2mqtt
rm -rf /opt/zigbee2mqtt/data

View File

@@ -43,7 +43,7 @@ function update_script() {
mkdir -p /opt/zipline-upload
cp -R /opt/zipline/upload/* /opt/zipline-upload/
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip")
unzip -q v"${RELEASE}".zip
$STD unzip v"${RELEASE}".zip
rm -R /opt/zipline
mv zipline-"${RELEASE}" /opt/zipline
cd /opt/zipline

View File

@@ -37,7 +37,7 @@ function update_script() {
rm -rf /opt/zwave-js-ui/*
cd /opt/zwave-js-ui
curl -fsSL "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip" -o $(basename "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip")
unzip -q zwave-js-ui-${RELEASE}-linux.zip
$STD unzip zwave-js-ui-${RELEASE}-linux.zip
msg_ok "Updated Z-Wave JS UI"
msg_info "Starting Service"

View File

@@ -35,6 +35,10 @@
{
"text": "AdventureLog uses an initial local IP, if you change your LXC-IP, you need to change the IP here: `/opt/adventurelog/backend/server/.env` and here: `/opt/adventurelog/frontend/.env`",
"type": "warning"
},
{
"text": "Use `cat ~/adventurelog.creds` to see login credentials.",
"type": "info"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Alpine-tinyauth",
"name": "Alpine-Tinyauth",
"slug": "alpine-tinyauth",
"categories": [
6
@@ -9,11 +9,11 @@
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://tinyauth.app/docs/getting-started.html",
"website": "https://tinyauth.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tinyauth.webp",
"documentation": "https://tinyauth.app",
"config_path": "/opt/tinyauth/.env",
"description": "Tinyauth is a simple authentication middleware that adds simple username/password login or OAuth with Google, Github and any generic provider to all of your docker apps. It is designed for traefik but it can be extended to work with all reverse proxies like caddy and nginx.",
"website": "https://tinyauth.app",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tinyauth.webp",
"description": "Tinyauth is a simple authentication middleware that adds simple username/password login or OAuth with Google, Github and any generic provider to all of your docker apps.",
"install_methods": [
{
"type": "default",
@@ -21,7 +21,7 @@
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"hdd": 2,
"os": "alpine",
"version": "3.21"
}
@@ -32,7 +32,7 @@
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"hdd": 2,
"os": "alpine",
"version": "3.21"
}
@@ -44,8 +44,8 @@
},
"notes": [
{
"type": "info",
"text": "`cat ~/tinyauth.creds` to view login credentials"
"text": "The default credentials are located in `/opt/tinyauth/credentials.txt`.",
"type": "info"
}
]
}

View File

@@ -1,44 +0,0 @@
{
"name": "authentik",
"slug": "authentik",
"categories": [
6
],
"date_created": "2024-12-27",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9000,
"documentation": "https://docs.goauthentik.io/docs/",
"website": "https://goauthentik.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/authentik.webp",
"config_path": "/etc/authentik/config.yml",
"description": "authentik is an IdP (Identity Provider) and SSO (single sign on) that is built with security at the forefront of every piece of code, every feature, with an emphasis on flexibility and versatility.",
"install_methods": [
{
"type": "default",
"script": "ct/authentik.sh",
"resources": {
"cpu": 6,
"ram": 10240,
"hdd": 12,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Authentik is very resource-heavy, it is recommended to use at least 10GB RAM anytime!",
"type": "warning"
},
{
"text": "Some updates don't work due to massive dependency errors, it's recommended to do a backup before updating or a pg_dump and a new LXC.",
"type": "warning"
}
]
}

View File

@@ -22,7 +22,7 @@
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 8,
"hdd": 10,
"os": "debian",
"version": "12"
}

View File

@@ -0,0 +1,48 @@
{
"name": "Immich",
"slug": "immich",
"categories": [
13
],
"date_created": "2025-06-01",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 2283,
"documentation": "https://immich.app/docs/overview/introduction",
"website": "https://immich.app",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/immich.webp",
"config_path": "/opt/immich/.env",
"description": "High performance self-hosted photo and video management solution.",
"install_methods": [
{
"type": "default",
"script": "ct/immich.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "During installation, HW-accelerated machine-learning (with OpenVINO) is an available option. This also allows for HW-accelerated transcoding, but it must be enabled in Video Transcoding Settings",
"type": "info"
},
{
"text": "If using OpenVINO HW machine-learning, increase RAM because OpenVINO is memory-intensive",
"type": "info"
},
{
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`",
"type": "info"
}
]
}

View File

@@ -23,7 +23,7 @@
"ram": 2048,
"hdd": 12,
"os": "ubuntu",
"version": "22.04"
"version": "24.04"
}
}
],

View File

@@ -0,0 +1,45 @@
{
"name": "OAuth2-Proxy",
"slug": "oauth2-proxy",
"categories": [
4,
6
],
"date_created": "2025-05-28",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": "https://oauth2-proxy.github.io/oauth2-proxy/configuration/overview",
"website": "https://oauth2-proxy.github.io/oauth2-proxy/",
"logo": "https://raw.githubusercontent.com/oauth2-proxy/oauth2-proxy/f82e90426a1881d36bf995f25de9b7b1db4c2564/docs/static/img/logos/OAuth2_Proxy_icon.svg",
"config_path": "/opt/oauth2-proxy/config.toml",
"description": "A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.",
"install_methods": [
{
"type": "default",
"script": "ct/oauth2-proxy.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 3,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "This application includes a blank configuration file by default due to the wide range of available configuration options. We recommend referring to the official documentation for guidance: `https://oauth2-proxy.github.io/oauth2-proxy/configuration/overview`. With this you can make your config.toml file accordingly to your needs.",
"type": "info"
},
{
"text": "After changing the config restart OAuth2-Proxy with: `systemctl restart oauth2-proxy`",
"type": "info"
}
]
}

View File

@@ -12,7 +12,7 @@
"documentation": null,
"website": "https://github.com/rcourtman/Pulse",
"logo": "https://raw.githubusercontent.com/rcourtman/Pulse/main/src/public/logos/pulse-logo-256x256.png",
"config_path": "/opt/pulse-proxmox/.env",
"config_path": "/opt/pulse/.env",
"description": "A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.",
"install_methods": [
{
@@ -33,7 +33,11 @@
},
"notes": [
{
"text": "Create Proxmox-API-Token first: `https: //github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
"text": "Create Proxmox-API-Token first: `https://github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
"type": "Info"
},
{
"text": "After installation, access the web interface to configure your Proxmox connection details through the built-in setup wizard",
"type": "Info"
}
]

View File

@@ -0,0 +1,48 @@
{
"name": "PVE Privilege Converter",
"slug": "pve-privilege-converter",
"categories": [
1
],
"date_created": "2025-06-02",
"type": "pve",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": "https://github.com/onethree7/proxmox-lxc-privilege-converter",
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "This script allows converting Proxmox LXC containers between privileged and unprivileged modes using vzdump backup and restore. It guides you through container selection, backup storage, ID assignment, and privilege flipping via automated restore. Useful for applying changes that require different LXC modes.",
"install_methods": [
{
"type": "default",
"script": "tools/pve/pve-privilege-converter.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute this script inside the Proxmox shell as root.",
"type": "info"
},
{
"text": "Ensure that the backup and target storage have enough space.",
"type": "warning"
},
{
"text": "The container will be recreated with a new ID and desired privilege setting.",
"type": "info"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"name": "Umbrel OS",
"slug": "umbrel-os-vm",
"categories": [
2
],
"date_created": "2025-05-28",
"type": "vm",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://community.umbrel.com/c/guides/",
"website": "https://umbrel.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/umbrelos.webp",
"config_path": "",
"description": "Take control of your digital life with Umbrel — a private, personal server that lets you self-host powerful open source apps with ease. Whether you want to run a Bitcoin or Lightning node, manage your files with Nextcloud, stream media, block ads across your network, or explore self-hosted AI tools, Umbrel gives you full ownership and privacy. All through a beautiful, user-friendly interface — no cloud, no tracking, just your data under your control.",
"install_methods": [
{
"type": "default",
"script": "vm/umbrel-os-vm.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "umbrel",
"password": "umbrel"
},
"notes": [
{
"text": "This VM use as base a Debian 12 OS with a custom kernel and some additional packages to run Umbrel OS. It is not a standard Debian VM, but it is optimized for Umbrel OS.",
"type": "info"
}
]
}

View File

@@ -1,18 +1,153 @@
[
{
"name": "mongodb/mongo",
"version": "r8.1.0-alpha3",
"date": "2025-05-27T22:33:59Z"
"name": "FreshRSS/FreshRSS",
"version": "1.26.3",
"date": "2025-06-02T22:00:14Z"
},
{
"name": "influxdata/influxdb",
"version": "v1.12.1rc1",
"date": "2025-05-27T22:00:09Z"
"name": "TandoorRecipes/recipes",
"version": "2.0.0-alpha-4",
"date": "2025-05-14T05:01:45Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.12.3",
"date": "2025-05-27T20:43:10Z"
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "v1.23.3-victorialogs",
"date": "2025-06-02T19:44:31Z"
},
{
"name": "syncthing/syncthing",
"version": "2.0.0-rc.19",
"date": "2025-06-02T17:56:25Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.84.1",
"date": "2025-06-02T18:35:35Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.1.15",
"date": "2025-06-02T17:38:24Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.21.6",
"date": "2025-06-02T17:12:58Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.14",
"date": "2025-05-29T15:35:16Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.94.1",
"date": "2025-05-27T10:36:43Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.4.2",
"date": "2025-06-02T15:06:31Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w22-4.13.0",
"date": "2025-05-26T15:04:48Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.2.0p43-rc3",
"date": "2025-06-02T13:53:47Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.5",
"date": "2025-05-28T06:49:43Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.13",
"date": "2025-06-02T12:44:20Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-beta.4",
"date": "2025-06-02T11:21:42Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.68.11",
"date": "2025-06-02T09:32:57Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.0.0-dev",
"date": "2025-06-02T08:16:35Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1978",
"date": "2025-06-02T05:52:50Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.16",
"date": "2025-05-27T16:27:42Z"
},
{
"name": "usememos/memos",
"version": "v0.24.4",
"date": "2025-06-02T02:49:05Z"
},
{
"name": "pi-hole/pi-hole",
"version": "v6.1.1",
"date": "2025-06-02T01:36:09Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.24.0",
"date": "2025-06-01T21:38:08Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.94.0",
"date": "2025-06-01T21:23:25Z"
},
{
"name": "traccar/traccar",
"version": "v6.7.2",
"date": "2025-06-01T20:40:00Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.3.2",
"date": "2025-06-01T19:02:46Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.4.0",
"date": "2025-06-01T18:08:44Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.6.1",
"date": "2025-06-01T12:31:14Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.2.0",
"date": "2025-06-01T12:31:14Z"
},
{
"name": "evcc-io/evcc",
"version": "0.204.1",
"date": "2025-06-01T08:19:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.25.0.10024",
"date": "2025-05-26T21:58:37Z"
},
{
"name": "home-assistant/core",
@@ -20,14 +155,159 @@
"date": "2025-05-23T15:10:33Z"
},
{
"name": "ollama/ollama",
"version": "v0.7.1-rc2",
"date": "2025-05-23T01:53:31Z"
"name": "kimai/kimai",
"version": "2.35.1",
"date": "2025-05-31T15:05:27Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-05-25T09:44:06Z"
"name": "prometheus/prometheus",
"version": "v3.4.1",
"date": "2025-05-31T13:45:40Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.05",
"date": "2025-05-31T13:36:23Z"
},
{
"name": "Forceu/Gokapi",
"version": "v2.0.0",
"date": "2025-05-31T12:32:40Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.4.1",
"date": "2025-05-15T17:48:29Z"
},
{
"name": "moghtech/komodo",
"version": "v1.18.0",
"date": "2025-05-30T20:12:54Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.22.0",
"date": "2025-05-30T19:17:15Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.0-beta.1",
"date": "2025-05-30T16:49:17Z"
},
{
"name": "element-hq/synapse",
"version": "test-pro",
"date": "2025-05-30T14:53:00Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.20.0",
"date": "2025-05-30T14:39:51Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "binwiederhier/ntfy",
"version": "v2.12.0",
"date": "2025-05-30T00:26:27Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.13",
"date": "2025-05-29T21:37:38Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.6.0",
"date": "2025-05-29T19:11:21Z"
},
{
"name": "navidrome/navidrome",
"version": "v0.56.1",
"date": "2025-05-29T19:09:16Z"
},
{
"name": "influxdata/influxdb",
"version": "v2.7.12",
"date": "2025-05-29T17:08:26Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.36.5",
"date": "2025-05-29T17:06:01Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.1",
"date": "2025-05-29T17:00:06Z"
},
{
"name": "readeck/readeck",
"version": "0.19.2",
"date": "2025-05-29T14:39:17Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.6.1",
"date": "2025-05-29T13:36:09Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.119-2.1.0.119_canary_2025-05-29",
"date": "2025-05-29T06:14:27Z"
},
{
"name": "ollama/ollama",
"version": "v0.9.0",
"date": "2025-05-29T05:41:01Z"
},
{
"name": "webmin/webmin",
"version": "2.400",
"date": "2025-05-28T22:36:05Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.18",
"date": "2025-05-28T21:45:55Z"
},
{
"name": "mongodb/mongo",
"version": "r6.0.24",
"date": "2025-05-28T21:25:03Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.504.2",
"date": "2025-05-28T14:36:54Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.1.0",
"date": "2025-05-28T09:39:00Z"
},
{
"name": "Athou/commafeed",
"version": "5.10.0",
"date": "2025-05-28T05:48:20Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.6",
"date": "2025-05-28T00:13:19Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.12.3",
"date": "2025-05-27T20:43:10Z"
},
{
"name": "Threadfin/Threadfin",
@@ -39,16 +319,6 @@
"version": "v1.134.0",
"date": "2025-05-27T17:28:27Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.16",
"date": "2025-05-27T16:27:42Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.512",
"date": "2025-05-27T16:06:07Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.7",
@@ -59,11 +329,6 @@
"version": "7.2.9",
"date": "2025-05-27T14:08:53Z"
},
{
"name": "readeck/readeck",
"version": "0.19.1",
"date": "2025-05-27T13:13:07Z"
},
{
"name": "traefik/traefik",
"version": "v3.4.1",
@@ -74,56 +339,21 @@
"version": "v0.107.62",
"date": "2025-05-27T12:10:19Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.5.7",
"date": "2025-05-27T05:34:42Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.94.1",
"date": "2025-05-27T10:36:43Z"
},
{
"name": "esphome/esphome",
"version": "2025.5.1",
"date": "2025-05-27T09:01:29Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.65.10",
"date": "2025-05-27T08:47:06Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1956",
"date": "2025-05-27T05:55:21Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.14.12",
"date": "2025-05-27T03:58:59Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.11",
"date": "2025-05-26T22:27:26Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.25.0.10024",
"date": "2025-05-26T21:58:37Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.34.1",
"date": "2025-05-26T21:40:54Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.12",
"date": "2025-05-15T14:06:52Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.18",
@@ -134,46 +364,11 @@
"version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w22-4.13.0",
"date": "2025-05-26T15:04:48Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "jupyter/notebook",
"version": "v7.4.3",
"date": "2025-05-26T14:27:27Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.3.0p33",
"date": "2025-05-26T13:57:51Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.118.0",
"date": "2025-05-26T13:09:32Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-beta.3",
"date": "2025-05-26T12:40:56Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.5.26",
"date": "2025-05-26T11:30:11Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.4",
@@ -189,16 +384,6 @@
"version": "v1.13.0",
"date": "2025-05-25T20:21:13Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.21.0",
"date": "2025-05-25T16:41:43Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.5",
"date": "2025-05-17T02:52:33Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.36.3.5071",
@@ -219,11 +404,6 @@
"version": "v4.39.4",
"date": "2025-05-25T02:27:28Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.0.0",
"date": "2025-05-24T22:06:55Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-05-24T17-08-30Z",
@@ -244,26 +424,11 @@
"version": "v0.28.2",
"date": "2025-05-24T07:59:15Z"
},
{
"name": "traccar/traccar",
"version": "v6.7.1",
"date": "2025-05-24T04:51:02Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.21.0",
"date": "2025-05-23T19:17:15Z"
},
{
"name": "docker/compose",
"version": "v2.36.2",
"date": "2025-05-23T14:21:20Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.1.4",
"date": "2025-05-23T12:29:19Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.113",
@@ -284,11 +449,6 @@
"version": "mariadb-11.4.7",
"date": "2025-05-22T14:22:22Z"
},
{
"name": "apache/cassandra",
"version": "4.0.18-tentative",
"date": "2025-05-22T11:46:18Z"
},
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
@@ -304,11 +464,6 @@
"version": "3.2.0-rc2",
"date": "2025-05-21T20:09:07Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.84.0",
"date": "2025-05-21T19:39:53Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.4",
@@ -334,31 +489,16 @@
"version": "10.0.18",
"date": "2025-02-12T11:07:02Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.12",
"date": "2025-05-21T05:44:55Z"
},
{
"name": "diced/zipline",
"version": "v4.1.0",
"date": "2025-05-21T04:12:44Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.19.0",
"date": "2025-05-21T03:46:14Z"
},
{
"name": "matze/wastebin",
"version": "3.1.0",
"date": "2025-05-20T19:20:03Z"
},
{
"name": "element-hq/synapse",
"version": "v1.130.0",
"date": "2025-05-20T15:33:54Z"
},
{
"name": "documenso/documenso",
"version": "v1.11.1",
@@ -379,11 +519,6 @@
"version": "v4.4.9",
"date": "2025-05-20T00:08:29Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.36.4",
"date": "2025-05-19T22:28:11Z"
},
{
"name": "glanceapp/glance",
"version": "v0.8.3",
@@ -394,11 +529,6 @@
"version": "v1.6.1",
"date": "2025-03-15T17:29:17Z"
},
{
"name": "Forceu/Gokapi",
"version": "v1.9.6",
"date": "2024-12-18T14:35:37Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v1.17.1",
@@ -414,11 +544,6 @@
"version": "debian/12.1.6.1",
"date": "2025-05-18T17:01:42Z"
},
{
"name": "kimai/kimai",
"version": "2.34.0",
"date": "2025-05-18T13:22:17Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.8",
@@ -429,46 +554,16 @@
"version": "v25.05.2",
"date": "2025-05-17T12:53:29Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.02.5",
"date": "2025-05-17T11:24:01Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.1.1",
"date": "2025-05-17T10:10:36Z"
},
{
"name": "evcc-io/evcc",
"version": "0.203.6",
"date": "2025-05-17T07:30:49Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.304.0",
"date": "2025-05-17T07:29:09Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.23.0",
"date": "2025-05-16T22:13:53Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.4.1",
"date": "2025-05-16T16:37:51Z"
},
{
"name": "wavelog/wavelog",
"version": "2.0.4",
"date": "2025-05-16T15:09:53Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.0-alpha.1",
"date": "2025-05-16T13:30:53Z"
},
{
"name": "gotson/komga",
"version": "1.21.3",
@@ -479,11 +574,6 @@
"version": "v4.100.2",
"date": "2025-05-15T23:02:46Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.4.1",
"date": "2025-05-15T17:48:29Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.5.0",
@@ -494,26 +584,11 @@
"version": "v3.1.1",
"date": "2025-05-15T15:17:57Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.5.1",
"date": "2025-05-15T09:59:28Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.0",
"date": "2025-05-15T01:49:47Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "Athou/commafeed",
"version": "5.9.0",
"date": "2025-05-14T15:29:48Z"
},
{
"name": "juanfont/headscale",
"version": "v0.26.0",
@@ -524,16 +599,6 @@
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.0-alpha-4",
"date": "2025-05-14T05:01:45Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.3.1",
@@ -554,16 +619,6 @@
"version": "v2025-05-11",
"date": "2025-05-12T19:14:57Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.118-2.1.0.118_canary_2025-05-12",
"date": "2025-05-12T18:50:44Z"
},
{
"name": "usememos/memos",
"version": "v0.24.3",
"date": "2025-05-12T15:23:21Z"
},
{
"name": "stackblitz-labs/bolt.diy",
"version": "1.0.0",
@@ -614,11 +669,6 @@
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.7",
"date": "2025-05-07T11:32:23Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.19.0",
@@ -649,21 +699,11 @@
"version": "3.5.0",
"date": "2025-05-05T16:28:24Z"
},
{
"name": "moghtech/komodo",
"version": "v1.17.5",
"date": "2025-05-04T22:17:06Z"
},
{
"name": "Readarr/Readarr",
"version": "v2.0.0.4645",
"date": "2017-03-07T18:56:06Z"
},
{
"name": "FreshRSS/FreshRSS",
"version": "1.26.2",
"date": "2025-05-03T20:23:27Z"
},
{
"name": "actualbudget/actual",
"version": "v25.5.0",
@@ -684,11 +724,6 @@
"version": "v3.5.4",
"date": "2025-05-02T13:42:06Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.3.0",
"date": "2025-05-01T18:24:31Z"
},
{
"name": "WordPress/WordPress",
"version": "6.8.1",
@@ -709,11 +744,6 @@
"version": "2025.3",
"date": "2025-04-30T02:52:28Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.5.2",
"date": "2025-04-29T20:42:32Z"
},
{
"name": "hargata/lubelog",
"version": "v1.4.7",
@@ -729,11 +759,6 @@
"version": "deluge-2.2.0",
"date": "2025-04-28T21:31:06Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.2.0",
"date": "2025-04-28T17:55:01Z"
},
{
"name": "karakeep-app/karakeep",
"version": "v0.24.1",
@@ -799,11 +824,6 @@
"version": "v2.10.0",
"date": "2025-04-18T20:46:28Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.93.0",
"date": "2025-04-17T20:05:25Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v12.6.1",
@@ -874,11 +894,6 @@
"version": "2.3",
"date": "2025-04-05T18:05:36Z"
},
{
"name": "navidrome/navidrome",
"version": "v0.55.2",
"date": "2025-04-05T12:07:32Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.31.0",
@@ -899,11 +914,6 @@
"version": "1.5.0",
"date": "2025-03-30T17:42:59Z"
},
{
"name": "pi-hole/pi-hole",
"version": "v6.0.6",
"date": "2025-03-30T16:59:06Z"
},
{
"name": "aceberg/WatchYourLAN",
"version": "2.1.2-alpine",
@@ -964,11 +974,6 @@
"version": "v4.0.14.2939",
"date": "2025-03-17T19:12:37Z"
},
{
"name": "webmin/webmin",
"version": "2.303",
"date": "2025-03-17T04:54:50Z"
},
{
"name": "transmission/transmission",
"version": "4.0.1-beta.1",
@@ -1214,11 +1219,6 @@
"version": "v1.0.9",
"date": "2024-05-21T22:15:33Z"
},
{
"name": "binwiederhier/ntfy",
"version": "v2.11.0",
"date": "2024-05-13T20:19:54Z"
},
{
"name": "pterodactyl/wings",
"version": "v1.11.13",

View File

@@ -5,7 +5,7 @@ import { Script } from "@/lib/types";
export default function DefaultPassword({ item }: { item: Script }) {
const { username, password } = item.default_credentials;
const hasDefaultLogin = username && password;
const hasDefaultLogin = username || password;
if (!hasDefaultLogin) return null;
@@ -23,14 +23,17 @@ export default function DefaultPassword({ item }: { item: Script }) {
<p className="mb-2 text-sm">
You can use the following credentials to login to the {item.name} {item.type}.
</p>
{["username", "password"].map((type) => (
<div key={type} className="text-sm">
{type.charAt(0).toUpperCase() + type.slice(1)}:{" "}
<Button variant="secondary" size="null" onClick={() => copyCredential(type as "username" | "password")}>
{item.default_credentials[type as "username" | "password"]}
</Button>
</div>
))}
{["username", "password"].map((type) => {
const value = item.default_credentials[type as "username" | "password"];
return value && value.trim() !== "" ? (
<div key={type} className="text-sm">
{type.charAt(0).toUpperCase() + type.slice(1)}:{" "}
<Button variant="secondary" size="null" onClick={() => copyCredential(type as "username" | "password")}>
{value}
</Button>
</div>
) : null;
})}
</div>
</div>
);

View File

@@ -32,9 +32,9 @@ msg_info "Setting up Database"
DB_NAME=2fauth_db
DB_USER=2fauth
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "2FAuth Credentials"
echo "Database User: $DB_USER"
@@ -45,8 +45,8 @@ msg_ok "Set up Database"
msg_info "Setup 2FAuth"
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip")
unzip -q "${RELEASE}.zip"
curl -fsSL "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "2FAuth-${RELEASE//v/}/" /opt/2fauth
cd "/opt/2fauth" || return

View File

@@ -16,7 +16,6 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gpg \
gdal-bin \
libgdal-dev \
git \
@@ -53,8 +52,8 @@ DJANGO_ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
LOCAL_IP="$(hostname -I | awk '{print $1}')"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip")
unzip -q v${RELEASE}.zip
curl -fsSL "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
cat <<EOF >/opt/adventurelog/backend/server/.env
PGHOST='localhost'

View File

@@ -14,7 +14,6 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y unzip
$STD apt-get install -y apt-transport-https
$STD apt-get install -y alsa-utils
$STD apt-get install -y libxext-dev

View File

@@ -14,12 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add tzdata
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
msg_info "Installing Docker"

View File

@@ -13,17 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Gitea"
$STD apk add --no-cache gitea
msg_ok "Installed Gitea"

View File

@@ -13,14 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
msg_info "Installing Grafana"
$STD apk add grafana
$STD sed -i '/http_addr/s/127.0.0.1/0.0.0.0/g' /etc/conf.d/grafana

View File

@@ -14,11 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
$STD apk add sudo
msg_ok "Installed Dependencies"
motd_ssh

View File

@@ -14,12 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
curl \
mc \
openssh \
nginx \
unzip
$STD apk add nginx
msg_ok "Installed Dependencies"
msg_info "Installing IT-Tools"
@@ -28,7 +23,7 @@ DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
mkdir -p /usr/share/nginx/html
unzip -q it-tools.zip -d /tmp/it-tools
$STD unzip it-tools.zip -d /tmp/it-tools
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
cat <<'EOF' >/etc/nginx/http.d/default.conf
server {

View File

@@ -13,12 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
gpg \
sudo
msg_ok "Installed Dependencies"
msg_info "Installing MariaDB"
$STD apk add --no-cache mariadb mariadb-client
$STD rc-update add mariadb default

View File

@@ -14,12 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
$STD apk add nginx
msg_ok "Installed Dependencies"
@@ -53,7 +48,7 @@ $STD apk add nextcloud-mysql mariadb mariadb-client
$STD mariadb-install-db --user=mysql --datadir=/var/lib/mysql
$STD service mariadb start
$STD rc-update add mariadb
mysql -uroot -p"$ADMIN_PASS" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '$ADMIN_PASS' WITH GRANT OPTION; DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); DROP DATABASE test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'; CREATE DATABASE $DB_NAME; GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS'; GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost.localdomain' IDENTIFIED BY '$DB_PASS'; FLUSH PRIVILEGES;"
$STD mariadb -uroot -p"$ADMIN_PASS" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '$ADMIN_PASS' WITH GRANT OPTION; DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); DROP DATABASE test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'; CREATE DATABASE $DB_NAME; GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS'; GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost.localdomain' IDENTIFIED BY '$DB_PASS'; FLUSH PRIVILEGES;"
$STD apk del mariadb-client
msg_ok "Installed MySQL Database"

View File

@@ -15,7 +15,6 @@ update_os
msg_info "Installing Dependencies"
$STD apk add --no-cache \
gpg \
git \
nodejs \
npm
@@ -45,16 +44,17 @@ command="/usr/local/bin/node-red"
command_args="--max-old-space-size=128 -v"
command_user="nodered"
pidfile="/var/run/nodered.pid"
command_background="yes"
depend() {
use net
}' >$service_path
chmod +x $service_path
$STD rc-update add nodered default
msg_ok "Created Node-RED Service"
msg_info "Starting Node-RED"
$STD rc-update add nodered
$STD rc-service nodered start
msg_ok "Started Node-RED"

View File

@@ -13,11 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Prometheus"
$STD apk add --no-cache prometheus
msg_ok "Installed Prometheus"

View File

@@ -15,7 +15,6 @@ update_os
msg_info "Installing dependencies"
$STD apk add --no-cache \
unzip \
apache2-utils
msg_ok "Installed dependencies"

View File

@@ -13,17 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Redis"
$STD apk add redis
$STD sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis.conf

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# Author: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/steveiliop56/tinyauth
@@ -14,45 +14,44 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add --no-cache \
npm \
curl \
go
$STD apk add --no-cache curl openssl apache2-utils
msg_ok "Installed Dependencies"
msg_info "Installing tinyauth"
temp_file=$(mktemp)
$STD npm install -g bun
msg_info "Installing Tinyauth"
mkdir -p /opt/tinyauth
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/steveiliop56/tinyauth/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar -xzf "$temp_file" -C /opt/tinyauth --strip-components=1
cd /opt/tinyauth/frontend
$STD bun install
$STD bun run build
mv dist /opt/tinyauth/internal/assets/
cd /opt/tinyauth
$STD go mod download
CGO_ENABLED=0 go build -ldflags "-s -w"
{
echo "tinyauth Credentials"
echo "Username: admin@example.com"
echo "Password: admin"
} >>~/tinyauth.creds
echo "${RELEASE}" >/opt/tinyauth_version.txt
msg_ok "Installed tinyauth"
msg_info "Enabling tinyauth Service"
SECRET=$(head -c 16 /dev/urandom | xxd -p -c 16 | tr -d '\n')
{
echo "SECRET=${SECRET}"
echo "USERS=admin@example.com:\$2a\$10\$CrTK.W7WXSClo3ZY1yJUFupg5UdV8WNcynEhZhJFNjhGQB.Ga0ZDm"
echo "APP_URL=http://localhost:3000"
} >>/opt/tinyauth/.env
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
chmod +x /opt/tinyauth/tinyauth
PASSWORD=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8)
USER=$(htpasswd -Bbn "tinyauth" "${PASSWORD}")
cat <<EOF > /opt/tinyauth/credentials.txt
Tinyauth Credentials
Username: tinyauth
Password: ${PASSWORD}
EOF
echo "${RELEASE}" >/opt/tinyauth_version.txt
msg_ok "Installed Tinyauth"
read -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
msg_info "Creating Tinyauth Service"
SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32)
cat <<EOF >/opt/tinyauth/.env
SECRET=${SECRET}
USERS=${USER}
APP_URL=${app_url}
EOF
sed -i -e 's/\$/\$\$/g' /opt/tinyauth/.env
cat <<EOF >/etc/init.d/tinyauth
#!/sbin/openrc-run
description="tinyauth Service"
description="Tinyauth Service"
command="/opt/tinyauth/tinyauth"
directory="/opt/tinyauth"
@@ -62,7 +61,15 @@ pidfile="/var/run/tinyauth.pid"
start_pre() {
if [ -f "/opt/tinyauth/.env" ]; then
export \$(grep -v '^#' /opt/tinyauth/.env | xargs)
while IFS= read -r line || [ -n "$line" ]; do
[ -z "$line" ] && continue
case "$line" in
'#'*)
continue
;;
esac
export "$line"
done < "/opt/tinyauth/.env"
fi
}
@@ -73,11 +80,11 @@ EOF
chmod +x /etc/init.d/tinyauth
$STD rc-update add tinyauth default
msg_ok "Enabled tinyauth Service"
msg_ok "Enabled Tinyauth Service"
msg_info "Starting tinyauth"
msg_info "Starting Tinyauth"
$STD service tinyauth start
msg_ok "Started tinyauth"
msg_ok "Started Tinyauth"
motd_ssh
customize

View File

@@ -24,31 +24,13 @@ msg_ok "Installed Traefik"
read -p "${TAB3}Enable Traefik WebUI (Port 8080)? [y/N]: " enable_webui
if [[ "$enable_webui" =~ ^[Yy]$ ]]; then
msg_info "Configuring Traefik WebUI"
mkdir -p /etc/traefik/config
cat <<EOF >/etc/traefik/traefik.yml
entryPoints:
web:
address: ":80"
traefik:
address: ":8080"
api:
dashboard: true
insecure: true
log:
level: INFO
providers:
file:
directory: /etc/traefik/config
watch: true
EOF
sed -i 's/localhost//g' /etc/traefik/traefik.yaml
msg_ok "Configured Traefik WebUI"
fi
msg_info "Enabling and starting Traefik service"
$STD rc-update add traefik default
sed -i '/^command=.*/i directory="/etc/traefik"' /etc/init.d/traefik
$STD rc-service traefik start
msg_ok "Traefik service started"

View File

@@ -15,12 +15,6 @@ update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg \
iptables \
openrc
msg_ok "Installed Dependencies"

View File

@@ -13,14 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
msg_info "Installing Alpine-Zigbee2MQTT"
$STD apk add zigbee2mqtt
mkdir -p /root/.z2m

View File

@@ -15,7 +15,6 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y apt-transport-https
$STD apt-get install -y gpg
msg_ok "Installed Dependencies"
msg_info "Installing Eclipse Temurin (Patience)"

View File

@@ -15,7 +15,6 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y apt-transport-https
$STD apt-get install -y gnupg
msg_ok "Installed Dependencies"
msg_info "Installing Apache CouchDB"

View File

@@ -76,9 +76,9 @@ msg_info "Setup Database"
DB_NAME=guacamole_db
DB_USER=guacamole_user
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
mysql -u root -e "CREATE DATABASE $DB_NAME;"
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "Guacamole-Credentials"
echo "Database User: $DB_USER"
@@ -86,7 +86,7 @@ mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVI
echo "Database Name: $DB_NAME"
} >>~/guacamole.creds
cd guacamole-auth-jdbc-1.5.5/mysql/schema
cat *.sql | mysql -u root ${DB_NAME}
cat *.sql | mariadb -u root ${DB_NAME}
{
echo "mysql-hostname: 127.0.0.1"
echo "mysql-port: 3306"

View File

@@ -42,7 +42,7 @@ msg_info "Installing Apache Tika"
mkdir -p /opt/apache-tika
cd /opt/apache-tika
RELEASE="$(curl -fsSL https://dlcdn.apache.org/tika/ | grep -oP '(?<=href=")[0-9]+\.[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1)"
curl -fsSL "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar" -o $(basename "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar")
curl -fsSL "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar" -o tika-server-standard-${RELEASE}.jar
mv tika-server-standard-${RELEASE}.jar tika-server-standard.jar
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Apache Tika"

View File

@@ -15,9 +15,7 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gnupg2 \
lsb-release \
gpg \
apt-transport-https
msg_ok "Installed Dependencies"

View File

@@ -13,10 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y gnupg
msg_ok "Installed Dependencies"
msg_info "Installing audiobookshelf"
curl -fsSL https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg >/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc
echo "deb [signed-by=/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc] https://advplyr.github.io/audiobookshelf-ppa ./" >/etc/apt/sources.list.d/audiobookshelf.list

View File

@@ -15,7 +15,7 @@ update_os
msg_info "Installing Authelia"
RELEASE=$(curl -fsSL https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/authelia/authelia/releases/download/${RELEASE}/authelia_${RELEASE}_amd64.deb" -o $(basename "https://github.com/authelia/authelia/releases/download/${RELEASE}/authelia_${RELEASE}_amd64.deb")
curl -fsSL "https://github.com/authelia/authelia/releases/download/${RELEASE}/authelia_${RELEASE}_amd64.deb" -o "authelia_${RELEASE}_amd64.deb"
$STD dpkg -i "authelia_${RELEASE}_amd64.deb"
msg_ok "Install Authelia completed"

View File

@@ -1,198 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://goauthentik.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \
pkg-config \
libffi-dev \
build-essential \
libpq-dev \
libkrb5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
libc6-dev \
libbz2-dev \
zlib1g-dev \
libxmlsec1 \
libxmlsec1-dev \
libxmlsec1-openssl \
libmaxminddb0 \
python3-pip \
redis-server \
git
msg_ok "Installed Dependencies"
setup_uv
PG_VERSION="16" PG_MODULES="contrib" install_postgresql
NODE_VERSION="22" install_node_and_modules
install_go
msg_info "Installing yq"
cd /tmp
YQ_LATEST="$(curl -fsSL https://api.github.com/repos/mikefarah/yq/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')"
curl -fsSL "https://github.com/mikefarah/yq/releases/download/${YQ_LATEST}/yq_linux_amd64" -o /usr/bin/yq
chmod +x /usr/bin/yq
msg_ok "Installed yq"
msg_info "Installing GeoIP"
cd /tmp
GEOIP_RELEASE=$(curl -fsSL https://api.github.com/repos/maxmind/geoipupdate/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/maxmind/geoipupdate/releases/download/v${GEOIP_RELEASE}/geoipupdate_${GEOIP_RELEASE}_linux_amd64.deb" -o "geoipupdate.deb"
$STD dpkg -i geoipupdate.deb
cat <<EOF >/etc/GeoIP.conf
#GEOIPUPDATE_EDITION_IDS="GeoLite2-City GeoLite2-ASN"
#GEOIPUPDATE_VERBOSE="1"
#GEOIPUPDATE_ACCOUNT_ID_FILE="/run/secrets/GEOIPUPDATE_ACCOUNT_ID"
#GEOIPUPDATE_LICENSE_KEY_FILE="/run/secrets/GEOIPUPDATE_LICENSE_KEY"
EOF
msg_ok "Installed GeoIP"
msg_info "Setup PostgreSQL Database"
DB_NAME="authentik"
DB_USER="authentik"
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;"
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
msg_ok "Installed PostgreSQL"
msg_info "Installing authentik"
RELEASE=$(curl -fsSL https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}')
mkdir -p /opt/authentik
curl -fsSL "${RELEASE}" -o "authentik.tar.gz"
tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
export NODE_OPTIONS="--max-old-space-size=4096"
cd /opt/authentik/website
$STD npm install
$STD npm run build-bundled
cd /opt/authentik/web
$STD npm install
$STD npm run build
cd /opt/authentik
$STD go mod download
$STD go build -o /go/authentik ./cmd/server
$STD go build -o /opt/authentik/authentik-server /opt/authentik/cmd/server/
$STD uv sync --frozen --no-install-project --no-dev
#$STD pip3 install --no-cache-dir --upgrade pip
#$STD pip3 install --upgrade pip
#$STD pip3 install poetry poetry-plugin-export
#ln -s /usr/local/bin/poetry /usr/bin/poetry
#$STD poetry install --only=main --no-ansi --no-interaction --no-root
#$STD poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt
#$STD pip install --no-cache-dir -r requirements.txt
#$STD pip install .
mkdir -p /etc/authentik
mv /opt/authentik/authentik/lib/default.yml /etc/authentik/config.yml
$STD yq -i ".secret_key = \"$(openssl rand -hex 32)\"" /etc/authentik/config.yml
$STD yq -i ".postgresql.password = \"${DB_PASS}\"" /etc/authentik/config.yml
$STD yq -i ".geoip = \"/opt/authentik/tests/GeoLite2-City-Test.mmdb\"" /etc/authentik/config.yml
cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints
$STD yq -i ".blueprints_dir = \"/opt/authentik/blueprints\"" /etc/authentik/config.yml
#ln -s /usr/bin/python3 /usr/bin/python
#ln -s /usr/local/bin/gunicorn /usr/bin/gunicorn
#ln -s /usr/local/bin/celery /usr/bin/celery
#$STD bash /opt/authentik/lifecycle/ak migrate
cd /opt/authentik
uv run python -m lifecycle.migrate
ln -s /opt/authentik/.venv/bin/gunicorn /usr/local/bin/gunicorn
ln -s /opt/authentik/.venv/bin/celery /usr/local/bin/celery
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed authentik"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/authentik-server.service
[Unit]
Description=authentik Go Server (API Gateway)
After=network.target
Wants=redis.service postgresql.service
[Service]
WorkingDirectory=/opt/authentik/
ExecStart=/opt/authentik/authentik-server
Restart=always
RestartSec=5
Environment=DJANGO_SETTINGS_MODULE=authentik.root.settings
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/authentik-worker.service
[Unit]
Description=authentik Celery Worker
After=network.target redis.service postgresql.service
Requires=redis.service
[Service]
Type=simple
WorkingDirectory=/opt/authentik
ExecStart=/opt/authentik/.venv/bin/celery \
-A authentik.root.celery worker \
-Ofair \
--max-tasks-per-child=1 \
--autoscale 3,1 \
-Q authentik,authentik_scheduled,authentik_events \
-E
Restart=always
RestartSec=5
Environment=DJANGO_SETTINGS_MODULE=authentik.root.settings
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/authentik-celery-beat.service
[Unit]
Description=authentik Celery Beat Scheduler
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/authentik
ExecStart=/opt/authentik/.venv/bin/celery \
-A authentik.root.celery beat \
-s /tmp/celerybeat-schedule
Restart=always
RestartSec=5
#User=authentik
Environment=DJANGO_SETTINGS_MODULE=authentik.root.settings
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now authentik-server authentik-worker authentik-celery-beat
msg_ok "Created Services"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /tmp/Python-3.12.1
rm -rf /tmp/Python.tgz
rm -rf go/
rm -rf /tmp/geoipupdate.deb
rm -rf authentik.tar.gz
$STD apt-get -y remove yq
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -39,8 +39,8 @@ msg_ok "Set up PostgreSQL Database"
msg_info "Installing Baikal"
RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
cd /opt
curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o $(basename "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip")
unzip -q "baikal-${RELEASE}.zip"
curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o "baikal-${RELEASE}.zip"
$STD unzip "baikal-${RELEASE}.zip"
cat <<EOF >/opt/baikal/config/baikal.yaml
database:
backend: pgsql

Some files were not shown because too many files have changed in this diff Show More