Compare commits

...

181 Commits

Author SHA1 Message Date
tteckster
930760840c Update README.md 2024-11-02 01:39:01 -04:00
tteckster
9ef8058194 Update CHANGELOG.md 2024-11-01 03:46:13 -04:00
tteckster
7452b47c9f Update README.md 2024-11-01 03:45:32 -04:00
CanbiZ
f4c9cc1156 Tweak (#4024) 2024-11-01 03:44:02 -04:00
tteckster
38d3f2c868 Update nginxproxymanager-install.sh
tweak
2024-10-31 02:18:28 -04:00
CanbiZ
57b9cde44d Add new LXC: Memos (#4013) 2024-10-30 10:25:02 -04:00
tteckster
f26410759a Update build.func
tweak
2024-10-30 06:09:28 -04:00
Håvard Gjøby Thom
d22879b5e9 Add new LXC: NZBGet (#4000) 2024-10-30 06:04:23 -04:00
CanbiZ
8cdb218e38 Tweak: Fix Paperless Ghostscript (#4012) 2024-10-30 06:03:12 -04:00
tteckster
409936a9fc Update README.md 2024-10-29 11:51:45 -04:00
Jacob
eceb52a67a Change update script (#4005)
Change update script to make sure that it overwrites all the local changes in the local browserless git folder
2024-10-29 09:45:40 -04:00
tteckster
2d3cae43cb Update pihole-install.sh
Correct interface IP
2024-10-28 15:10:48 -04:00
CanbiZ
b603da7778 Tweak (#3997)
Removed wrong line
2024-10-28 11:50:52 -04:00
tteckster
902aee0c0b Update tianji.sh
tweak
2024-10-28 11:23:32 -04:00
CanbiZ
6881f07437 Tweak / Remove Git and get complete project file (#3996) 2024-10-28 11:17:11 -04:00
tteckster
06742f7ef5 Update CHANGELOG.md 2024-10-28 05:49:42 -04:00
tteckster
32cd74e49f Update CHANGELOG.md 2024-10-27 19:05:32 -04:00
Håvard Gjøby Thom
28896707bc Add max-old-space-size in openwebui.sh (#3993) 2024-10-27 18:36:01 -04:00
Håvard Gjøby Thom
0340aec142 Adjust max-old-space-size in openwebui-install.sh (#3992) 2024-10-27 18:24:22 -04:00
Håvard Gjøby Thom
8a21f6e7f0 Add option to install Ollama in Open WebUI LXC (#3991) 2024-10-27 18:14:57 -04:00
Håvard Gjøby Thom
77b06ee3f9 Add update path to Gotify LXC (#3989) 2024-10-27 13:29:28 -04:00
tteckster
399786c5bd Update nginxproxymanager-install.sh
fixes https://github.com/tteck/Proxmox/issues/3982
2024-10-27 04:57:06 -04:00
tteckster
e4912cec78 Update nginxproxymanager-install.sh
tweak
2024-10-27 01:16:41 -04:00
tteckster
846d75dca1 Update CHANGELOG.md 2024-10-26 15:20:57 -04:00
Håvard Gjøby Thom
af0376f25b Add new LXC: Ollama (#3979) 2024-10-26 15:20:48 -04:00
CanbiZ
5ae25108ef Add new LXC: AdventureLog (#3971) 2024-10-25 12:00:35 -04:00
tteckster
55c8d1187b Update paperless-ngx-install.sh
tweak
2024-10-25 07:35:07 -04:00
tteckster
9a5d43e4d3 Update paperless-ngx-install.sh
fixes https://github.com/tteck/Proxmox/issues/3974
2024-10-25 07:32:56 -04:00
tteckster
bb2c143cc8 Update CHANGELOG.md 2024-10-25 05:38:49 -04:00
tteckster
2a844122d0 Update zoraxy.sh
tweak
2024-10-25 05:31:13 -04:00
tteckster
540fcd24f2 Update zoraxy.sh
tweak
2024-10-25 05:25:19 -04:00
tteckster
c2c48b52c7 Update zoraxy.sh
tweak
2024-10-25 05:22:56 -04:00
tteckster
744e183eea Update zoraxy.sh
tweak
2024-10-25 05:20:49 -04:00
tteckster
468a5d367d Update zoraxy-install.sh
- breaking change
- switch to binary install
2024-10-25 05:16:08 -04:00
tteckster
edf0753120 Update zoraxy.sh
- breaking change
- switch to binary install
2024-10-25 05:14:53 -04:00
tteckster
64eab60a4c Update openwebui-install.sh
tweak
2024-10-24 21:32:06 -04:00
tteckster
5c711293b9 Update paperless-ngx-install.sh
fixes https://github.com/tteck/Proxmox/issues/3964
2024-10-24 06:13:39 -04:00
tteckster
1d83562661 Update actualbudget-install.sh
fix install
2024-10-24 02:34:54 -04:00
tteckster
f5978717d4 Update CHANGELOG.md 2024-10-23 21:23:15 -04:00
tteckster
7176eaa99d Update CHANGELOG.md 2024-10-23 14:16:41 -04:00
CanbiZ
2184eab0c5 Add new LXC: Wallos (#3956) 2024-10-23 13:19:53 -04:00
Rémi Bédard-Couture
612979a040 Fix update path for PeaNUT following v3 fix (#3954) 2024-10-22 18:13:10 -04:00
Rémi Bédard-Couture
b4732cd8e9 Fix Peanut script following latest release (v3) (#3953) 2024-10-22 16:38:48 -04:00
tteckster
0ab3151825 Update vaultwarden.sh
tweak
2024-10-22 15:26:32 -04:00
Håvard Gjøby Thom
226697f810 Add new LXC: Open WebUI (#3944) 2024-10-22 12:39:54 -04:00
Carmine
aadcb5b264 Update USER_SUBMITTED_GUIDES.md (#3948) 2024-10-22 11:46:56 -04:00
tteckster
c9f7f6447d Update peanut-install.sh
revert test
2024-10-21 21:29:20 -04:00
tteckster
34917b15f5 Update peanut-install.sh
pin version v2.6.1 (test)
2024-10-21 21:20:52 -04:00
tteckster
d11ad56158 Update bunkerweb.sh
fixes https://github.com/tteck/Proxmox/issues/3942
2024-10-21 13:02:14 -04:00
tteckster
824710ddd4 Update bunkerweb-install.sh
Update NGINX version to v1.26.2
2024-10-21 12:59:55 -04:00
tteckster
8206f0b3dc Update zoraxy.sh
"SET RESOURCES" whiptail
2024-10-20 22:16:26 -04:00
tteckster
30a5147fba Update vaultwarden.sh
"SET RESOURCES" whiptail
2024-10-20 22:14:50 -04:00
tteckster
09721e7cae Update umami.sh
"SET RESOURCES" whiptail
2024-10-20 22:13:27 -04:00
tteckster
50ce6fd6df Update nginxproxymanager.sh
"SET RESOURCES" whiptail
2024-10-20 22:09:28 -04:00
tteckster
e9940cc535 Update mafl.sh
"SET RESOURCES" whiptail
2024-10-20 22:06:55 -04:00
tteckster
087d635fd4 Update flowiseai.sh
"SET RESOURCES" whiptail
2024-10-20 22:03:56 -04:00
tteckster
f75fbc8d50 Update flaresolverr.sh
"SET RESOURCES" whiptail
2024-10-20 22:02:26 -04:00
tteckster
128b076731 Update peanut.sh
"SET RESOURCES" whiptail
2024-10-20 19:17:22 -04:00
ngarafol
95dbf93591 use pm2 with systemd to make pingvin-share survive reboots (#3935) 2024-10-20 17:03:21 -04:00
Jacob
9a0cb6b8f5 Changedetection update enhancements (#3933) 2024-10-20 14:02:09 -04:00
tteckster
dbcb900da4 Update tianji.sh
Revert "no update path available"
2024-10-19 21:03:50 -04:00
tteckster
cac29c8f5c Update CHANGELOG.md 2024-10-19 20:50:17 -04:00
tteckster
1fb144306c Update CHANGELOG.md 2024-10-19 20:23:11 -04:00
Håvard Gjøby Thom
5b22df5c8e Add new LXC: Neo4j (#3932) 2024-10-19 20:22:35 -04:00
tteckster
e2e4784136 Update tianji.sh
no update path available
2024-10-19 13:51:56 -04:00
tteckster
e995fb4f30 Update tianji-install.sh
tweak
2024-10-19 13:49:36 -04:00
tteckster
dd3a32986a Update cockpit-install.sh
tweak
2024-10-19 11:19:13 -04:00
tteckster
7d26b42163 Update cockpit-install.sh
tweak
2024-10-19 11:10:43 -04:00
tteckster
ec24441a2a Update cockpit-install.sh
test
2024-10-19 11:02:23 -04:00
tteckster
f3408ed4f3 Update cockpit.sh
increase resources
2024-10-19 10:36:23 -04:00
tteckster
efd6d74edb Update cockpit-install.sh
tweak
2024-10-19 10:34:53 -04:00
tteckster
dbc4ce0231 Update cockpit-install.sh
use backports
2024-10-19 10:25:42 -04:00
tteckster
e643fe6699 Update trilium-install.sh
fix release path
2024-10-19 08:55:49 -04:00
tteckster
fe9736fd38 Update trilium.sh
- fix release path changes
- fixes https://github.com/tteck/Proxmox/issues/3930
2024-10-19 08:52:08 -04:00
tteckster
1ec52d08a3 Update changeme to helper-scripts.com 2024-10-18 22:24:27 -04:00
Jacob
32c24f69a7 Fix changedetection install script to support Browserless v2.x (#3928) 2024-10-18 19:10:16 -04:00
Håvard Gjøby Thom
3e2dc1cc1c Add new LXC: Cockpit (#3925) 2024-10-18 12:21:51 -04:00
tteckster
7ae803092e Update archivebox.sh
tweak
2024-10-18 11:24:40 -04:00
tteckster
6ead7e1e5f Update CHANGELOG.md 2024-10-18 09:50:13 -04:00
tteckster
e705fb6805 Create archivebox-install.sh 2024-10-18 09:43:42 -04:00
tteckster
23b391b21d Create archivebox.sh 2024-10-18 09:42:23 -04:00
tteckster
e377e065a4 Revert "Add new LXC: Kibana (#3920)" (#3922)
This reverts commit 3237e6aced.
2024-10-18 08:30:12 -04:00
T. H.
3237e6aced Add new LXC: Kibana (#3920) 2024-10-18 07:06:17 -04:00
tteckster
22e7ff1f17 Update jellyseerr.sh
tweak
2024-10-17 05:40:01 -04:00
tteckster
badff00ee2 Update jellyseerr.sh
add low storage check
2024-10-17 05:30:29 -04:00
tteckster
0665e77a1c Update jellyseerr.sh
more tweaks
2024-10-17 05:15:34 -04:00
tteckster
6e7b5d8022 Update jellyseerr.sh
tweak
2024-10-17 04:27:26 -04:00
tteckster
11c5f518a0 Update jellyseerr.sh
tweak
2024-10-16 23:29:32 -04:00
tteckster
0618c89147 Update evcc.sh
change upgrade command
2024-10-16 12:47:01 -04:00
tteckster
b7baf2d1ed Update jellyseerr.sh
tweak
2024-10-16 11:18:05 -04:00
tteckster
b323313d6e Update jellyseerr.sh
tweak
2024-10-16 11:05:50 -04:00
tteckster
e3160b56af Update jellyseerr.sh
tweak
2024-10-16 11:03:01 -04:00
tteckster
d442fa49f5 Update jellyseerr.sh 2024-10-16 10:57:23 -04:00
tteckster
7e061a112f Update jellyseerr.sh
refactor update function
2024-10-16 10:55:49 -04:00
tteckster
221ed9d260 Update jellyseerr-install.sh
- refactor code to utilize `pnpm`
- fixes https://github.com/tteck/Proxmox/issues/3904
2024-10-16 10:33:45 -04:00
tteckster
8847505782 Update jellyseerr.sh
increase build resources
2024-10-16 10:30:50 -04:00
tteckster
a9042ffdc1 Update CHANGELOG.md 2024-10-15 17:31:07 -04:00
CanbiZ
301fc39a85 Add new LXC: evcc (#3896) 2024-10-15 05:49:56 -04:00
tteckster
5dbb000070 Update frigate-install.sh
Add a placeholder for the Frigate+ key in the service file.
2024-10-14 17:47:39 -04:00
tteckster
d9789d1685 Update README.md 2024-10-11 11:24:01 -04:00
tteckster
80f678a2b3 Update CHANGELOG.md 2024-10-11 11:23:16 -04:00
tteckster
f5d1d21ac6 Update build.func
tweak
2024-10-11 11:14:11 -04:00
leiweibau
8d8b152f6f Update pialert-install.sh (#3888)
Future versions will use these packages
2024-10-11 10:33:01 -04:00
CanbiZ
79e0c29e33 Optional Installing of phpMyAdmin for MariaDB (#3885) 2024-10-11 05:01:11 -04:00
tteckster
af5218d0a1 Update mysql-install.sh
tweak
2024-10-11 04:51:43 -04:00
tteckster
6fbb8ab4a2 Update CHANGELOG.md 2024-10-10 09:55:32 -04:00
tteckster
36805ae6bb Update tianji.sh
switch to `systemd`
2024-10-10 09:50:54 -04:00
tteckster
4c83a790ac Update tianji-install.sh
switch from `pm2` process management to `systemd`
fixes https://github.com/tteck/Proxmox/issues/3876
2024-10-10 09:49:09 -04:00
tteckster
b7fe85cd5b Update CHANGELOG.md 2024-10-10 08:03:13 -04:00
tteckster
a10a0f09dd Update mysql-install.sh
tweak
2024-10-10 08:00:58 -04:00
tteckster
e9ec4c4f8e Update mysql-install.sh
tweak
2024-10-09 09:24:53 -04:00
tteckster
741f38fe2f Update mysql-install.sh
Create exactly 32 characters of Base64 output
2024-10-09 06:48:53 -04:00
CanbiZ
eb881fefa6 Add new LXC: MySQL (#3870) 2024-10-09 06:23:36 -04:00
CanbiZ
6bee7e291e Update tianji-install.sh 2024-10-08 09:41:12 +02:00
CanbiZ
5420269e97 Fix Tianji Installation & Performance-Boost 2024-10-08 09:39:48 +02:00
tteckster
2554560082 Update paperless-ngx-install.sh
test
2024-10-06 20:50:58 -04:00
Rémi Bédard-Couture
6f98a65692 Fix the nginx logs by keeping the process output to stdout instead of pushing directly into log file (#3851) 2024-10-06 14:37:01 -04:00
tteckster
72b3876fee Update nginxproxymanager-install.sh
add symlink
2024-10-04 20:53:22 -04:00
tteckster
542a8a619b Update nginxproxymanager-install.sh
tweak
2024-10-04 19:59:20 -04:00
tteckster
97d48dd4b7 Update nginxproxymanager-install.sh
fixes https://github.com/tteck/Proxmox/issues/3841
2024-10-04 18:51:35 -04:00
tteckster
6bb46a5365 Update spoolman.sh
revert 9a17e03a38
2024-10-04 17:49:59 -04:00
tteckster
05062bab40 Update spoolman-install.sh
fixes https://github.com/tteck/Proxmox/issues/3840
2024-10-04 17:40:13 -04:00
Elad Bar
71107fedc4 Update keycloak - Fixes #3833 (#3834) 2024-10-04 03:40:00 -04:00
Elad Bar
8335fbd3d5 Restart traefik after update (#3831)
Fixes #3830
2024-10-04 03:28:13 -04:00
Max Slotov
bb6759aae8 Fix Nginx Proxy Manager logrotate user (#3818)
Logs are not rotated and services freeze/die because disk is full. This happens because `npm` user/group doesn't exist and `logrotate.service` can't start.
2024-10-03 12:18:56 -04:00
tteckster
9aec831f92 Update CHANGELOG.md 2024-10-03 06:49:47 -04:00
tteckster
f2966ced7f Update homeassistant-core-install.sh
Code refactor
2024-10-03 06:16:12 -04:00
tteckster
6191d8e792 Update homeassistant-core.sh
- Breaking Change 
- Home Assistant has transitioned to using `uv` for module updates.
- No upgrade to 2024.10.0 from old versions. Please create a new LXC.
2024-10-02 22:39:04 -04:00
tteckster
f2937febe6 Update homeassistant-core-install.sh
- Breaking Change 
- Home Assistant has transitioned to using `uv` for managing the virtual environment and installing additional modules.
- No upgrade to 2024.10.0 from old versions. Please create a new LXC.
- Fixes https://github.com/tteck/Proxmox/issues/3817
2024-10-02 22:34:56 -04:00
tteckster
f2fe361224 remove k0s scripts 2024-10-02 03:58:27 -04:00
tteckster
87a8d9c2d8 Update whoogle.sh
fixes https://github.com/tteck/Proxmox/issues/3810
2024-10-01 12:15:09 -04:00
tteckster
9a17e03a38 Update spoolman.sh
fix upgrade
2024-10-01 12:08:50 -04:00
tteckster
015e8f4393 Update spoolman-install.sh
fix install
2024-10-01 12:03:18 -04:00
tteckster
1ff0979cee Update build.func
tweak
2024-09-28 13:18:02 -04:00
tteckster
1a14c87209 Update postgresql-install.sh
PostgreSQL version 17
2024-09-27 06:00:26 -04:00
CanbiZ
4ead590cf4 Tweak for Tianji Update Script (#3794) 2024-09-26 07:06:07 -04:00
CanbiZ
5f34c2c7c8 Tweak for Zipline (#3779)
Zipline is sensitiv with special characters
2024-09-24 13:18:21 -04:00
Jens Bodal
f2662027a8 Update changedetection-install.sh (#3778)
The path to this file changed a while back: https://github.com/browserless/browserless/pull/3723/files#diff-81165fc8abb0ab49496bbf329e9efeedc7df0e667f85b4dcfa5c77f6f2c2e799
2024-09-24 07:50:43 -04:00
tteckster
6a02ba1335 Update stirling-pdf-install.sh
fixes https://github.com/tteck/Proxmox/issues/3756
2024-09-19 13:10:24 -04:00
tteckster
e140642b1f Update ersatztv-install.sh
tweak
2024-09-18 15:02:48 -04:00
tteckster
61b0ca67cc Update ersatztv-install.sh
add Hardware Acceleration
2024-09-18 15:00:53 -04:00
tteckster
649590eea7 Update build.func
add ErsatzTV to VAAPI hardware transcoding group
2024-09-18 14:59:21 -04:00
tteckster
da30cd5c1e Update build.func
tweak
2024-09-17 15:41:27 -04:00
tteckster
ae7217048f Update ersatztv-install.sh
tweak
2024-09-17 05:24:31 -04:00
tteckster
1ea00c4775 Update ersatztv-install.sh
fixes https://github.com/tteck/Proxmox/issues/3741
2024-09-17 05:08:55 -04:00
tteckster
72d3d64a48 Update CHANGELOG.md 2024-09-16 16:06:00 -04:00
CanbiZ
085f1965a3 Add new LXC: Zipline (#3735) 2024-09-16 16:04:30 -04:00
tteckster
9543941d07 Update CHANGELOG.md 2024-09-16 07:21:47 -04:00
CanbiZ
695793a151 Add new LXC: HomeBox (#3734) 2024-09-16 07:18:55 -04:00
tteckster
93ed909fff Update build.func
add warning
2024-09-16 04:11:54 -04:00
tteckster
abe337e52d Cleanup 2024-09-16 03:28:45 -04:00
tteckster
8ace224138 Update wireguard.sh
create update path
2024-09-16 03:14:42 -04:00
tteckster
620b652864 Update frigate-install.sh
tweak
2024-09-15 17:13:03 -04:00
tteckster
fa2e4786af Update dashy.sh
make update verbose
2024-09-15 17:00:13 -04:00
tteckster
e4d342c819 Update CHANGELOG.md 2024-09-15 13:58:15 -04:00
tteckster
c567efe374 Add Frigate
Add back to website
2024-09-15 13:57:50 -04:00
tteckster
27bfa24cfe Update frigate-install.sh
fix `install_deps.sh`
2024-09-15 13:46:41 -04:00
tteckster
a773864a1a Update CHANGELOG.md 2024-09-15 10:59:24 -04:00
tteckster
fe3b17b59d Update CHANGELOG.md 2024-09-15 10:56:35 -04:00
tteckster
02468cc44d Remove Frigate
- Removed from website
  - Nonfunctional
2024-09-15 10:56:25 -04:00
tteckster
1fd5114183 Update tianji-install.sh
- refactor
- fixes https://github.com/tteck/Proxmox/issues/3729
2024-09-15 08:05:19 -04:00
tteckster
80feaf6fa5 Update tianji.sh
increase storage
2024-09-14 16:06:43 -04:00
tteckster
b6890ccfbe Update CHANGELOG.md 2024-09-13 17:38:04 -04:00
CanbiZ
3bd32110d9 Add new LXC: Tianji (#3726) 2024-09-13 17:35:36 -04:00
tteckster
dc1adaba01 Update nginxproxymanager.sh
comment out `export NODE_OPTIONS=--openssl-legacy-provider`
2024-09-11 13:43:15 -04:00
tteckster
b14a33ffac Update spoolman-install.sh
fix `.env` path
2024-09-11 13:23:48 -04:00
tteckster
07df1c8373 Update spoolman.sh
fix `.env` path
fixes https://github.com/tteck/Proxmox/issues/3712
2024-09-11 13:22:38 -04:00
tteckster
0ee61aa092 Update spoolman.sh
revert tweak
2024-09-11 12:22:23 -04:00
tteckster
389b03568d Update spoolman.sh
tweak
2024-09-11 12:07:46 -04:00
Loren Burkholder
c502e413de Add openSUSE support to LXC update scripts (#3683) 2024-09-09 14:15:31 -04:00
Volodymyr Lavrynovych
30850b67f9 Guide about Docker and Portainer was added (#3680) 2024-09-09 06:12:35 -04:00
tteckster
73eaf2e6a5 Update collabora.sh
https://github.com/tteck/Proxmox/discussions/3651
2024-09-07 22:11:14 -04:00
towerhand
6d89c2de12 Update sabnzbd only if a new version is available. (#3664) 2024-09-06 03:05:57 -04:00
tteckster
1e5f4b152e Update sabnzbd-install.sh
add version.txt
2024-09-06 03:04:44 -04:00
tteckster
4cddfa3b12 Update collabora.sh
adjust resources
2024-09-05 11:44:26 -04:00
tteckster
4d9d7a8242 Update pull_request_template.md
tweak
2024-09-05 10:16:14 -04:00
tteckster
b129cb1767 Update update-lxcs-cron.sh
tweak
2024-09-05 06:07:26 -04:00
tteckster
07895a7c23 Update prometheus-install.sh
Add `version.txt`
2024-09-03 19:59:28 -04:00
tteckster
103ac46a9f Update prometheus.sh
Create update path
2024-09-03 19:58:20 -04:00
Rémi Bédard-Couture
5fb1be4e41 Add scripts for Collabora Online (#3648) 2024-09-03 15:09:57 -04:00
tteckster
86a5c8c1ba Update ubuntu2404-vm.sh
tweak
2024-09-03 14:14:02 -04:00
87 changed files with 2841 additions and 240 deletions

View File

@@ -1,18 +1,20 @@
## I wanted to make you aware that I am meticulous when it comes to merging code into the main branch, so please don't take it personally if I reject your request.
> [!NOTE]
I am meticulous when it comes to merging code into the main branch, so please understand that I may reject pull requests that do not meet the project's standards. It's never personal. Also, game-related scripts have a lower chance of being merged.
## Description
Please include a summary of the change and/or which issue is fixed.
Provide a summary of the changes made and/or reference the issue being addressed.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
Please check the relevant option(s):
- [ ] Bug fix (non-breaking change that resolves an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (a fix or feature that would cause existing functionality to change unexpectedly)
- [ ] New script (a fully functional and thoroughly tested script or set of scripts.)
- [ ] Self-review performed (I have reviewed my code, ensuring it follows established patterns and conventions)
- [ ] Documentation update required (this change requires an update to the documentation)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] New Script (Develop a new script or set of scripts that are fully functional and thoroughly tested)
- [ ] I have performed a self-review of my code, adhering to established codebase patterns and conventions.
- [ ] This change requires a documentation update

View File

@@ -8,11 +8,100 @@
<h3 align="center">All notable changes to this project will be documented in this file.</h3>
> [!CAUTION]
Be cautious of copycat or coat-tailing sites that exploit the project's popularity with potentially malicious intent. Please only trust information from https://Helper-Scripts.com/ or https://tteck.github.io/Proxmox/.
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
> [!NOTE]
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.
## 2024-10-27
### Changed
- **Open WebUI LXC** [(Commit)](https://github.com/tteck/Proxmox/commit/8a21f6e7f025a911865395d4c0fa9a001bd0d512)
- Refactor Script to add an option to install Ollama.
## 2024-10-26
### Changed
- **AdventureLog LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/adventurelog-install.sh)
- NEW Script
## 2024-10-25
### Changed
- **Zoraxy LXC** [(Commit)](https://github.com/tteck/Proxmox/commit/468a5d367ded4cf453a1507452e112ac3e234e2a)
- Switch built from source to a pre-compiled binary version.
- Breaking Change
## 2024-10-23
### Changed
- **Wallos LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/wallos-install.sh)
- NEW Script
- **Open WebUI LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/openwebui-install.sh)
- NEW Script
## 2024-10-19
### Changed
- **Cockpit LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/cockpit-install.sh)
- NEW Script
- **Neo4j LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/neo4j-install.sh)
- NEW Script
## 2024-10-18
### Changed
- **ArchiveBox LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/archivebox-install.sh)
- NEW Script
## 2024-10-15
### Changed
- **evcc LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/evcc-install.sh)
- NEW Script
## 2024-10-10
### Changed
- **MySQL LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/mysql-install.sh)
- NEW Script
- **Tianji LXC** [(Commit)](https://github.com/tteck/Proxmox/commit/4c83a790ac9b040da1f11ad2cbe13d3fc5f480e9)
- Breaking Change
- Switch from `pm2` process management to `systemd`
## 2024-10-03
### Changed
- **Home Assistant Core LXC** [(Commit)](https://github.com/tteck/Proxmox/commit/f2937febe69b2bad8b3a14eb84aa562a8f14cc6a) [(Commit)](https://github.com/tteck/Proxmox/commit/f2966ced7f457fd506f865f7f5b70ea12c4b0049)
- Refactor Code
- Breaking Change
- Home Assistant has transitioned to using `uv` for managing the virtual environment and installing additional modules.
## 2024-09-16
### Changed
- **HomeBox LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/homebox-install.sh)
- NEW Script
- **Zipline LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/zipline-install.sh)
- NEW Script
## 2024-09-13
### Changed
- **Tianji LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/tianji-install.sh)
- NEW Script
## 2024-08-21
### Changed

View File

@@ -1,3 +1,4 @@
<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;"> <h2 align="center">Proxmox VE Helper-Scripts: A Community Legacy</h2> <p>Dear Community,</p> <p>As we prepare to archive this repository, were excited to announce a new home for the project: <a href="https://github.com/community-scripts/ProxmoxVE">https://github.com/community-scripts/ProxmoxVE</a>. While were still settling in, this will soon become the go-to place for the latest Proxmox VE scripts.</p> <p>Thank you for your continued support.</p> <br>The Community </div>
<div align="center">
<a href="#">
<img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" />
@@ -15,9 +16,6 @@
---
> [!CAUTION]
Be cautious of copycat or coat-tailing sites that exploit the project's popularity with potentially malicious intent. Please only trust information from https://Helper-Scripts.com/ or https://tteck.github.io/Proxmox/.
These scripts empower users to create a Linux container or virtual machine interactively, providing choices for both simple and advanced configurations. The basic setup adheres to default settings, while the advanced setup gives users the ability to customize these defaults.
Options are displayed to users in a dialog box format. Once the user makes their selections, the script collects and validates their input to generate the final configuration for the container or virtual machine.

View File

@@ -38,3 +38,7 @@
[Proxmox + NetData](<https://dbt3ch.com/books/proxmox-netdata-for-better-insights-and-notifications/page/proxmox-netdata-for-better-insights-and-notifications>)
[Proxmox Homelab Series](<https://blog.kye.dev/proxmox-series>)
[The fastest installation of Docker and Portainer on Proxmox VE](https://lavr.site/en-fastest-install-docker-portainer-proxmox/)
[How To Setup Proxmox Backuper Server Using Helper Scripts](<https://youtu.be/6C2JOsrZZZw?si=kkrrcL_nLCDBJkOB>)

110
ct/adventurelog.sh Normal file
View File

@@ -0,0 +1,110 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
___ __ __ __
/ | ____/ / _____ ____ / /___ __________ / / ____ ____ _
/ /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/
/ ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ /
/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="AdventureLog"
var_disk="7"
var_cpu="2"
var_ram="2048"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/adventurelog ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/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 Services"
systemctl stop adventurelog-backend
systemctl stop adventurelog-frontend
msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/adventurelog/backend/server/.env /opt/server.env
cp /opt/adventurelog/frontend/env /opt/frontend.env
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/server.env /opt/adventurelog/backend/server/.env
cd /opt/adventurelog/backend/server
pip install --upgrade pip &>/dev/null
pip install -r requirements.txt &>/dev/null
python3 manage.py collectstatic --noinput &>/dev/null
python3 manage.py migrate &>/dev/null
mv /opt/frontend.env /opt/adventurelog/frontend/.env
cd /opt/adventurelog/frontend
pnpm install &>/dev/null
pnpm run build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start adventurelog-backend
systemctl start adventurelog-frontend
msg_ok "Started Services"
msg_info "Cleaning Up"
rm -rf v${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:3000${CL} \n"

86
ct/archivebox.sh Normal file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
___ __ _ ____
/ | __________/ /_ (_) _____ / __ )____ _ __
/ /| | / ___/ ___/ __ \/ / | / / _ \/ __ / __ \| |/_/
/ ___ |/ / / /__/ / / / /| |/ / __/ /_/ / /_/ /> <
/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="ArchiveBox"
var_disk="8"
var_cpu="2"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/archivebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
msg_info "Stopping ${APP}"
systemctl stop archivebox
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
cd /opt/archivebox/data
pip install --upgrade --ignore-installed archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start archivebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:8000/admin/login${CL} \n"

View File

@@ -66,7 +66,7 @@ Pin: version ${RELEASE}
Pin-Priority: 1001
EOF
apt-get update
apt-get install -y nginx=1.26.1*
apt-get install -y nginx=1.26.2*
apt-get install -y bunkerweb=${RELEASE}
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"

View File

@@ -62,6 +62,17 @@ if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
fi
pip3 install changedetection.io --upgrade &>/dev/null
pip3 install playwright --upgrade &>/dev/null
if [[ -f /etc/systemd/system/browserless.service ]]; then
git -C /opt/browserless/ fetch --all &>/dev/null
git -C /opt/browserless/ reset --hard origin/main &>/dev/null
npm update --prefix /opt/browserless &>/dev/null
npm run build --prefix /opt/browserless &>/dev/null
npm run build:function --prefix /opt/browserless &>/dev/null
npm prune production --prefix /opt/browserless &>/dev/null
systemctl restart browserless
else
msg_error "No Browserless Installation Found!"
fi
systemctl restart changedetection
msg_ok "Updated Successfully"
exit

125
ct/cockpit.sh Normal file
View File

@@ -0,0 +1,125 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
______ __ _ __
/ ____/___ _____/ /______ (_) /_
/ / / __ \/ ___/ //_/ __ \/ / __/
/ /___/ /_/ / /__/ ,< / /_/ / / /_
\____/\____/\___/_/|_/ .___/_/\__/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Cockpit"
var_disk="4"
var_cpu="2"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
if [[ ! -d /etc/cockpit ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
"1" "Update LXC" ON \
"2" "Install cockpit-file-sharing" OFF \
"3" "Install cockpit-identities" OFF \
"4" "Install cockpit-navigator" OFF \
3>&1 1>&2 2>&3)
header_info
if [ "$UPD" == "1" ]; then
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
fi
if [ "$UPD" == "2" ]; then
msg_info "Installing dependencies (patience)"
apt-get install -y attr &>/dev/null
apt-get install -y nfs-kernel-server &>/dev/null
apt-get install -y samba &>/dev/null
apt-get install -y samba-common-bin &>/dev/null
apt-get install -y winbind &>/dev/null
apt-get install -y gawk &>/dev/null
msg_ok "Installed dependencies"
msg_info "Installing Cockpit file sharing"
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/45Drives/cockpit-file-sharing/releases/download/v${LATEST}/cockpit-file-sharing_${LATEST}-1focal_all.deb
dpkg -i cockpit-file-sharing_${LATEST}-1focal_all.deb &>/dev/null
rm cockpit-file-sharing_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit file sharing"
exit
fi
if [ "$UPD" == "3" ]; then
msg_info "Installing dependencies (patience)"
apt-get install -y psmisc &>/dev/null
apt-get install -y samba &>/dev/null
apt-get install -y samba-common-bin &>/dev/null
msg_ok "Installed dependencies"
msg_info "Installing Cockpit identities"
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/45Drives/cockpit-identities/releases/download/v${LATEST}/cockpit-identities_${LATEST}-1focal_all.deb
dpkg -i cockpit-identities_${LATEST}-1focal_all.deb &>/dev/null
rm cockpit-identities_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit identities"
exit
fi
if [ "$UPD" == "4" ]; then
msg_info "Installing dependencies"
apt-get install -y rsync &>/dev/null
apt-get install -y zip &>/dev/null
msg_ok "Installed dependencies"
msg_info "Installing Cockpit navigator"
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/45Drives/cockpit-navigator/releases/download/v${LATEST}/cockpit-navigator_${LATEST}-1focal_all.deb
dpkg -i cockpit-navigator_${LATEST}-1focal_all.deb &>/dev/null
rm cockpit-navigator_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit navigator"
exit
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:9090${CL} \n"

View File

@@ -76,8 +76,8 @@ if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}
mkdir -p /opt/dashy
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
cd /opt/dashy
npm install &>/dev/null
npm run build &>/dev/null
npm install
npm run build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"

70
ct/evcc.sh Normal file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
___ _ ____________
/ _ \ | / / ___/ ___/
/ __/ |/ / /__/ /__
\___/|___/\___/\___/
EOF
}
header_info
echo -e "Loading..."
APP="evcc"
var_disk="4"
var_cpu="1"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating evcc LXC"
apt update &>/dev/null
apt --only-upgrade install -y evcc &>/dev/null
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:7070${CL} \n"

View File

@@ -56,6 +56,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
RELEASE=$(wget -q https://github.com/FlareSolverr/FlareSolverr/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating $APP LXC"

View File

@@ -55,6 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
msg_info "Updating ${APP}"
systemctl stop flowise
npm install -g flowise --upgrade

View File

@@ -55,7 +55,29 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/gotify ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_error "There is currently no update path available."
RELEASE=$(curl -s https://api.github.com/repos/gotify/server/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 gotify
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/gotify
wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip
unzip -oq gotify-linux-amd64.zip
rm -rf gotify-linux-amd64.zip
chmod +x gotify-linux-amd64
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start gotify
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -85,7 +85,7 @@ function update_script() {
msg_info "Updating Home Assistant"
source /srv/homeassistant/bin/activate
pip install ${BR}--upgrade homeassistant &>/dev/null
uv pip install ${BR}--upgrade homeassistant &>/dev/null
msg_ok "Updated Home Assistant"
msg_info "Starting Home Assistant"
@@ -121,7 +121,7 @@ function update_script() {
else
filebrowser config init -a '0.0.0.0' &>/dev/null
filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser users add admin changeme --perm.admin &>/dev/null
filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null
fi
msg_ok "Installed FileBrowser"
@@ -142,7 +142,7 @@ WantedBy=default.target" >$service_path
msg_ok "Completed Successfully!\n"
echo -e "FileBrowser should be reachable by going to the following URL.
${BL}http://$IP:8080${CL} admin|changeme\n"
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
exit
fi
}

View File

@@ -105,7 +105,7 @@ function update_script() {
curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null
filebrowser config init -a '0.0.0.0' &>/dev/null
filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser users add admin changeme --perm.admin &>/dev/null
filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null
msg_ok "Installed FileBrowser"
msg_info "Creating Service"
@@ -125,7 +125,7 @@ WantedBy=default.target" >$service_path
msg_ok "Completed Successfully!\n"
echo -e "FileBrowser should be reachable by going to the following URL.
${BL}http://$IP:8080${CL} admin|changeme\n"
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
exit
fi
}

94
ct/homebox.sh Normal file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
__ __ ____
/ / / /___ ____ ___ ___ / __ )____ _ __
/ /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/
/ __ / /_/ / / / / / / __/ /_/ / /_/ /> <
/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="HomeBox"
var_disk="4"
var_cpu="1"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -f /opt/homebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop homebox
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
rm -rf homebox_bak
mv homebox homebox_bak
wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt
chmod +x /opt/homebox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homebox"
msg_info "Starting ${APP}"
systemctl start homebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:7745${CL} \n"

View File

@@ -20,8 +20,8 @@ header_info
echo -e "Loading..."
APP="Jellyseerr"
var_disk="8"
var_cpu="2"
var_ram="2048"
var_cpu="4"
var_ram="4096"
var_os="debian"
var_version="12"
variables
@@ -55,19 +55,46 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/jellyseerr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your Jellyseerr LXC to 4vcpu and 4096RAM for the build process before continuing" 10 75
if ! command -v pnpm &> /dev/null; then
msg_error "pnpm not found. Installing..."
npm install -g pnpm &>/dev/null
else
msg_ok "pnpm is already installed."
fi
msg_info "Updating $APP"
systemctl stop jellyseerr
cd /opt/jellyseerr
output=$(git pull)
git pull &>/dev/null
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date."
then
msg_ok "$APP is already up to date."
systemctl start jellyseerr
exit
fi
CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile --network-timeout 1000000 &>/dev/null
yarn build &>/dev/null
systemctl stop jellyseerr
export CYPRESS_INSTALL_BINARY=0
pnpm install --frozen-lockfile &>/dev/null
export NODE_OPTIONS="--max-old-space-size=3072"
pnpm build &>/dev/null
cat <<EOF >/etc/systemd/system/jellyseerr.service
[Unit]
Description=jellyseerr Service
After=network.target
[Service]
EnvironmentFile=/etc/jellyseerr/jellyseerr.conf
Environment=NODE_ENV=production
Type=exec
WorkingDirectory=/opt/jellyseerr
ExecStart=/usr/bin/node dist/index.js
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start jellyseerr
msg_ok "Updated $APP"
exit
@@ -77,6 +104,11 @@ start
build_container
description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 2048
pct set $CTID -cores 2
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:5055${CL} \n"

View File

@@ -57,8 +57,32 @@ function update_script() {
header_info
if [[ ! -f /etc/systemd/system/keycloak.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP} LXC"
msg_info "Updating packages"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
RELEASE=$(curl -s https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Downloading Keycloak v$RELEASE"
cd /opt
wget -q https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz
$STD tar -xvf keycloak-$RELEASE.tar.gz
msg_info "Merging configuration files"
cp -r keycloak/conf keycloak-$RELEASE
cp -r keycloak/providers keycloak-$RELEASE
cp -r keycloak/themes keycloak-$RELEASE
msg_info "Updating Keycloak"
mv keycloak keycloak.old
mv keycloak-$RELEASE keycloak
msg_info "Delete temporary installation files"
rm keycloak-$RELEASE.tar.gz
rm -rf keycloak.old
msg_info "Restating Keycloak"
systemctl restart keycloak
msg_ok "Updated Successfully"
exit
}

View File

@@ -55,7 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/mafl ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
RELEASE=$(curl -s https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Updating Mafl to v${RELEASE} (Patience)"
systemctl stop mafl

88
ct/memos.sh Normal file
View File

@@ -0,0 +1,88 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
__ ___
/ |/ /__ ____ ___ ____ _____
/ /|_/ / _ \/ __ `__ \/ __ \/ ___/
/ / / / __/ / / / / / /_/ (__ )
/_/ /_/\___/_/ /_/ /_/\____/____/
EOF
}
header_info
echo -e "Loading..."
APP="Memos"
var_disk="7"
var_cpu="2"
var_ram="2048"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/memos ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP (Patience)"
cd /opt/memos
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date."
then
msg_ok "$APP is already up to date."
exit
fi
systemctl stop memos
cd /opt/memos/web
pnpm i --frozen-lockfile &>/dev/null
pnpm build &>/dev/null
cd /opt/memos
mkdir -p /opt/memos/server/dist
cp -r web/dist/* /opt/memos/server/dist/
cp -r web/dist/* /opt/memos/server/router/frontend/dist/
go build -o /opt/memos/memos -tags=embed bin/memos/main.go &>/dev/null
systemctl start memos
msg_ok "Updated $APP"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:9030${CL} \n"

View File

@@ -1,29 +1,30 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
__ ____ __ __ __ __
/ /__/ __ \_____ / //_/_ __/ /_ ___ _________ ___ / /____ _____
/ //_/ / / / ___/ / ,< / / / / __ \/ _ \/ ___/ __ \/ _ \/ __/ _ \/ ___/
/ ,< / /_/ (__ ) / /| / /_/ / /_/ / __/ / / / / / __/ /_/ __(__ )
/_/|_|\____/____/ /_/ |_\__,_/_.___/\___/_/ /_/ /_/\___/\__/\___/____/
__ ___ _____ ____ __
/ |/ /_ __/ ___// __ \ / /
/ /|_/ / / / /\__ \/ / / / / /
/ / / / /_/ /___/ / /_/ / / /___
/_/ /_/\__, //____/\___\_\/_____/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="k0s"
APP="MySQL"
var_disk="4"
var_cpu="2"
var_ram="2048"
var_cpu="1"
var_ram="1024"
var_os="debian"
var_version="11"
var_version="12"
variables
color
catch_errors
@@ -54,7 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/k0s/k0s.yaml ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if [[ ! -f /usr/share/keyrings/mysql.gpg ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null

72
ct/neo4j.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
_ __ __ __ _
/ | / /__ ____ / // / (_)
/ |/ / _ \/ __ \/ // /_/ /
/ /| / __/ /_/ /__ __/ /
/_/ |_/\___/\____/ /_/_/ /
/___/
EOF
}
header_info
echo -e "Loading..."
APP="Neo4j"
var_disk="4"
var_cpu="1"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /etc/neo4j ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} Browser should be reachable by going to the following URL.
${BL}http://${IP}:7474${CL} \n"

View File

@@ -59,9 +59,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
if ! command -v pnpm &> /dev/null; then
msg_info "Installing pnpm"
export NODE_OPTIONS=--openssl-legacy-provider
#export NODE_OPTIONS=--openssl-legacy-provider
npm install -g pnpm@8.15 &>/dev/null
msg_ok "Installed pnpm"
fi
@@ -168,6 +169,7 @@ EOF
msg_info "Starting Services"
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
sed -i 's/su npm npm/su root root/g' /etc/logrotate.d/nginx-proxy-manager
sed -i 's/include-system-site-packages = false/include-system-site-packages = true/g' /opt/certbot/pyvenv.cfg
systemctl enable -q --now openresty
systemctl enable -q --now npm

72
ct/nzbget.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
_ _______ ____ ______ __
/ | / /__ / / __ )/ ____/__ / /_
/ |/ / / / / __ / / __/ _ \/ __/
/ /| / / /__/ /_/ / /_/ / __/ /_
/_/ |_/ /____/_____/\____/\___/\__/
EOF
}
header_info
echo -e "Loading..."
APP="NZBGet"
var_disk="4"
var_cpu="2"
var_ram="2048"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -f /lib/systemd/system/nzbget.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:6789${CL} \n"

72
ct/ollama.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
____ ____
/ __ \/ / /___ _____ ___ ____ _
/ / / / / / __ `/ __ `__ \/ __ `/
/ /_/ / / / /_/ / / / / / / /_/ /
\____/_/_/\__,_/_/ /_/ /_/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Ollama"
var_disk="24"
var_cpu="4"
var_ram="4096"
var_os="ubuntu"
var_version="22.04"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/ollama ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:11434${CL} \n"

85
ct/openwebui.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
____ _ __ __ __ ______
/ __ \____ ___ ____ | | / /__ / /_ / / / / _/
/ / / / __ \/ _ \/ __ \ | | /| / / _ \/ __ \/ / / // /
/ /_/ / /_/ / __/ / / / | |/ |/ / __/ /_/ / /_/ // /
\____/ .___/\___/_/ /_/ |__/|__/\___/_.___/\____/___/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Open WebUI"
var_disk="16"
var_cpu="4"
var_ram="4096"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/open-webui ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP} (Patience)"
cd /opt/open-webui
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date."
then
msg_ok "$APP is already up to date."
exit
fi
systemctl stop open-webui.service
npm install &>/dev/null
export NODE_OPTIONS="--max-old-space-size=3584"
npm run build &>/dev/null
cd ./backend
pip install -r requirements.txt -U &>/dev/null
systemctl start open-webui.service
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:8080${CL} \n"

View File

@@ -67,6 +67,18 @@ function update_script() {
header_info
if [ "$UPD" == "1" ]; then
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "$(gs --version 2>/dev/null)" != "10.04.0" ]]; then
msg_info "Updating Ghostscript"
cd /tmp
wget -q https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz
tar -xzf ghostscript-10.04.0.tar.gz
cd ghostscript-10.04.0
./configure &>/dev/null
make &>/dev/null
sudo make install &>/dev/null
rm -rf /tmp/ghostscript*
msg_ok "Ghostscript updated to 10.04.0"
fi
msg_info "Stopping all Paperless-ngx Services"
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue.service
msg_ok "Stopped all Paperless-ngx Services"

View File

@@ -56,6 +56,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/systemd/system/peanut.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
RELEASE=$(curl -sL https://api.github.com/repos/Brandawg93/PeaNUT/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
@@ -67,6 +68,8 @@ function update_script() {
pnpm i &>/dev/null
pnpm run build &>/dev/null
cp -r .next/static .next/standalone/.next/
mkdir -p /opt/peanut/.next/standalone/config
ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
systemctl start peanut
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"

View File

@@ -56,7 +56,7 @@ function update_script() {
header_info
if [[ ! -d /opt/pingvin-share ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Stopping Pingvin Share"
pm2 stop pingvin-share-backend pingvin-share-frontend &>/dev/null
systemctl stop pm2-root.service
msg_ok "Stopped Pingvin Share"
msg_info "Updating Pingvin Share"
@@ -72,7 +72,7 @@ npm run build &>/dev/null
msg_ok "Updated Pingvin Share"
msg_info "Starting Pingvin Share"
pm2 start pingvin-share-backend pingvin-share-frontend &>/dev/null
systemctl start pm2-root.service
msg_ok "Started Pingvin Share"
msg_ok "Updated Successfully"

View File

@@ -102,7 +102,7 @@ if [ "$UPD" == "3" ]; then
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash &>/dev/null
filebrowser config init -a '0.0.0.0' &>/dev/null
filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser users add admin changeme --perm.admin &>/dev/null
filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null
msg_ok "Installed FileBrowser"
msg_info "Creating Service"
@@ -122,7 +122,7 @@ if [ "$UPD" == "3" ]; then
msg_ok "Completed Successfully!\n"
echo -e "FileBrowser should be reachable by going to the following URL.
${BL}http://$IP:8080${CL} admin|changeme\n"
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
exit
fi
if [ "$UPD" == "4" ]; then

View File

@@ -55,7 +55,30 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/systemd/system/prometheus.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_error "There is currently no update path available."
RELEASE=$(curl -s https://api.github.com/repos/prometheus/prometheus/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 prometheus
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
wget -q https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz
tar -xf prometheus-${RELEASE}.linux-amd64.tar.gz
cd prometheus-${RELEASE}.linux-amd64
cp -rf prometheus promtool /usr/local/bin/
cp -rf consoles/ console_libraries/ /etc/prometheus/
cd ~
rm -rf prometheus-${RELEASE}.linux-amd64 prometheus-${RELEASE}.linux-amd64.tar.gz
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start prometheus
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -55,16 +55,21 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/sabnzbd ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP"
systemctl stop sabnzbd.service
RELEASE=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
systemctl stop sabnzbd.service
tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz) &>/dev/null
\cp -r SABnzbd-${RELEASE}/* /opt/sabnzbd &>/dev/null
rm -rf SABnzbd-${RELEASE}
cd /opt/sabnzbd
python3 -m pip install -r requirements.txt &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
systemctl start sabnzbd.service
msg_ok "Updated $APP"
msg_ok "Updated ${APP} to ${RELEASE}"
else
msg_info "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -75,7 +75,7 @@ if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_v
unzip -q spoolman.zip -d spoolman
cd spoolman
pip3 install -r requirements.txt >/dev/null 2>&1
cp .env.example .env
wget -q https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example -O .env
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"

115
ct/tianji.sh Normal file
View File

@@ -0,0 +1,115 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
_______ _ _
/_ __(_)___ _____ (_|_)
/ / / / __ `/ __ \ / / /
/ / / / /_/ / / / / / / /
/_/ /_/\__,_/_/ /_/_/ /_/
/___/
EOF
}
header_info
echo -e "Loading..."
APP="Tianji"
var_disk="12"
var_cpu="4"
var_ram="4096"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/tianji ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/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
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
msg_info "Stopping ${APP} Service"
systemctl stop tianji
msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
cp /opt/tianji/src/server/.env /opt/.env
mv /opt/tianji /opt/tianji_bak
wget -q "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv tianji-${RELEASE} /opt/tianji
cd tianji
pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile >/dev/null 2>&1
pnpm build:static >/dev/null 2>&1
pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false >/dev/null 2>&1
mkdir -p ./src/server/public >/dev/null 2>&1
cp -r ./geo ./src/server/public >/dev/null 2>&1
pnpm build:server >/dev/null 2>&1
mv /opt/.env /opt/tianji/src/server/.env
cd src/server
pnpm db:migrate:apply >/dev/null 2>&1
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start tianji
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip
rm -rf /opt/tianji_bak
rm -rf /opt/tianji/src/client
rm -rf /opt/tianji/website
rm -rf /opt/tianji/reporter
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
exit
}
start
build_container
description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 1024
pct set $CTID -cores 1
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:12345${CL} \n"

View File

@@ -62,6 +62,7 @@ if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}
tar -C /tmp -xzf traefik*.tar.gz
mv /tmp/traefik /usr/bin/
rm -rf traefik*.tar.gz
systemctl restart traefik.service
msg_ok "Updated $APP LXC"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -55,21 +55,21 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/trilium ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Stopping ${APP}"
systemctl stop trilium.service
sleep 1
msg_ok "Stopped ${APP}"
msg_info "Updating to v${RELEASE}"
wget -q https://github.com/TriliumNext/Notes/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz &>/dev/null
msg_info "Updating to ${RELEASE}"
wget -q https://github.com/TriliumNext/Notes/releases/download/${RELEASE}/TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz
tar -xf TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz
cp -r trilium-linux-x64-server/* /opt/trilium/
msg_ok "Updated to v${RELEASE}"
msg_ok "Updated to ${RELEASE}"
msg_info "Cleaning up"
rm -rf trilium-linux-x64-server-$RELEASE.tar.xz trilium-linux-x64-server
rm -rf TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz trilium-linux-x64-server
msg_ok "Cleaned"
msg_info "Starting ${APP}"

View File

@@ -55,6 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/umami ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit

View File

@@ -57,6 +57,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
VAULT=$(curl -s https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest |
grep "tag_name" |
awk '{print substr($2, 2, length($2)-3) }')
@@ -72,7 +73,7 @@ function update_script() {
header_info
if [ "$UPD" == "1" ]; then
echo -e "\n ⚠️ Ensure you set 4vCPU & 4096MiB RAM minimum!!! \n"
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
msg_info "Stopping Vaultwarden"
systemctl stop vaultwarden.service
msg_ok "Stopped Vaultwarden"

99
ct/wallos.sh Normal file
View File

@@ -0,0 +1,99 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
_ __ ____
| | / /___ _/ / /___ _____
| | /| / / __ `/ / / __ \/ ___/
| |/ |/ / /_/ / / / /_/ (__ )
|__/|__/\__,_/_/_/\____/____/
EOF
}
header_info
echo -e "Loading..."
APP="Wallos"
var_disk="5"
var_cpu="1"
var_ram="1024"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/wallos ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
RELEASE=$(curl -s https://api.github.com/repos/ellite/Wallos/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 "Updating ${APP} to ${RELEASE}"
cd /opt
wget -q "https://github.com/ellite/Wallos/archive/refs/tags/v${RELEASE}.zip"
mv /opt/wallos/db/wallos.db /opt/wallos.db
unzip -q v${RELEASE}.zip
mv Wallos-${RELEASE} /opt/wallos
rm -rf /opt/wallos/db/wallos.empty.db
mv /opt/wallos.db /opt/wallos/db/wallos.db
chown -R www-data:www-data /opt/wallos
chmod -R 755 /opt/wallos
curl http://localhost/endpoints/db/migrate.php &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Reload Apache2"
systemctl reload apache2
msg_ok "Apache2 Reloaded"
msg_info "Cleaning Up"
rm -R /opt/v${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP} ${CL} \n"

View File

@@ -57,6 +57,7 @@ header_info
if [[ ! -f /usr/local/bin/whoogle-search ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP} LXC"
pip3 install whoogle-search --upgrade &>/dev/null
systemctl restart whoogle.service
msg_ok "Updated Successfully"
exit
}

View File

@@ -54,7 +54,11 @@ function default_settings() {
function update_script() {
if [[ ! -d /etc/wireguard ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_error "Update WireGuard via apt"
apt-get update
apt-get -y upgrade
sleep 2
cd /etc/wgdashboard/src
./wgd.sh update
exit
}

View File

@@ -58,6 +58,7 @@ if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then msg_error "No ${APP} Installa
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
systemctl restart zabbix-server
msg_ok "Updated $APP LXC"
exit
}

101
ct/zipline.sh Normal file
View File

@@ -0,0 +1,101 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
_____ _ ___
/__ / (_)___ / (_)___ ___
/ / / / __ \/ / / __ \/ _ \
/ /__/ / /_/ / / / / / / __/
/____/_/ .___/_/_/_/ /_/\___/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Zipline"
var_disk="5"
var_cpu="2"
var_ram="2048"
var_os="debian"
var_version="12"
variables
color
catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() {
header_info
if [[ ! -d /opt/zipline ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
RELEASE=$(curl -s https://api.github.com/repos/diced/zipline/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 zipline
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/zipline/.env /opt/
rm -R /opt/zipline
wget -q "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv zipline-${RELEASE} /opt/zipline
cd /opt/zipline
mv /opt/.env /opt/zipline/.env
yarn install &>/dev/null
yarn build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start zipline
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf v${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:3000${CL} \n"

View File

@@ -20,7 +20,7 @@ header_info
echo -e "Loading..."
APP="Zoraxy"
var_disk="6"
var_cpu="4"
var_cpu="2"
var_ram="2048"
var_os="debian"
var_version="12"
@@ -54,19 +54,21 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/zoraxy/src ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP"
if [[ ! -d /opt/zoraxy/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
RELEASE=$(curl -s https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
systemctl stop zoraxy
cd /opt/zoraxy/src
systemctl stop zoraxy
if git pull | grep -q 'Already up to date.'; then
msg_ok "Already up to date. No update required."
else
go mod tidy
go build
msg_ok "Updated $APP"
fi
wget -q "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64"
rm /opt/zoraxy/zoraxy
mv zoraxy_linux_amd64 /opt/zoraxy/zoraxy
chmod +x /opt/zoraxy/zoraxy
systemctl start zoraxy
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
@@ -74,9 +76,6 @@ start
build_container
description
msg_info "Setting Container to Normal Resources"
pct set $CTID -cores 2
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL.
${BL}http://${IP}:8000${CL} \n"

View File

@@ -35,6 +35,13 @@ msg_ok "Installed Node.js"
msg_info "Installing Actual Budget"
$STD git clone https://github.com/actualbudget/actual-server.git /opt/actualbudget
mkdir -p /opt/actualbudget/server-files
chown -R root:root /opt/actualbudget/server-files
chmod 755 /opt/actualbudget/server-files
cat <<EOF > /opt/actualbudget/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget/server-files
PORT=5006
EOF
cd /opt/actualbudget
$STD yarn install
msg_ok "Installed Actual Budget"
@@ -46,9 +53,14 @@ Description=Actual Budget Service
After=network.target
[Service]
Type=exec
Type=simple
User=root
Group=root
WorkingDirectory=/opt/actualbudget
EnvironmentFile=/opt/actualbudget/.env
ExecStart=/usr/bin/yarn start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,175 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/seanmorley15/AdventureLog
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gpg \
curl \
sudo \
mc \
gdal-bin \
libgdal-dev \
git \
python3-venv \
python3-pip
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Setting up PostgreSQL Repository"
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >/etc/apt/sources.list.d/pgdg.list
msg_ok "Set up PostgreSQL Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm
msg_ok "Installed Node.js"
msg_info "Install/Set up PostgreSQL Database"
$STD apt-get install -y postgresql-16 postgresql-16-postgis
DB_NAME="adventurelog_db"
DB_USER="adventurelog_user"
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
SECRET_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "CREATE EXTENSION IF NOT EXISTS postgis;" $DB_NAME
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
{
echo "AdventureLog-Credentials"
echo "AdventureLog Database User: $DB_USER"
echo "AdventureLog Database Password: $DB_PASS"
echo "AdventureLog Database Name: $DB_NAME"
echo "AdventureLog Secret: $SECRET_KEY"
} >> ~/adventurelog.creds
msg_ok "Set up PostgreSQL"
msg_info "Installing AdventureLog (Patience)"
DJANGO_ADMIN_USER="djangoadmin"
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 -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
cat <<EOF > /opt/adventurelog/backend/server/.env
PGHOST='localhost'
PGDATABASE='${DB_NAME}'
PGUSER='${DB_USER}'
PGPASSWORD='${DB_PASS}'
SECRET_KEY='${SECRET_KEY}'
PUBLIC_URL='http://$LOCAL_IP:8000'
DEBUG=True
FRONTEND_URL='http://$LOCAL_IP:3000'
CSRF_TRUSTED_ORIGINS='http://127.0.0.1:3000,http://localhost:3000,http://$LOCAL_IP:3000'
DJANGO_ADMIN_USERNAME='${DJANGO_ADMIN_USER}'
DJANGO_ADMIN_PASSWORD='${DJANGO_ADMIN_PASS}'
DISABLE_REGISTRATION=False
# EMAIL_BACKEND='email'
# EMAIL_HOST='smtp.gmail.com'
# EMAIL_USE_TLS=False
# EMAIL_PORT=587
# EMAIL_USE_SSL=True
# EMAIL_HOST_USER='user'
# EMAIL_HOST_PASSWORD='password'
# DEFAULT_FROM_EMAIL='user@example.com'
EOF
cd /opt/adventurelog/backend/server
mkdir -p /opt/adventurelog/backend/server/media
$STD pip install --upgrade pip
$STD pip install -r requirements.txt
$STD python3 manage.py collectstatic --noinput
$STD python3 manage.py migrate
$STD python3 manage.py download-countries
cat <<EOF > /opt/adventurelog/frontend/.env
PUBLIC_SERVER_URL=http://$LOCAL_IP:8000
BODY_SIZE_LIMIT=Infinity
ORIGIN='http://$LOCAL_IP:3000'
EOF
cd /opt/adventurelog/frontend
$STD pnpm i
$STD pnpm build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed AdventureLog"
msg_info "Setting up Django Admin"
$STD python3 /opt/adventurelog/backend/server/manage.py shell << EOF
from django.contrib.auth import get_user_model
UserModel = get_user_model()
user = UserModel.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS')
user.is_superuser = True
user.is_staff = True
user.save()
EOF
{
echo ""
echo "Django-Credentials"
echo "Django Admin User: $DJANGO_ADMIN_USER"
echo "Django Admin Password: $DJANGO_ADMIN_PASS"
} >> ~/adventurelog.creds
msg_ok "Setup Django Admin"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/adventurelog-backend.service
[Unit]
Description=AdventureLog Backend Service
After=network.target postgresql.service
[Service]
WorkingDirectory=/opt/adventurelog/backend/server
ExecStart=python3 manage.py runserver 0.0.0.0:8000
Restart=always
EnvironmentFile=/opt/adventurelog/backend/server/.env
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/adventurelog-frontend.service
[Unit]
Description=AdventureLog SvelteKit Frontend Service
After=network.target
[Service]
WorkingDirectory=/opt/adventurelog/frontend
ExecStart=/usr/bin/node build 127.0.0.1:3000
Restart=always
EnvironmentFile=/opt/adventurelog/frontend/.env
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now adventurelog-backend.service
systemctl enable -q --now adventurelog-frontend.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,108 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
git \
expect \
libssl-dev \
libldap2-dev \
libsasl2-dev \
procps \
dnsutils \
ripgrep
msg_ok "Installed Dependencies"
msg_info "Installing Python Dependencies"
$STD apt-get install -y \
python3-pip \
python3-ldap \
python3-msgpack \
python3-regex
msg_ok "Installed Python Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing Playright/Chromium"
$STD pip install playwright
$STD playwright install --with-deps chromium
msg_ok "Installed Playright/Chromium"
msg_info "Installing ArchiveBox"
mkdir -p /opt/archivebox/{data,.npm,.cache,.local}
$STD adduser --system --shell /bin/bash --gecos 'Archive Box User' --group --disabled-password archivebox
chown -R archivebox:archivebox /opt/archivebox/{data,.npm,.cache,.local}
chmod -R 755 /opt/archivebox/data
$STD pip install archivebox
cd /opt/archivebox/data
expect <<EOF
set timeout -1
log_user 0
spawn sudo -u archivebox archivebox setup
expect "Username"
send "\r"
expect "Email address"
send "\r"
expect "Password"
send "helper-scripts.com\r"
expect "Password (again)"
send "helper-scripts.com\r"
expect eof
EOF
msg_ok "Installed ArchiveBox"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/archivebox.service
[Unit]
Description=ArchiveBox Server
After=network.target
[Service]
User=archivebox
WorkingDirectory=/opt/archivebox/data
ExecStart=/usr/local/bin/archivebox server 0.0.0.0:8000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now archivebox.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -26,7 +26,7 @@ msg_info "Installing Nginx"
wget -qO- https://nginx.org/keys/nginx_signing.key | gpg --dearmor >/usr/share/keyrings/nginx-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian $(lsb_release -cs) nginx" >/etc/apt/sources.list.d/nginx.list
$STD apt-get update
$STD apt-get install -y nginx=1.26.1*
$STD apt-get install -y nginx=1.26.2*
msg_ok "Installed Nginx"
RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')

View File

@@ -76,7 +76,9 @@ mkdir /opt/browserless
$STD python3 -m pip install playwright
$STD git clone https://github.com/browserless/chrome /opt/browserless
$STD npm install --prefix /opt/browserless
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps chrome chromium firefox webkit
$STD npm run build --prefix /opt/browserless
$STD npm run build:function --prefix /opt/browserless
$STD npm prune production --prefix /opt/browserless
msg_ok "Installed Browserless & Playwright"
@@ -124,7 +126,7 @@ Wants=browserless.service
Type=simple
WorkingDirectory=/opt/changedetection
Environment=WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
Environment=PLAYWRIGHT_DRIVER_URL=ws://browserless-chrome:3000/chrome?launch={"defaultViewport":{"height":720,"width":1280},"headless":false,"stealth":true}&blockAds=true
Environment=PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch={"defaultViewport":{"height":720,"width":1280},"headless":false,"stealth":true}&blockAds=true
ExecStart=changedetection.io -d /opt/changedetection -p 5000
[Install]
WantedBy=multi-user.target
@@ -135,16 +137,8 @@ cat <<EOF >/etc/systemd/system/browserless.service
Description=browserless service
After=network.target
[Service]
Environment=APP_DIR=/opt/browserless
Environment=PLAYWRIGHT_BROWSERS_PATH=/opt/browserless
Environment=CONNECTION_TIMEOUT=60000
Environment=HOST=127.0.0.1
Environment=LANG="C.UTF-8"
Environment=NODE_ENV=production
Environment=PORT=3000
Environment=WORKSPACE_DIR=/opt/browserless/workspace
WorkingDirectory=/opt/browserless
ExecStart=/opt/browserless/start.sh
ExecStart=/opt/browserless/scripts/start.sh
SyslogIdentifier=browserless
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/cockpit-project/cockpit
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing Cockpit"
source /etc/os-release
echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" >/etc/apt/sources.list.d/backports.list
$STD apt-get update
$STD apt-get install -t ${VERSION_CODENAME}-backports cockpit --no-install-recommends -y
sed -i "s/root//g" /etc/cockpit/disallowed-users
msg_ok "Installed Cockpit"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -22,13 +22,29 @@ $STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing FFmpeg (Patience)"
echo "deb http://deb.debian.org/debian/ sid main" >/etc/apt/sources.list.d/sid.list
wget -q https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
$STD dpkg -i deb-multimedia-keyring_2016.8.1_all.deb
cat <<EOF >/etc/apt/sources.list.d/backports.list
deb https://www.deb-multimedia.org bookworm main non-free
deb https://www.deb-multimedia.org bookworm-backports main
EOF
$STD apt update
DEBIAN_FRONTEND=noninteractive $STD apt install -t sid ffmpeg -y
rm /etc/apt/sources.list.d/sid.list
DEBIAN_FRONTEND=noninteractive $STD apt-get install -t bookworm-backports ffmpeg -y
rm -rf /etc/apt/sources.list.d/backports.list deb-multimedia-keyring_2016.8.1_all.deb
$STD apt update
msg_ok "Installed FFmpeg"
msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
if [[ "$CTTYPE" == "0" ]]; then
chgrp video /dev/dri
chmod 755 /dev/dri
chmod 660 /dev/dri/*
$STD adduser $(id -u -n) video
$STD adduser $(id -u -n) render
fi
msg_ok "Set Up Hardware Acceleration"
msg_info "Installing ErsatzTV"
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt

44
install/evcc-install.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/evcc-io/evcc
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
lsb-release \
gpg
msg_ok "Installed Dependencies"
msg_info "Setting up evcc Repository"
curl -fsSL https://dl.evcc.io/public/evcc/stable/gpg.EAD5D0E07B0EC0FD.key | gpg --dearmor -o /etc/apt/keyrings/evcc-stable.gpg
echo "deb [signed-by=/etc/apt/keyrings/evcc-stable.gpg] https://dl.evcc.io/public/evcc/stable/deb/debian $(lsb_release -cs) main" >/etc/apt/sources.list.d/evcc-stable.list
$STD apt update
msg_ok "evcc Repository setup sucessfully"
msg_info "Installing evcc"
$STD apt install -y evcc
systemctl enable -q --now evcc.service
msg_ok "Installed evcc"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -62,7 +62,6 @@ $STD pip3 wheel --wheel-dir=/wheels -r /opt/frigate/docker/main/requirements-whe
cp -a /opt/frigate/docker/main/rootfs/. /
export TARGETARCH="amd64"
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections
wget -q -O /opt/frigate/docker/main/install_deps.sh https://raw.githubusercontent.com/blakeblackshear/frigate/dev/docker/main/install_deps.sh
$STD /opt/frigate/docker/main/install_deps.sh
$STD apt update
$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
@@ -172,8 +171,6 @@ msg_ok "Installed Coral Object Detection Model"
msg_info "Building Nginx with Custom Modules"
$STD /opt/frigate/docker/main/build_nginx.sh
sed -e '/s6-notifyoncheck/ s/^#*/#/' -i /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
sed -i 's/error_log \/dev\/stdout warn\;/error_log \/dev\/shm\/logs\/nginx\/current warn\;/' /usr/local/nginx/conf/nginx.conf
sed -i 's/access_log \/dev\/stdout main\;/access_log \/dev\/shm\/logs\/nginx\/current main\;/' /usr/local/nginx/conf/nginx.conf
ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
msg_ok "Built Nginx"
@@ -231,6 +228,7 @@ Type=simple
Restart=always
RestartSec=1
User=root
# Environment=PLUS_API_KEY=
ExecStartPre=+rm /dev/shm/logs/frigate/current
ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '"
StandardOutput=file:/dev/shm/logs/frigate/current

View File

@@ -27,7 +27,10 @@ wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-li
$STD unzip gotify-linux-amd64.zip
rm -rf gotify-linux-amd64.zip
chmod +x gotify-linux-amd64
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Gotify"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gotify.service
[Unit]
Description=Gotify
@@ -46,7 +49,7 @@ RestartSec=3
WantedBy=multi-user.target
EOF
systemctl enable -q --now gotify
msg_ok "Installed Gotify"
msg_ok "Created Service"
motd_ssh
customize

View File

@@ -14,21 +14,24 @@ network_check
update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y {git,curl,sudo,mc,bluez,libffi-dev,libssl-dev,libjpeg-dev,zlib1g-dev,autoconf,build-essential,libopenjp2-7,libturbojpeg0-dev,ffmpeg,liblapack3,liblapack-dev,dbus-broker,libpcap-dev,libavdevice-dev,libavformat-dev,libavcodec-dev,libavutil-dev,libavfilter-dev,libmariadb-dev-compat,libatlas-base-dev,python3-pip,python3.12-venv}
$STD apt-get install -y git curl sudo mc bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libturbojpeg0-dev ffmpeg liblapack3 liblapack-dev dbus-broker libpcap-dev libavdevice-dev libavformat-dev libavcodec-dev libavutil-dev libavfilter-dev libmariadb-dev-compat libatlas-base-dev pip python3.12-dev
msg_ok "Installed Dependencies"
msg_info "Installing Home Assistant-Core"
msg_info "Installing UV"
$STD pip install uv
msg_ok "Installed UV"
msg_info "Setting up Home Assistant-Core environment"
mkdir /srv/homeassistant
cd /srv/homeassistant
python3 -m venv .
uv venv . &>/dev/null
source bin/activate
$STD pip install webrtcvad
$STD python3 -m pip install wheel
$STD pip install homeassistant
$STD pip install mysqlclient
$STD pip install psycopg2-binary
msg_ok "Created virtual environment with UV"
msg_info "Installing Home Assistant-Core and packages"
$STD uv pip install webrtcvad wheel homeassistant mysqlclient psycopg2-binary isal
mkdir -p /root/.homeassistant
msg_ok "Installed Home Assistant-Core"
msg_ok "Installed Home Assistant-Core and required packages"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/homeassistant.service
@@ -38,7 +41,8 @@ After=network-online.target
[Service]
Type=simple
WorkingDirectory=/root/.homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/root/.homeassistant"
Environment="PATH=/srv/homeassistant/bin:/usr/local/bin:/usr/bin:/usr/local/bin/uv"
ExecStart=/srv/homeassistant/bin/python3 -m homeassistant --config /root/.homeassistant
Restart=always
RestartForceExitStatus=100
[Install]

View File

@@ -0,0 +1,55 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/sysadminsmedia/homebox
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Homebox"
RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt
chmod +x /opt/homebox
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Homebox"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/homebox.service
[Unit]
Description=Start Homebox Service
After=network.target
[Service]
WorkingDirectory=/opt
ExecStart=/opt/homebox
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now homebox.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -18,8 +18,7 @@ $STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y git
$STD apt-get install -y ca-certificates
$STD apt-get install -y gnupg
$STD apt-get install -y gpg
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
@@ -33,17 +32,18 @@ $STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing Yarn"
$STD npm install -g yarn
msg_ok "Installed Yarn"
msg_info "Installing pnpm"
$STD npm install -g pnpm
msg_ok "Installed pnpm"
msg_info "Installing Jellyseerr (Patience)"
git clone -q https://github.com/Fallenbagel/jellyseerr.git /opt/jellyseerr
cd /opt/jellyseerr
$STD git checkout main
CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile --network-timeout 1000000 &>/dev/null
$STD yarn install
$STD yarn build
export CYPRESS_INSTALL_BINARY=0
$STD pnpm install --frozen-lockfile
export NODE_OPTIONS="--max-old-space-size=3072"
$STD pnpm build
mkdir -p /etc/jellyseerr/
cat <<EOF >/etc/jellyseerr/jellyseerr.conf
PORT=5055
@@ -63,7 +63,7 @@ EnvironmentFile=/etc/jellyseerr/jellyseerr.conf
Environment=NODE_ENV=production
Type=exec
WorkingDirectory=/opt/jellyseerr
ExecStart=/usr/bin/yarn start
ExecStart=/usr/bin/node dist/index.js
[Install]
WantedBy=multi-user.target

View File

@@ -1,43 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing k0s Kubernetes"
$STD bash <(curl -sSLf https://get.k0s.sh)
$STD k0s install controller --single
$STD k0s start
mkdir -p /etc/k0s
k0s config create > /etc/k0s/k0s.yaml
msg_ok "Installed k0s Kubernetes"
read -r -p "Would you like to add Helm Package Manager? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
msg_info "Installing Helm"
$STD bash <(curl -sSLf https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3)
msg_ok "Installed Helm"
fi
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -25,6 +25,31 @@ sed -i 's/^# *\(port *=.*\)/\1/' /etc/mysql/my.cnf
sed -i 's/^bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
msg_ok "Installed MariaDB"
read -r -p "Would you like to add PhpMyAdmin? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing phpMyAdmin"
$STD apt-get install -y \
apache2 \
php \
php-mysqli \
php-mbstring \
php-zip \
php-gd \
php-json \
php-curl
wget -q "https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz"
mkdir -p /var/www/html/phpMyAdmin
tar xf phpMyAdmin-5.2.1-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
SECRET=$(openssl rand -base64 24)
sed -i "s#\$cfg\['blowfish_secret'\] = '';#\$cfg['blowfish_secret'] = '${SECRET}';#" /var/www/html/phpMyAdmin/config.inc.php
chmod 660 /var/www/html/phpMyAdmin/config.inc.php
chown -R www-data:www-data /var/www/html/phpMyAdmin
systemctl restart apache2
msg_ok "Installed phpMyAdmin"
fi
motd_ssh
customize

91
install/memos-install.sh Normal file
View File

@@ -0,0 +1,91 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/usememos/memos
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
build-essential \
git \
curl \
sudo \
tzdata \
mc
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing pnpm"
$STD npm install -g pnpm
msg_ok "Installed pnpm"
msg_info "Installing Golang"
set +o pipefail
GOLANG=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1)
wget -q https://golang.org/dl/$GOLANG
tar -xzf $GOLANG -C /usr/local
ln -s /usr/local/go/bin/go /usr/local/bin/go
set -o pipefail
msg_ok "Installed Golang"
msg_info "Installing Memos (Patience)"
mkdir -p /opt/memos_data
$STD sudo git clone https://github.com/usememos/memos.git /opt/memos
cd /opt/memos/web
$STD pnpm i --frozen-lockfile
$STD pnpm build
cd /opt/memos
mkdir -p /opt/memos/server/dist
cp -r web/dist/* /opt/memos/server/dist/
cp -r web/dist/* /opt/memos/server/router/frontend/dist/
$STD go build -o /opt/memos/memos -tags=embed bin/memos/main.go
msg_ok "Installed Memos"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/memos.service
[Unit]
Description=Memos Server
After=network.target
[Service]
ExecStart=/opt/memos/memos
Environment="MEMOS_MODE=prod"
Environment="MEMOS_PORT=9030"
Environment="MEMOS_DATA=/opt/memos_data"
WorkingDirectory=/opt/memos
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now memos.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

80
install/mysql-install.sh Normal file
View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://www.mysql.com/products/community | https://www.phpmyadmin.net
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
sudo \
lsb-release \
curl \
gnupg \
mc
msg_ok "Installed Dependencies"
msg_info "Installing MySQL"
curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 | gpg --dearmor -o /usr/share/keyrings/mysql.gpg
echo "deb [signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian $(lsb_release -sc) mysql-8.0" >/etc/apt/sources.list.d/mysql.list
$STD apt-get update
export DEBIAN_FRONTEND=noninteractive
$STD apt-get install -y \
mysql-community-client \
mysql-community-server
msg_ok "Installed MySQL"
msg_info "Configure MySQL Server"
ADMIN_PASS="$(openssl rand -base64 18 | cut -c1-13)"
$STD mysql -uroot -p"$ADMIN_PASS" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$ADMIN_PASS'; FLUSH PRIVILEGES;"
echo "" >~/mysql.creds
echo -e "MySQL user: root" >>~/mysql.creds
echo -e "MySQL password: $ADMIN_PASS" >>~/mysql.creds
msg_ok "MySQL Server configured"
read -r -p "Would you like to add PhpMyAdmin? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing phpMyAdmin"
$STD apt-get install -y \
apache2 \
php \
php-mysqli \
php-mbstring \
php-zip \
php-gd \
php-json \
php-curl
wget -q "https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz"
mkdir -p /var/www/html/phpMyAdmin
tar xf phpMyAdmin-5.2.1-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
SECRET=$(openssl rand -base64 24)
sed -i "s#\$cfg\['blowfish_secret'\] = '';#\$cfg['blowfish_secret'] = '${SECRET}';#" /var/www/html/phpMyAdmin/config.inc.php
chmod 660 /var/www/html/phpMyAdmin/config.inc.php
chown -R www-data:www-data /var/www/html/phpMyAdmin
systemctl restart apache2
msg_ok "Installed phpMyAdmin"
fi
msg_info "Start Service"
systemctl enable -q --now mysql
msg_ok "Service started"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

39
install/neo4j-install.sh Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg
msg_ok "Installed Dependencies"
msg_info "Installing Neo4j (patience)"
wget -qO- https://debian.neo4j.com/neotechnology.gpg.key | gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg
echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' > /etc/apt/sources.list.d/neo4j.list
$STD apt-get update
$STD apt-get install -y neo4j
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
systemctl enable -q --now neo4j
msg_ok "Installed Neo4j"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

45
install/nzbget-install.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg
$STD apt-get install -y par2
cat <<EOF >/etc/apt/sources.list.d/non-free.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
EOF
$STD apt-get update
$STD apt-get install -y unrar
rm /etc/apt/sources.list.d/non-free.list
msg_ok "Installed Dependencies"
msg_info "Installing NZBGet"
mkdir -p /etc/apt/keyrings
curl -fsSL https://nzbgetcom.github.io/nzbgetcom.asc | gpg --dearmor -o /etc/apt/keyrings/nzbgetcom.gpg
echo "deb [signed-by=/etc/apt/keyrings/nzbgetcom.gpg] https://nzbgetcom.github.io/deb stable main" >/etc/apt/sources.list.d/nzbgetcom.list
$STD apt-get update
$STD apt-get install -y nzbget
msg_ok "Installed NZBGet"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

96
install/ollama-install.sh Normal file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg
$STD apt-get install -y git
$STD apt-get install -y build-essential
$STD apt-get install -y pkg-config
$STD apt-get install -y cmake
msg_ok "Installed Dependencies"
msg_info "Installing Golang"
$STD wget https://golang.org/dl/go1.23.2.linux-amd64.tar.gz
$STD tar -xzf go1.23.2.linux-amd64.tar.gz -C /usr/local
$STD ln -s /usr/local/go/bin/go /usr/local/bin/go
rm -rf go1.23.2.linux-amd64.tar.gz
msg_ok "Installed Golang"
msg_info "Setting up Intel® Repositories"
mkdir -p /etc/apt/keyrings
curl -fsSL https://repositories.intel.com/gpu/intel-graphics.key | gpg --dearmor -o /etc/apt/keyrings/intel-graphics.gpg
echo "deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" >/etc/apt/sources.list.d/intel-gpu-jammy.list
curl -fsSL https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor -o /etc/apt/keyrings/oneapi-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" >/etc/apt/sources.list.d/oneAPI.list
$STD apt-get update
msg_ok "Set up Intel® Repositories"
msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools,intel-level-zero-gpu,level-zero,level-zero-dev}
if [[ "$CTTYPE" == "0" ]]; then
chgrp video /dev/dri
chmod 755 /dev/dri
chmod 660 /dev/dri/*
$STD adduser $(id -u -n) video
$STD adduser $(id -u -n) render
fi
msg_ok "Set Up Hardware Acceleration"
msg_info "Installing Intel® oneAPI Base Toolkit (Patience)"
$STD apt-get install -y --no-install-recommends intel-basekit-2024.1
msg_ok "Installed Intel® oneAPI Base Toolkit"
msg_info "Installing Ollama (Patience)"
$STD git clone https://github.com/ollama/ollama.git /opt/ollama
cd /opt/ollama
$STD go generate ./...
$STD go build .
msg_ok "Installed Ollama"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
Type=exec
ExecStart=/opt/ollama/ollama serve
Environment=HOME=$HOME
Environment=OLLAMA_INTEL_GPU=true
Environment=OLLAMA_HOST=0.0.0.0
Environment=OLLAMA_NUM_GPU=999
Environment=SYCL_CACHE_PERSISTENT=1
Environment=ZES_ENABLE_SYSMAN=1
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ollama.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,110 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: havardthom
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing Python3 Dependencies"
$STD apt-get install -y --no-install-recommends \
python3 \
python3-pip
msg_ok "Installed Python3 Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing Open WebUI (Patience)"
$STD git clone https://github.com/open-webui/open-webui.git /opt/open-webui
cd /opt/open-webui/backend
$STD pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
$STD pip3 install -r requirements.txt -U
cd /opt/open-webui
cp .env.example .env
cat <<EOF >/opt/open-webui/.env
ENV=prod
ENABLE_OLLAMA_API=false
OLLAMA_BASE_URL=http://0.0.0.0:11434
EOF
$STD npm install
export NODE_OPTIONS="--max-old-space-size=3584"
$STD npm run build
msg_ok "Installed Open WebUI"
read -r -p "Would you like to add Ollama? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Ollama"
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
cat <<EOF >/etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
Type=exec
ExecStart=/usr/bin/ollama serve
Environment=HOME=$HOME
Environment=OLLAMA_HOST=0.0.0.0
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ollama.service
sed -i 's/ENABLE_OLLAMA_API=false/ENABLE_OLLAMA_API=true/g' /opt/open-webui/.env
msg_ok "Installed Ollama"
fi
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/open-webui.service
[Unit]
Description=Open WebUI Service
After=network.target
[Service]
Type=exec
WorkingDirectory=/opt/open-webui
EnvironmentFile=/opt/open-webui/.env
ExecStart=/opt/open-webui/backend/start.sh
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now open-webui.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -40,7 +40,7 @@ $STD apt-get install -y --no-install-recommends \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Python3 Dependencies"
msg_info "Installing Python3 Dependencies (Patience)"
$STD apt-get install -y --no-install-recommends \
python3 \
python3-pip \
@@ -52,7 +52,6 @@ msg_ok "Installed Python3 Dependencies"
msg_info "Installing OCR Dependencies (Patience)"
$STD apt-get install -y --no-install-recommends \
unpaper \
ghostscript \
icc-profiles-free \
qpdf \
liblept5 \
@@ -61,10 +60,18 @@ $STD apt-get install -y --no-install-recommends \
zlib1g \
tesseract-ocr \
tesseract-ocr-eng
cd /tmp
wget -q https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz
$STD tar -xzf ghostscript-10.04.0.tar.gz
cd ghostscript-10.04.0
$STD ./configure
$STD make
$STD sudo make install
msg_ok "Installed OCR Dependencies"
msg_info "Installing JBIG2"
$STD git clone https://github.com/agl/jbig2enc /opt/jbig2enc
$STD git clone https://github.com/ie13/jbig2enc /opt/jbig2enc
cd /opt/jbig2enc
$STD bash ./autogen.sh
$STD bash ./configure
@@ -221,6 +228,7 @@ customize
msg_info "Cleaning up"
rm -rf /opt/paperless/docker
rm -rf /tmp/ghostscript*
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -44,6 +44,15 @@ $STD npm install -g pnpm
$STD pnpm i
$STD pnpm run build
cp -r .next/static .next/standalone/.next/
mkdir -p /opt/peanut/.next/standalone/config
mkdir -p /etc/peanut/
cat <<EOF >/etc/peanut/settings.yml
WEB_HOST: 0.0.0.0
WEB_PORT: 3000
NUT_HOST: 0.0.0.0
NUT_PORT: 3493
EOF
ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
msg_ok "Installed Peanut"
msg_info "Creating Service"
@@ -57,10 +66,10 @@ Restart=always
RestartSec=5
Type=simple
Environment="NODE_ENV=production"
Environment="NUT_HOST=localhost"
Environment="NUT_PORT=3493"
Environment="WEB_HOST=0.0.0.0"
Environment="WEB_PORT=3000"
#Environment="NUT_HOST=localhost"
#Environment="NUT_PORT=3493"
#Environment="WEB_HOST=0.0.0.0"
#Environment="WEB_PORT=3000"
WorkingDirectory=/opt/peanut
ExecStart=node /opt/peanut/.next/standalone/server.js
TimeoutStopSec=30

View File

@@ -43,7 +43,7 @@ fi
ldconfig
cat <<EOF >/opt/photoprism/config/.env
PHOTOPRISM_AUTH_MODE='password'
PHOTOPRISM_ADMIN_PASSWORD='changeme'
PHOTOPRISM_ADMIN_PASSWORD='helper-scripts.com'
PHOTOPRISM_HTTP_HOST='0.0.0.0'
PHOTOPRISM_HTTP_PORT='2342'
PHOTOPRISM_SITE_CAPTION='https://tteck.github.io/Proxmox/'

View File

@@ -49,7 +49,9 @@ msg_ok "Installed PHP Dependencies"
msg_info "Installing Python Dependencies"
$STD apt-get -y install \
python3-pip \
python3-requests
python3-requests \
python3-tz \
python3-tzlocal
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
$STD pip3 install mac-vendor-lookup
$STD pip3 install fritzconnection

View File

@@ -49,7 +49,7 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
cat <<EOF >/etc/unbound/unbound.conf.d/pi-hole.conf
server:
verbosity: 0
interface: 0.0.0.0
interface: 127.0.0.1
port: 5335
do-ip6: no
do-ip4: yes

View File

@@ -47,7 +47,10 @@ sed -i '/"admin.config.smtp.allow-unauthorized-certificates":\|admin.config.smtp
$STD npm install
$STD npm run build
$STD pm2 start --name="pingvin-share-frontend" npm -- run start
$STD pm2 startup
# create and enable pm2-root systemd script
$STD pm2 startup systemd
# save running pm2 processes so pingvin-share can survive reboots
$STD pm2 save
msg_ok "Installed Pingvin Share"
motd_ssh

View File

@@ -30,7 +30,7 @@ msg_info "Installing PostgreSQL"
$STD apt-get update
$STD apt-get install -y postgresql
cat <<EOF >/etc/postgresql/16/main/pg_hba.conf
cat <<EOF >/etc/postgresql/17/main/pg_hba.conf
# PostgreSQL Client Authentication Configuration File
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
@@ -49,7 +49,7 @@ host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
EOF
cat <<EOF >/etc/postgresql/16/main/postgresql.conf
cat <<EOF >/etc/postgresql/17/main/postgresql.conf
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
@@ -58,10 +58,10 @@ cat <<EOF >/etc/postgresql/16/main/postgresql.conf
# FILE LOCATIONS
#------------------------------------------------------------------------------
data_directory = '/var/lib/postgresql/16/main'
hba_file = '/etc/postgresql/16/main/pg_hba.conf'
ident_file = '/etc/postgresql/16/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/16-main.pid'
data_directory = '/var/lib/postgresql/17/main'
hba_file = '/etc/postgresql/17/main/pg_hba.conf'
ident_file = '/etc/postgresql/17/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/17-main.pid'
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
@@ -107,7 +107,7 @@ log_timezone = 'Etc/UTC'
# PROCESS TITLE
#------------------------------------------------------------------------------
cluster_name = '16/main'
cluster_name = '17/main'
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS

View File

@@ -29,6 +29,7 @@ cd prometheus-${RELEASE}.linux-amd64
mv prometheus promtool /usr/local/bin/
mv consoles/ console_libraries/ /etc/prometheus/
mv prometheus.yml /etc/prometheus/prometheus.yml
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Prometheus"
msg_info "Creating Service"

View File

@@ -41,6 +41,7 @@ $STD tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/
mv SABnzbd-${RELEASE} /opt/sabnzbd
cd /opt/sabnzbd
$STD python3 -m pip install -r requirements.txt
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed SABnzbd"
msg_info "Creating Service"

View File

@@ -36,7 +36,6 @@ $STD apt-get install -y \
msg_ok "Installed Python3"
msg_info "Installing Spoolman"
cd /opt
RELEASE=$(wget -q https://github.com/Donkie/Spoolman/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
cd /opt
wget -q https://github.com/Donkie/Spoolman/releases/download/$RELEASE/spoolman.zip
@@ -44,7 +43,7 @@ unzip -q spoolman.zip -d spoolman
rm -rf spoolman.zip
cd spoolman
$STD pip3 install -r requirements.txt
cp .env.example .env
wget -q https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example -O .env
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Spoolman"

View File

@@ -28,7 +28,8 @@ $STD apt-get install -y \
make \
g++ \
unpaper \
ocrmypdf
ocrmypdf \
poppler-utils
msg_ok "Installed Dependencies"
msg_info "Installing LibreOffice Components"

113
install/tianji-install.sh Normal file
View File

@@ -0,0 +1,113 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/msgbyte/tianji
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
postgresql \
python3 \
cmake \
g++ \
build-essential \
curl \
sudo \
git \
make \
gnupg \
ca-certificates \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Node.js"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm@9.7.1
export NODE_OPTIONS="--max_old_space_size=4096"
msg_ok "Installed Node.js"
msg_info "Setting up PostgreSQL"
DB_NAME=tianji_db
DB_USER=tianji
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
TIANJI_SECRET="$(openssl rand -base64 32 | cut -c1-24)"
$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;"
echo "" >>~/tianji.creds
echo -e "Tianji Database User: $DB_USER" >>~/tianji.creds
echo -e "Tianji Database Password: $DB_PASS" >>~/tianji.creds
echo -e "Tianji Database Name: $DB_NAME" >>~/tianji.creds
echo -e "Tianji Secret: $TIANJI_SECRET" >>~/tianji.creds
msg_ok "Set up PostgreSQL"
msg_info "Installing Tianji (Extreme Patience)"
cd /opt
RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv tianji-${RELEASE} /opt/tianji
cd tianji
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
$STD pnpm build:static
$STD pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false
mkdir -p ./src/server/public
cp -r ./geo ./src/server/public
$STD pnpm build:server
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
cat <<EOF >/opt/tianji/src/server/.env
DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public"
JWT_SECRET="$TIANJI_SECRET"
EOF
cd /opt/tianji/src/server
$STD pnpm db:migrate:apply
msg_ok "Installed Tianji"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/tianji.service
[Unit]
Description=Tianji Server
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/tianji/src/server/dist/src/server/main.js
WorkingDirectory=/opt/tianji/src/server
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now tianji.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip
rm -rf /opt/tianji/src/client
rm -rf /opt/tianji/website
rm -rf /opt/tianji/reporter
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -19,11 +19,11 @@ $STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Installing TriliumNext"
wget -q https://github.com/TriliumNext/Notes/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
$STD tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz
wget -q https://github.com/TriliumNext/Notes/releases/download/${RELEASE}/TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz
tar -xf TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz
mv trilium-linux-x64-server /opt/trilium
msg_ok "Installed TriliumNext"
@@ -53,5 +53,5 @@ customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
rm -rf /root/trilium-linux-x64-server-$RELEASE.tar.xz
rm -rf TriliumNextNotes-${RELEASE}-server-linux-x64.tar.xz
msg_ok "Cleaned"

81
install/wallos-install.sh Normal file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/ellite/wallos
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
apache2 \
libapache2-mod-php \
php8.2-{mbstring,gd,curl,intl,imagick,bz2,sqlite3,zip,xml}
msg_ok "Installed Dependencies"
msg_info "Installing Wallos (Patience)"
cd /opt
RELEASE=$(curl -s https://api.github.com/repos/ellite/Wallos/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/ellite/Wallos/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv Wallos-${RELEASE} /opt/wallos
cd /opt/wallos
mv /opt/wallos/db/wallos.empty.db /opt/wallos/db/wallos.db
chown -R www-data:www-data /opt/wallos
chmod -R 755 /opt/wallos
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
cat <<EOF >/etc/apache2/sites-available/wallos.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/wallos
<Directory /opt/wallos>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog \${APACHE_LOG_DIR}/wallos_error.log
CustomLog \${APACHE_LOG_DIR}/wallos_access.log combined
</VirtualHost>
EOF
$STD a2ensite wallos.conf
$STD a2dissite 000-default.conf
$STD systemctl reload apache2
$STD curl http://localhost/endpoints/db/migrate.php
msg_ok "Installed Wallos"
msg_info "Setting up Crontabs"
cat <<EOF > /opt/wallos.cron
0 1 * * * php /opt/wallos/endpoints/cronjobs/updatenextpayment.php >> /var/log/cron/updatenextpayment.log 2>&1
0 2 * * * php /opt/wallos/endpoints/cronjobs/updateexchange.php >> /var/log/cron/updateexchange.log 2>&1
0 8 * * * php /opt/wallos/endpoints/cronjobs/sendcancellationnotifications.php >> /var/log/cron/sendcancellationnotifications.log 2>&1
0 9 * * * php /opt/wallos/endpoints/cronjobs/sendnotifications.php >> /var/log/cron/sendnotifications.log 2>&1
*/2 * * * * php /opt/wallos/endpoints/cronjobs/sendverificationemails.php >> /var/log/cron/sendverificationemail.log 2>&1
*/2 * * * * php /opt/wallos/endpoints/cronjobs/sendresetpasswordemails.php >> /var/log/cron/sendresetpasswordemails.log 2>&1
0 */6 * * * php /opt/wallos/endpoints/cronjobs/checkforupdates.php >> /var/log/cron/checkforupdates.log 2>&1
EOF
crontab /opt/wallos.cron
msg_ok "Crontabs setup"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,96 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/diced/zipline
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
postgresql \
gpg \
curl \
sudo \
mc
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g yarn
msg_ok "Installed Node.js"
msg_info "Setting up PostgreSQL"
DB_NAME=ziplinedb
DB_USER=zipline
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
SECRET_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
echo "" >>~/zipline.creds
echo -e "Zipline Database User: $DB_USER" >>~/zipline.creds
echo -e "Zipline Database Password: $DB_PASS" >>~/zipline.creds
echo -e "Zipline Database Name: $DB_NAME" >>~/zipline.creds
echo -e "Zipline Secret: $SECRET_KEY" >>~/zipline.creds
msg_ok "Set up PostgreSQL"
msg_info "Installing Zipline (Patience)"
cd /opt
RELEASE=$(curl -s https://api.github.com/repos/diced/zipline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv zipline-${RELEASE} /opt/zipline
cd /opt/zipline
mv .env.local.example .env
sudo sed -i "s|CORE_SECRET=.*|CORE_SECRET=\"$SECRET_KEY\"|" /opt/zipline/.env
sudo sed -i "s|CORE_RETURN_HTTPS=.*|CORE_RETURN_HTTPS=false|" /opt/zipline/.env
sudo sed -i "s|CORE_DATABASE_URL=.*|CORE_DATABASE_URL=\"postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME\"|" /opt/zipline/.env
CORE_RETURN_HTTPS=false
$STD yarn install
$STD yarn build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Zipline"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/zipline.service
[Unit]
Description=Zipline Service
After=network.target
[Service]
WorkingDirectory=/opt/zipline
ExecStart=/usr/bin/yarn start
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now zipline.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -17,23 +17,16 @@ msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing Golang"
set +o pipefail
RELEASE=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1)
wget -q https://golang.org/dl/$RELEASE
$STD tar -xzf $RELEASE -C /usr/local
$STD ln -s /usr/local/go/bin/go /usr/local/bin/go
set -o pipefail
msg_ok "Installed Golang"
msg_info "Installing Zoraxy (Patience)"
$STD git clone https://github.com/tobychui/zoraxy /opt/zoraxy
cd /opt/zoraxy/src
$STD go mod tidy
$STD go build
RELEASE=$(curl -s https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
wget -q "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64"
mkdir -p /opt/zoraxy
mv zoraxy_linux_amd64 /opt/zoraxy/zoraxy
chmod +x /opt/zoraxy/zoraxy
ln -s /opt/zoraxy/zoraxy /usr/local/bin/zoraxy
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Zoraxy"
msg_info "Creating Service"
@@ -43,8 +36,8 @@ Description=General purpose request proxy and forwarding tool
After=syslog.target network-online.target
[Service]
ExecStart=/opt/zoraxy/src/./zoraxy
WorkingDirectory=/opt/zoraxy/src/
ExecStart=/opt/zoraxy/./zoraxy
WorkingDirectory=/opt/zoraxy/
Restart=always
[Install]
@@ -57,7 +50,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf $RELEASE
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -588,7 +588,7 @@ EOF
fi
if [ "$CT_TYPE" == "0" ]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" ]]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
lxc.cgroup2.devices.allow: c 226:0 rwm
@@ -600,7 +600,7 @@ lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,creat
EOF
fi
else
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" ]]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
if [[ -e "/dev/dri/renderD128" ]]; then
if [[ -e "/dev/dri/card0" ]]; then
cat <<EOF >>$LXC_CONFIG

View File

@@ -78,7 +78,7 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
else
filebrowser config init -a '0.0.0.0' &>/dev/null
filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser users add admin changeme --perm.admin &>/dev/null
filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null
fi
msg_ok "Installed ${APP} on $hostname"

View File

@@ -5,24 +5,19 @@
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
echo "$(date)"
echo -e "\n $(date)"
excluded_containers=("$@")
function update_container() {
container=$1
name=$(pct exec "$container" hostname)
echo -e "\n [Info] Updating $container : $name \n"
os=$(pct config "$container" | awk '/^ostype/ {print $2}')
if [[ "$os" == "ubuntu" || "$os" == "debian" ]]; then
disk_info=$(pct exec "$container" df /boot | awk 'NR==2{gsub("%","",$5); printf "%s %.1fG %.1fG %.1fG", $5, $3/1024/1024, $2/1024/1024, $4/1024/1024 }')
read -ra disk_info_array <<<"$disk_info"
echo -e "\n[Info] Updating $container : $name - Boot Disk: ${disk_info_array[0]}% full [${disk_info_array[1]}/${disk_info_array[2]} used, ${disk_info_array[3]} free]"
else
echo -e "\n[Info] Updating $container : $name - [No disk info for ${os}]"
fi
case "$os" in
alpine) pct exec "$container" -- ash -c "apk update && apk upgrade" ;;
archlinux) pct exec "$container" -- bash -c "pacman -Syyu --noconfirm" ;;
fedora | rocky | centos | alma) pct exec "$container" -- bash -c "dnf -y update && dnf -y upgrade" ;;
ubuntu | debian | devuan) pct exec "$container" -- bash -c "apt-get update 2>/dev/null | grep 'packages.*upgraded'; apt-get upgrade --dry-run && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" dist-upgrade -y; rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED" ;;
ubuntu | debian | devuan) pct exec "$container" -- bash -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" dist-upgrade -y; rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED" ;;
opensuse) pct exec "$container" -- bash -c "zypper ref && zypper --non-interactive dup" ;;
esac
}
@@ -43,7 +38,6 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
if [ "$template" == "false" ] && [ "$status" == "status: stopped" ]; then
echo -e "[Info] Starting $container"
pct start $container
echo -e "[Info] Waiting For $container To Start"
sleep 5
update_container $container
echo -e "[Info] Shutting down $container"
@@ -54,5 +48,3 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
fi
done
wait
echo -e "Finished, All Containers Updated. \n"

View File

@@ -68,6 +68,7 @@ function update_container() {
archlinux) pct exec "$container" -- bash -c "pacman -Syyu --noconfirm" ;;
fedora | rocky | centos | alma) pct exec "$container" -- bash -c "dnf -y update && dnf -y upgrade" ;;
ubuntu | debian | devuan) pct exec "$container" -- bash -c "apt-get update 2>/dev/null | grep 'packages.*upgraded'; apt list --upgradable && apt-get -yq dist-upgrade 2>&1; rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED" ;;
opensuse) pct exec "$container" -- bash -c "zypper ref && zypper --non-interactive dup" ;;
esac
}

View File

@@ -142,7 +142,6 @@ function default_settings() {
MAC="$GEN_MAC"
VLAN=""
MTU=""
START_VM="no"
echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}"
echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}"
echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}"
@@ -154,7 +153,6 @@ function default_settings() {
echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}"
echo -e "${DGN}Using VLAN: ${BGN}Default${CL}"
echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}"
echo -e "${DGN}Start VM when completed: ${BGN}no${CL}"
echo -e "${BL}Creating an Ubuntu 24.04 VM using the above default settings${CL}"
}
@@ -306,14 +304,6 @@ function advanced_settings() {
exit-script
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
START_VM="yes"
else
echo -e "${DGN}Start VM when completed: ${BGN}no${CL}"
START_VM="no"
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create an Ubuntu 24.04 VM?" --no-button Do-Over 10 58); then
echo -e "${RD}Creating an Ubuntu 24.04 VM using the above advanced settings${CL}"
else
@@ -418,11 +408,6 @@ qm set $VMID \
<a href='https://ko-fi.com/D1D7EP4GF'><img src='https://img.shields.io/badge/&#x2615;-Buy me a coffee-blue' /></a>
</div>" >/dev/null
msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})"
if [ "$START_VM" == "yes" ]; then
msg_info "Starting Ubuntu 24.04 VM"
qm start $VMID
msg_ok "Started Ubuntu 24.04 VM"
fi
msg_ok "Completed Successfully!\n"
echo -e "Setup Cloud-Init before starting \n
More info at https://github.com/tteck/Proxmox/discussions/2072 \n"