Compare commits

...

15 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
57a18aec76 Update CHANGELOG.md (#4215)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-04 18:54:04 +02:00
Adrian-Marian Popoviciu
8fa1743dd6 Code Server: Update misleading name, description and icon. (#4211)
* Update misleading name, description and icon.

* Fix typo in frontend/public/json/coder-code-server.json

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-05-04 18:52:20 +02:00
community-scripts-pr-app[bot]
78bb1ee195 Update versions.json (#4206) 2025-05-04 18:09:45 +02:00
CanbiZ
130031e4f9 add setup_uv 2025-05-04 10:41:59 +02:00
community-scripts-pr-app[bot]
ea9f91036e Update CHANGELOG.md (#4198)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-03 19:14:32 +02:00
Slaviša Arežina
783e7518f8 Fix access URL (#4199) 2025-05-03 18:48:07 +02:00
Slaviša Arežina
64595b08ce Vaultwarden: Enable HTTPS by default (#4197) 2025-05-03 14:48:55 +02:00
community-scripts-pr-app[bot]
43d67cff58 Update versions.json (#4192) 2025-05-03 14:48:16 +02:00
Slaviša Arežina
4ae2eb2bfa Swith updatable to true (#4186) 2025-05-03 14:24:50 +02:00
community-scripts-pr-app[bot]
6220e272af Update CHANGELOG.md (#4185)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-02 23:37:53 +02:00
Bram Suurd
dc36ba409c Changed the random script button to be the same as all the other buttons (#4183) 2025-05-02 17:40:37 +02:00
community-scripts-pr-app[bot]
15deb9c658 Update versions.json (#4175) 2025-05-02 17:38:49 +02:00
community-scripts-pr-app[bot]
07d87334d5 Update CHANGELOG.md (#4182)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-02 16:13:13 +02:00
Slaviša Arežina
39300b2b6e Fix typo in sed command (#4179) 2025-05-02 13:08:56 +02:00
DrDonoso
3b2aa30d48 Fix habitica config path (#4181) 2025-05-02 11:36:14 +02:00
15 changed files with 401 additions and 353 deletions

View File

@@ -14,6 +14,46 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-05-04
### 🌐 Website
- Code Server: Update misleading name, description and icon. [@ArmainAP](https://github.com/ArmainAP) ([#4211](https://github.com/community-scripts/ProxmoxVE/pull/4211))
## 2025-05-03
### 🚀 Updated Scripts
- Vaultwarden: Enable HTTPS by default [@tremor021](https://github.com/tremor021) ([#4197](https://github.com/community-scripts/ProxmoxVE/pull/4197))
- #### 🐞 Bug Fixes
- Vaultwarden: Fix access URL [@tremor021](https://github.com/tremor021) ([#4199](https://github.com/community-scripts/ProxmoxVE/pull/4199))
### 🌐 Website
- #### 📝 Script Information
- SFTPGo: Switch updatable to true on website [@tremor021](https://github.com/tremor021) ([#4186](https://github.com/community-scripts/ProxmoxVE/pull/4186))
## 2025-05-02
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- NetBox: Fix typo in sed command, preventing install [@tremor021](https://github.com/tremor021) ([#4179](https://github.com/community-scripts/ProxmoxVE/pull/4179))
### 🌐 Website
- #### 🐞 Bug Fixes
- Changed the random script button to be the same as all the other buttons [@BramSuurdje](https://github.com/BramSuurdje) ([#4183](https://github.com/community-scripts/ProxmoxVE/pull/4183))
- #### 📝 Script Information
- Habitica: correct config path [@DrDonoso](https://github.com/DrDonoso) ([#4181](https://github.com/community-scripts/ProxmoxVE/pull/4181))
## 2025-05-01 ## 2025-05-01
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -28,6 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL 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 if [[ -f /opt/${APP}_version.txt ]] && [[ "${RELEASE}" == "$(cat /opt/${APP}_version.txt)" ]]; then
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -76,12 +76,12 @@ function update_script() {
msg_ok "Stopped Vaultwarden" msg_ok "Stopped Vaultwarden"
msg_info "Updating Web-Vault to $WVRELEASE" msg_info "Updating Web-Vault to $WVRELEASE"
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/$WVRELEASE/bw_web_$WVRELEASE.tar.gz $STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WVRELEASE"/bw_web_"$WVRELEASE".tar.gz
$STD tar -zxf bw_web_$WVRELEASE.tar.gz -C /opt/vaultwarden/ $STD tar -zxf bw_web_"$WVRELEASE".tar.gz -C /opt/vaultwarden/
msg_ok "Updated Web-Vault" msg_ok "Updated Web-Vault"
msg_info "Cleaning up" msg_info "Cleaning up"
rm bw_web_$WVRELEASE.tar.gz rm bw_web_"$WVRELEASE".tar.gz
msg_ok "Cleaned" msg_ok "Cleaned"
msg_info "Starting Vaultwarden" msg_info "Starting Vaultwarden"
@@ -94,7 +94,7 @@ function update_script() {
if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then
if [[ -z "$NEWTOKEN" ]]; then exit; fi if [[ -z "$NEWTOKEN" ]]; then exit; fi
if ! command -v argon2 >/dev/null 2>&1; then $STD apt-get install -y argon2; fi if ! command -v argon2 >/dev/null 2>&1; then $STD apt-get install -y argon2; fi
TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e) TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e)
sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env
if [[ -f /opt/vaultwarden/data/config.json ]]; then if [[ -f /opt/vaultwarden/data/config.json ]]; then
sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json
@@ -112,4 +112,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}" echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8000${CL}"

View File

@@ -1,39 +0,0 @@
{
"name": "VS Code Server",
"slug": "code-server",
"categories": [1, 20, 11],
"date_created": "2024-05-02",
"type": "addon",
"updateable": false,
"privileged": false,
"interface_port": 8680,
"documentation": null,
"website": null,
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/visual-studio-code.svg",
"config_path": "",
"description": "VS Code Server is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.",
"install_methods": [
{
"type": "default",
"script": "tools/addon/code-server.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within an existing LXC Console",
"type": "warning"
}
]
}

View File

@@ -0,0 +1,42 @@
{
"name": "Coder Code Server",
"slug": "coder-code-server",
"categories": [
1,
20,
11
],
"date_created": "2024-05-02",
"type": "addon",
"updateable": false,
"privileged": false,
"interface_port": 8680,
"documentation": "https://coder.com/docs/code-server",
"website": "https://coder.com/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/coder.svg",
"config_path": "",
"description": "Coder Code Server is an open-source project that enables you to run Visual Studio Code (VS Code) on a remote machine, such as a desktop PC or virtual server. It serves a web-based version of VS Code that you can access from any browser via a URL, allowing remote development without needing an SSH connection. Unlike the official VS Code Server used by vscode.dev for Remote Tunnels, code-server is developed by Coder and operates independently, providing similar capabilities through a self-hosted solution.",
"install_methods": [
{
"type": "default",
"script": "tools/addon/coder-code-server.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within an existing LXC Console",
"type": "warning"
}
]
}

View File

@@ -12,7 +12,7 @@
"documentation": "https://github.com/HabitRPG/habitica/wiki", "documentation": "https://github.com/HabitRPG/habitica/wiki",
"website": "https://habitica.com/", "website": "https://habitica.com/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/habitica.svg", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/habitica.svg",
"config_path": "/etc/headscale/config.yaml", "config_path": "/opt/habitica/config.json",
"description": "Habitica is an open-source habit-building program that treats your life like a role-playing game. Level up as you succeed, lose HP as you fail, and earn Gold to buy weapons and armor!", "description": "Habitica is an open-source habit-building program that treats your life like a role-playing game. Level up as you succeed, lose HP as you fail, and earn Gold to buy weapons and armor!",
"install_methods": [ "install_methods": [
{ {
@@ -35,11 +35,6 @@
{ {
"text": "It takes a minute or two after installation for web UI to start, please be patient.", "text": "It takes a minute or two after installation for web UI to start, please be patient.",
"type": "info" "type": "info"
},
{
"text": "Config file is at `/opt/habitica/config.json`",
"type": "info"
} }
] ]
} }

View File

@@ -6,7 +6,7 @@
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8080, "interface_port": 8080,
"documentation": "https://docs.sftpgo.com/latest/", "documentation": "https://docs.sftpgo.com/latest/",

View File

@@ -1,56 +1,55 @@
{ {
"name": "Vaultwarden", "name": "Vaultwarden",
"slug": "vaultwarden", "slug": "vaultwarden",
"categories": [ "categories": [
6 6
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8000, "interface_port": 8000,
"documentation": null, "documentation": "https://github.com/dani-garcia/vaultwarden/wiki",
"website": "https://github.com/dani-garcia/vaultwarden/", "website": "https://github.com/dani-garcia/vaultwarden/",
"logo": "https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg", "logo": "https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg",
"config_path": "/opt/vaultwarden/.env", "config_path": "/opt/vaultwarden/.env",
"description": "Vaultwarden is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.", "description": "Vaultwarden is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/vaultwarden.sh", "script": "ct/vaultwarden.sh",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 6144, "ram": 6144,
"hdd": 6, "hdd": 6,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
},
{
"type": "alpine",
"script": "ct/alpine-vaultwarden.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 0.5,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": null,
"password": null
}, },
"notes": [ {
{ "type": "alpine",
"text": "Vaultwarden needs to be behind a proxy (Nginx Proxy Manager, Caddy, etc) to obtain HTTPS and to allow clients to connect. If you try to open the web page directly on the new container, the web site will not load", "script": "ct/alpine-vaultwarden.sh",
"type": "warning" "resources": {
}, "cpu": 1,
{ "ram": 256,
"text": "To set the Admin Token, run the command below (or type update) in the LXC Console.", "hdd": 0.5,
"type": "info" "os": "alpine",
} "version": "3.21"
] }
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Application uses self-signed certificate for HTTPS to work and is enabled by default. If you need a different setup, please read the documentation.",
"type": "warning"
},
{
"text": "To set the Admin Token, run the command below (or type update) in the LXC Console.",
"type": "info"
}
]
} }

View File

@@ -1,23 +1,73 @@
[ [
{ {
"name": "stackblitz-labs/bolt.diy", "name": "theonedev/onedev",
"version": "1.0.0-draft", "version": "v11.9.2",
"date": "2025-05-01T11:34:18Z" "date": "2025-05-04T08:05:43Z"
}, },
{ {
"name": "n8n-io/n8n", "name": "semaphoreui/semaphore",
"version": "n8n@1.91.0", "version": "v2.14.8-beta3",
"date": "2025-04-28T15:38:56Z" "date": "2025-05-03T12:14:48Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
}, },
{ {
"name": "Jackett/Jackett", "name": "Jackett/Jackett",
"version": "v0.22.1837", "version": "v0.22.1863",
"date": "2025-05-01T06:01:00Z" "date": "2025-05-04T05:59:06Z"
}, },
{ {
"name": "NodeBB/NodeBB", "name": "ollama/ollama",
"version": "v4.3.0", "version": "v0.6.7-rc2",
"date": "2025-05-01T04:13:41Z" "date": "2025-04-30T20:57:45Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.51.1",
"date": "2025-05-03T21:42:51Z"
},
{
"name": "FreshRSS/FreshRSS",
"version": "1.26.2",
"date": "2025-05-03T20:23:27Z"
},
{
"name": "actualbudget/actual",
"version": "v25.5.0",
"date": "2025-05-03T19:03:17Z"
},
{
"name": "owncast/owncast",
"version": "v0.2.2",
"date": "2025-05-03T18:45:34Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.111",
"date": "2025-05-03T16:25:30Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.10.1",
"date": "2025-05-03T16:03:26Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.16",
"date": "2025-05-03T14:44:01Z"
},
{
"name": "ellite/Wallos",
"version": "v3.0.2",
"date": "2025-05-03T13:38:57Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.0.2",
"date": "2025-05-01T16:10:58Z"
}, },
{ {
"name": "keycloak/keycloak", "name": "keycloak/keycloak",
@@ -25,45 +75,145 @@
"date": "2025-04-30T06:14:22Z" "date": "2025-04-30T06:14:22Z"
}, },
{ {
"name": "syncthing/syncthing", "name": "home-assistant/core",
"version": "v2.0.0-beta.9", "version": "2025.4.4",
"date": "2025-04-12T13:58:29Z" "date": "2025-04-25T07:47:57Z"
}, },
{ {
"name": "ollama/ollama", "name": "blakeblackshear/frigate",
"version": "v0.6.7-rc1", "version": "v0.14.1",
"date": "2025-04-29T18:57:54Z" "date": "2024-08-29T22:32:51Z"
},
{
"name": "kimai/kimai",
"version": "2.33.0",
"date": "2025-05-03T10:33:49Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.7.4",
"date": "2025-05-02T23:41:08Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.3",
"date": "2025-05-02T23:23:25Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.19.0",
"date": "2025-05-02T19:15:25Z"
},
{
"name": "coder/code-server",
"version": "v4.99.4",
"date": "2025-05-02T18:33:09Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.304.0-rc.0",
"date": "2025-05-02T17:29:18Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.0.2",
"date": "2025-05-02T18:11:39Z"
},
{
"name": "forgejo/forgejo",
"version": "v11.0.1",
"date": "2025-05-02T17:10:30Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.80",
"date": "2025-05-02T16:48:15Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.4",
"date": "2025-05-02T13:42:06Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.71.9",
"date": "2025-05-02T12:48:14Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{
"name": "motioneye-project/motioneye",
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.20.8",
"date": "2025-05-02T11:37:05Z"
},
{
"name": "redis/redis",
"version": "8.0.0",
"date": "2025-05-02T11:20:31Z"
},
{
"name": "emqx/emqx",
"version": "e5.9.0",
"date": "2025-05-02T11:07:10Z"
},
{
"name": "apache/couchdb",
"version": "3.5.0-RC1",
"date": "2025-05-02T04:34:23Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.0-rc.14",
"date": "2025-05-01T23:50:42Z"
},
{
"name": "stackblitz-labs/bolt.diy",
"version": "v0.0.7-hf1",
"date": "2025-03-10T20:49:39Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.3.0",
"date": "2025-05-01T18:24:31Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.3.0",
"date": "2025-05-01T16:46:17Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-typeorm-fix",
"date": "2025-05-01T14:47:45Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.0",
"date": "2025-04-28T15:38:56Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.3.0",
"date": "2025-05-01T04:13:41Z"
}, },
{ {
"name": "HabitRPG/habitica", "name": "HabitRPG/habitica",
"version": "v5.36.1", "version": "v5.36.1",
"date": "2025-04-30T19:44:44Z" "date": "2025-04-30T19:44:44Z"
}, },
{
"name": "home-assistant/core",
"version": "2025.4.4",
"date": "2025-04-25T07:47:57Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.0.0",
"date": "2025-04-30T18:37:46Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.2.9",
"date": "2025-04-30T18:32:46Z"
},
{ {
"name": "readeck/readeck", "name": "readeck/readeck",
"version": "0.18.1", "version": "0.18.1",
"date": "2025-04-30T17:44:46Z" "date": "2025-04-30T17:44:46Z"
}, },
{
"name": "ellite/Wallos",
"version": "v3.0.1",
"date": "2025-04-30T17:16:36Z"
},
{ {
"name": "WordPress/WordPress", "name": "WordPress/WordPress",
"version": "6.8.1", "version": "6.8.1",
@@ -79,11 +229,6 @@
"version": "v1.129.0rc1", "version": "v1.129.0rc1",
"date": "2025-04-16T15:18:13Z" "date": "2025-04-16T15:18:13Z"
}, },
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{ {
"name": "Graylog2/graylog2-server", "name": "Graylog2/graylog2-server",
"version": "6.3.0-alpha.2", "version": "6.3.0-alpha.2",
@@ -94,11 +239,6 @@
"version": "jenkins-2.504.1", "version": "jenkins-2.504.1",
"date": "2025-04-30T14:33:59Z" "date": "2025-04-30T14:33:59Z"
}, },
{
"name": "zitadel/zitadel",
"version": "v2.71.8",
"date": "2025-04-25T11:50:04Z"
},
{ {
"name": "cloudflare/cloudflared", "name": "cloudflare/cloudflared",
"version": "2025.4.2", "version": "2025.4.2",
@@ -126,8 +266,8 @@
}, },
{ {
"name": "wazuh/wazuh", "name": "wazuh/wazuh",
"version": "coverity-w17-4.12.0", "version": "coverity-w18-4.12.0",
"date": "2025-04-16T11:20:57Z" "date": "2025-04-30T09:30:26Z"
}, },
{ {
"name": "mattermost/mattermost", "name": "mattermost/mattermost",
@@ -144,11 +284,6 @@
"version": "3.0.0", "version": "3.0.0",
"date": "2025-04-30T06:24:07Z" "date": "2025-04-30T06:24:07Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{ {
"name": "go-gitea/gitea", "name": "go-gitea/gitea",
"version": "v1.25.0-dev", "version": "v1.25.0-dev",
@@ -169,21 +304,11 @@
"version": "v1.5.2", "version": "v1.5.2",
"date": "2025-04-29T20:42:32Z" "date": "2025-04-29T20:42:32Z"
}, },
{
"name": "emqx/emqx",
"version": "e5.9.0-rc.1",
"date": "2025-04-29T20:30:20Z"
},
{ {
"name": "MediaBrowser/Emby.Releases", "name": "MediaBrowser/Emby.Releases",
"version": "4.8.11.0", "version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z" "date": "2025-03-10T06:39:11Z"
}, },
{
"name": "semaphoreui/semaphore",
"version": "v2.14.6",
"date": "2025-04-29T15:18:03Z"
},
{ {
"name": "hargata/lubelog", "name": "hargata/lubelog",
"version": "v1.4.7", "version": "v1.4.7",
@@ -239,16 +364,6 @@
"version": "pmm-6401-v1.116.0", "version": "pmm-6401-v1.116.0",
"date": "2025-04-28T11:30:10Z" "date": "2025-04-28T11:30:10Z"
}, },
{
"name": "redis/redis",
"version": "8.0-rc2-int",
"date": "2025-04-28T09:56:36Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.51.0",
"date": "2025-04-28T09:15:56Z"
},
{ {
"name": "FlowiseAI/Flowise", "name": "FlowiseAI/Flowise",
"version": "flowise@2.2.8", "version": "flowise@2.2.8",
@@ -274,11 +389,6 @@
"version": "v2.21.0", "version": "v2.21.0",
"date": "2025-04-27T16:31:14Z" "date": "2025-04-27T16:31:14Z"
}, },
{
"name": "homarr-labs/homarr",
"version": "v1.18.1",
"date": "2025-04-27T15:17:35Z"
},
{ {
"name": "evcc-io/evcc", "name": "evcc-io/evcc",
"version": "0.203.4", "version": "0.203.4",
@@ -354,21 +464,11 @@
"version": "r7.0.19", "version": "r7.0.19",
"date": "2025-04-24T20:59:43Z" "date": "2025-04-24T20:59:43Z"
}, },
{
"name": "rogerfar/rdt-client",
"version": "v2.0.110",
"date": "2025-04-24T19:11:06Z"
},
{ {
"name": "dotnetfactory/fluid-calendar", "name": "dotnetfactory/fluid-calendar",
"version": "v1.4.0", "version": "v1.4.0",
"date": "2025-04-24T16:20:17Z" "date": "2025-04-24T16:20:17Z"
}, },
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.79",
"date": "2025-04-24T15:53:43Z"
},
{ {
"name": "openobserve/openobserve", "name": "openobserve/openobserve",
"version": "v0.14.6-rc8", "version": "v0.14.6-rc8",
@@ -474,16 +574,6 @@
"version": "v2.15.3", "version": "v2.15.3",
"date": "2025-04-19T23:02:17Z" "date": "2025-04-19T23:02:17Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.20.7",
"date": "2025-04-19T20:35:09Z"
},
{
"name": "theonedev/onedev",
"version": "v11.8.7",
"date": "2025-04-19T11:19:29Z"
},
{ {
"name": "caddyserver/caddy", "name": "caddyserver/caddy",
"version": "v2.10.0", "version": "v2.10.0",
@@ -494,16 +584,6 @@
"version": "v1.0.4", "version": "v1.0.4",
"date": "2025-04-18T16:08:02Z" "date": "2025-04-18T16:08:02Z"
}, },
{
"name": "prometheus/prometheus",
"version": "v3.3.0",
"date": "2025-04-18T13:46:38Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.15",
"date": "2025-04-18T12:58:26Z"
},
{ {
"name": "traefik/traefik", "name": "traefik/traefik",
"version": "v3.3.6", "version": "v3.3.6",
@@ -519,11 +599,6 @@
"version": "v0.93.0", "version": "v0.93.0",
"date": "2025-04-17T20:05:25Z" "date": "2025-04-17T20:05:25Z"
}, },
{
"name": "coder/code-server",
"version": "v4.99.3",
"date": "2025-04-17T18:33:11Z"
},
{ {
"name": "benzino77/tasmocompiler", "name": "benzino77/tasmocompiler",
"version": "v12.6.1", "version": "v12.6.1",
@@ -534,56 +609,26 @@
"version": "v2.35.1", "version": "v2.35.1",
"date": "2025-04-17T14:29:11Z" "date": "2025-04-17T14:29:11Z"
}, },
{
"name": "influxdata/influxdb",
"version": "v3.0.1",
"date": "2025-04-17T14:06:09Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.0-rc.5",
"date": "2025-04-17T13:01:43Z"
},
{ {
"name": "neo4j/neo4j", "name": "neo4j/neo4j",
"version": "2025.04.0", "version": "2025.04.0",
"date": "2025-04-17T11:13:20Z" "date": "2025-04-17T11:13:20Z"
}, },
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.3",
"date": "2025-04-17T10:40:47Z"
},
{ {
"name": "IceWhaleTech/CasaOS", "name": "IceWhaleTech/CasaOS",
"version": "v0.4.15", "version": "v0.4.15",
"date": "2024-12-19T03:19:49Z" "date": "2024-12-19T03:19:49Z"
}, },
{
"name": "forgejo/forgejo",
"version": "v11.0.0",
"date": "2025-04-16T19:25:53Z"
},
{ {
"name": "rabbitmq/rabbitmq-server", "name": "rabbitmq/rabbitmq-server",
"version": "v4.1.0", "version": "v4.1.0",
"date": "2025-04-15T16:18:29Z" "date": "2025-04-15T16:18:29Z"
}, },
{
"name": "Brandawg93/PeaNUT",
"version": "v5.7.2",
"date": "2025-04-15T15:44:49Z"
},
{ {
"name": "slskd/slskd", "name": "slskd/slskd",
"version": "0.22.5", "version": "0.22.5",
"date": "2025-04-15T02:52:26Z" "date": "2025-04-15T02:52:26Z"
}, },
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{ {
"name": "home-assistant/operating-system", "name": "home-assistant/operating-system",
"version": "15.2", "version": "15.2",
@@ -639,11 +684,6 @@
"version": "cassandra-5.0.4", "version": "cassandra-5.0.4",
"date": "2025-04-10T16:32:00Z" "date": "2025-04-10T16:32:00Z"
}, },
{
"name": "linkwarden/linkwarden",
"version": "v2.10.0",
"date": "2025-04-08T12:33:57Z"
},
{ {
"name": "pelican-dev/panel", "name": "pelican-dev/panel",
"version": "v1.0.0-beta19", "version": "v1.0.0-beta19",
@@ -664,11 +704,6 @@
"version": "v1.10.0", "version": "v1.10.0",
"date": "2025-04-07T14:32:15Z" "date": "2025-04-07T14:32:15Z"
}, },
{
"name": "fallenbagel/jellyseerr",
"version": "preview-back-to-axios",
"date": "2025-04-07T09:23:08Z"
},
{ {
"name": "Dolibarr/dolibarr", "name": "Dolibarr/dolibarr",
"version": "21.0.1", "version": "21.0.1",
@@ -684,11 +719,6 @@
"version": "2.0.3", "version": "2.0.3",
"date": "2025-04-06T17:35:41Z" "date": "2025-04-06T17:35:41Z"
}, },
{
"name": "kimai/kimai",
"version": "2.32.0",
"date": "2025-04-06T09:43:51Z"
},
{ {
"name": "jellyfin/jellyfin", "name": "jellyfin/jellyfin",
"version": "v10.10.7", "version": "v10.10.7",
@@ -714,16 +744,6 @@
"version": "v0.55.2", "version": "v0.55.2",
"date": "2025-04-05T12:07:32Z" "date": "2025-04-05T12:07:32Z"
}, },
{
"name": "actualbudget/actual",
"version": "v25.4.0",
"date": "2025-04-05T04:14:57Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.2.1",
"date": "2025-04-04T20:15:48Z"
},
{ {
"name": "Athou/commafeed", "name": "Athou/commafeed",
"version": "5.7.0", "version": "5.7.0",
@@ -864,11 +884,6 @@
"version": "v0.22.1", "version": "v0.22.1",
"date": "2025-03-18T21:01:22Z" "date": "2025-03-18T21:01:22Z"
}, },
{
"name": "apache/couchdb",
"version": "3.4.3.post1",
"date": "2025-03-18T09:44:59Z"
},
{ {
"name": "authelia/authelia", "name": "authelia/authelia",
"version": "v4.39.1", "version": "v4.39.1",
@@ -884,11 +899,6 @@
"version": "2.303", "version": "2.303",
"date": "2025-03-17T04:54:50Z" "date": "2025-03-17T04:54:50Z"
}, },
{
"name": "FreshRSS/FreshRSS",
"version": "1.26.1",
"date": "2025-03-13T21:34:25Z"
},
{ {
"name": "transmission/transmission", "name": "transmission/transmission",
"version": "4.0.1-beta.1", "version": "4.0.1-beta.1",
@@ -1074,11 +1084,6 @@
"version": "v4.4.7", "version": "v4.4.7",
"date": "2025-01-20T15:45:06Z" "date": "2025-01-20T15:45:06Z"
}, },
{
"name": "owncast/owncast",
"version": "v0.2.1",
"date": "2025-01-19T22:40:40Z"
},
{ {
"name": "0xERR0R/blocky", "name": "0xERR0R/blocky",
"version": "v0.25", "version": "v0.25",
@@ -1204,11 +1209,6 @@
"version": "3.1.1", "version": "3.1.1",
"date": "2024-05-30T17:20:53Z" "date": "2024-05-30T17:20:53Z"
}, },
{
"name": "motioneye-project/motioneye",
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{ {
"name": "gnmyt/MySpeed", "name": "gnmyt/MySpeed",
"version": "v1.0.9", "version": "v1.0.9",

View File

@@ -16,7 +16,10 @@ import React from "react";
import { Badge } from "./ui/badge"; import { Badge } from "./ui/badge";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { DialogTitle } from "./ui/dialog"; import { DialogTitle } from "./ui/dialog";
import { Sparkles } from "lucide-react"; // <- Hinzugefügt import { Sparkles } from "lucide-react";
import { TooltipContent, TooltipProvider } from "./ui/tooltip";
import { TooltipTrigger } from "./ui/tooltip";
import { Tooltip } from "./ui/tooltip";
export const formattedBadge = (type: string) => { export const formattedBadge = (type: string) => {
switch (type) { switch (type) {
@@ -111,16 +114,19 @@ export default function CommandMenu() {
</kbd> </kbd>
</Button> </Button>
<Button <TooltipProvider>
variant="outline" <Tooltip delayDuration={100}>
size="icon" <TooltipTrigger asChild>
onClick={openRandomScript} <Button variant="outline" size="icon" onClick={openRandomScript} disabled={isLoading} className="hidden lg:flex">
title="Open random script" <Sparkles className="size-4" />
disabled={isLoading} <span className="sr-only">Open Random Script</span>
className="h-9 w-9" </Button>
> </TooltipTrigger>
<Sparkles className="h-5 w-5" /> <TooltipContent>
</Button> <p>Open Random Script</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div> </div>
<CommandDialog open={open} onOpenChange={setOpen}> <CommandDialog open={open} onOpenChange={setOpen}>

View File

@@ -41,8 +41,8 @@ export default function CodeCopyButton({
return ( return (
<div className="mt-4 flex"> <div className="mt-4 flex">
<Card className="flex items-center overflow-x-auto bg-primary-foreground pl-4"> <Card className="flex items-center overflow-x-auto bg-primary-foreground pl-4 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20">
<div className="overflow-x-auto whitespace-pre-wrap text-nowrap break-all pr-4 text-sm"> <div className="overflow-x-auto whitespace-pre-wrap text-nowrap break-all pr-4 text-sm [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20">
{!isMobile && children ? children : "Copy install command"} {!isMobile && children ? children : "Copy install command"}
</div> </div>
<button <button

View File

@@ -28,6 +28,11 @@ $STD apk add vaultwarden
sed -i -e 's|export WEB_VAULT_ENABLED=.*|export WEB_VAULT_ENABLED=true|' /etc/conf.d/vaultwarden sed -i -e 's|export WEB_VAULT_ENABLED=.*|export WEB_VAULT_ENABLED=true|' /etc/conf.d/vaultwarden
echo -e "export ADMIN_TOKEN=''" >>/etc/conf.d/vaultwarden echo -e "export ADMIN_TOKEN=''" >>/etc/conf.d/vaultwarden
echo -e "export ROCKET_ADDRESS=0.0.0.0" >>/etc/conf.d/vaultwarden echo -e "export ROCKET_ADDRESS=0.0.0.0" >>/etc/conf.d/vaultwarden
echo -e "export ROCKET_TLS='{certs=\"/etc/ssl/certs/vaultwarden-selfsigned.crt\",key=\"/etc/ssl/private/vaultwarden-selfsigned.key\"}'"
$STD openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/ssl/private/vaultwarden-selfsigned.key -out /etc/ssl/certs/vaultwarden-selfsigned.crt -subj "/C=US/O=Vaultwarden/O
U=Domain Control Validated/CN=localhost"
chown vaultwarden:vaultwarden /etc/ssl/certs/vaultwarden-selfsigned.crt
chown vaultwarden:vaultwarden /etc/ssl/private/vaultwarden-selfsigned.key
msg_ok "Installed Alpine-Vaultwarden" msg_ok "Installed Alpine-Vaultwarden"
msg_info "Installing Web-Vault" msg_info "Installing Web-Vault"

View File

@@ -54,7 +54,7 @@ cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/netbox-community/netbox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/netbox-community/netbox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip") curl -fsSL "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip")
unzip -q "v${RELEASE}.zip" unzip -q "v${RELEASE}.zip"
mv /opt/netbox-${RELEASE}/ /opt/netbox mv /opt/netbox-"${RELEASE}"/ /opt/netbox
$STD adduser --system --group netbox $STD adduser --system --group netbox
chown --recursive netbox /opt/netbox/netbox/media/ chown --recursive netbox /opt/netbox/netbox/media/
@@ -68,8 +68,8 @@ ESCAPED_SECRET_KEY=$(printf '%s\n' "$SECRET_KEY" | sed 's/[&/\]/\\&/g')
sed -i 's/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = ["*"]/' /opt/netbox/netbox/netbox/configuration.py sed -i 's/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = ["*"]/' /opt/netbox/netbox/netbox/configuration.py
sed -i "s|SECRET_KEY = ''|SECRET_KEY = '${ESCAPED_SECRET_KEY}'|" /opt/netbox/netbox/netbox/configuration.py sed -i "s|SECRET_KEY = ''|SECRET_KEY = '${ESCAPED_SECRET_KEY}'|" /opt/netbox/netbox/netbox/configuration.py
sed -i "/DATABASE = {/,/}/s/'USER': '[^']*'/'USER': '$DB_USER'/" /opt/netbox/netbox/netbox/configuration.py sed -i "/DATABASES = {/,/}/s/'USER': '[^']*'/'USER': '$DB_USER'/" /opt/netbox/netbox/netbox/configuration.py
sed -i "/DATABASE = {/,/}/s/'PASSWORD': '[^']*'/'PASSWORD': '$DB_PASS'/" /opt/netbox/netbox/netbox/configuration.py sed -i "/DATABASES = {/,/}/s/'PASSWORD': '[^']*'/'PASSWORD': '$DB_PASS'/" /opt/netbox/netbox/netbox/configuration.py
$STD /opt/netbox/upgrade.sh $STD /opt/netbox/upgrade.sh
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
@@ -85,7 +85,7 @@ mv /opt/netbox/contrib/*.service /etc/systemd/system/
systemctl daemon-reload systemctl daemon-reload
systemctl enable -q --now netbox netbox-rq systemctl enable -q --now netbox netbox-rq
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
echo -e "Netbox Secret: \e[32m$SECRET_KEY\e[0m" >>~/netbox.creds echo -e "Netbox Secret: \e[32m$SECRET_KEY\e[0m" >>~/netbox.creds
msg_ok "Installed NetBox" msg_ok "Installed NetBox"

View File

@@ -15,28 +15,23 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get update $STD apt-get update
$STD apt-get -qqy install \ $STD apt-get install -y git \
git \
build-essential \ build-essential \
pkgconf \ pkgconf \
libssl-dev \ libssl-dev \
libmariadb-dev-compat \ libmariadb-dev-compat \
libpq-dev \ libpq-dev \
argon2 argon2 \
ssl-cert
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
WEBVAULT=$(curl -fsSL https://api.github.com/repos/dani-garcia/bw_web_builds/releases/latest | WEBVAULT=$(curl -fsSL https://api.github.com/repos/dani-garcia/bw_web_builds/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
grep "tag_name" | VAULT=$(curl -fsSL https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
awk '{print substr($2, 2, length($2)-3) }')
VAULT=$(curl -fsSL https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest |
grep "tag_name" |
awk '{print substr($2, 2, length($2)-3) }')
msg_info "Installing Rust" msg_info "Installing Rust"
curl -fsSL https://sh.rustup.rs -o rustup-init.sh curl -fsSL https://sh.rustup.rs -o rustup-init.sh
$STD bash rustup-init.sh -y --profile minimal $STD bash rustup-init.sh -y --profile minimal
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc echo 'export PATH="$HOME/.cargo/bin:$PATH"' >>~/.bashrc
export PATH="$HOME/.cargo/bin:$PATH" export PATH="$HOME/.cargo/bin:$PATH"
rm rustup-init.sh rm rustup-init.sh
msg_ok "Installed Rust" msg_ok "Installed Rust"
@@ -54,19 +49,23 @@ mkdir -p /opt/vaultwarden/data
cp target/release/vaultwarden /opt/vaultwarden/bin/ cp target/release/vaultwarden /opt/vaultwarden/bin/
msg_info "Downloading Web-Vault ${WEBVAULT}" msg_info "Downloading Web-Vault ${WEBVAULT}"
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/$WEBVAULT/bw_web_$WEBVAULT.tar.gz $STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WEBVAULT"/bw_web_"$WEBVAULT".tar.gz
$STD tar -xzf bw_web_$WEBVAULT.tar.gz -C /opt/vaultwarden/ $STD tar -xzf bw_web_"$WEBVAULT".tar.gz -C /opt/vaultwarden/
msg_ok "Downloaded Web-Vault ${WEBVAULT}" msg_ok "Downloaded Web-Vault ${WEBVAULT}"
cat <<EOF >/opt/vaultwarden/.env cat <<EOF >/opt/vaultwarden/.env
ADMIN_TOKEN='' ADMIN_TOKEN=''
ROCKET_ADDRESS=0.0.0.0 ROCKET_ADDRESS=0.0.0.0
ROCKET_TLS='{certs="/opt/vaultwarden/ssl-cert-snakeoil.pem",key="/opt/vaultwarden/ssl-cert-snakeoil.key"}'
DATA_FOLDER=/opt/vaultwarden/data DATA_FOLDER=/opt/vaultwarden/data
DATABASE_MAX_CONNS=10 DATABASE_MAX_CONNS=10
WEB_VAULT_FOLDER=/opt/vaultwarden/web-vault WEB_VAULT_FOLDER=/opt/vaultwarden/web-vault
WEB_VAULT_ENABLED=true WEB_VAULT_ENABLED=true
EOF EOF
mv /etc/ssl/certs/ssl-cert-snakeoil.pem /opt/vaultwarden/
mv /etc/ssl/private/ssl-cert-snakeoil.key /opt/vaultwarden/
msg_info "Creating Service" msg_info "Creating Service"
chown -R vaultwarden:vaultwarden /opt/vaultwarden/ chown -R vaultwarden:vaultwarden /opt/vaultwarden/
chown root:root /opt/vaultwarden/bin/vaultwarden chown root:root /opt/vaultwarden/bin/vaultwarden

View File

@@ -6,7 +6,7 @@
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info { function header_info {
cat <<"EOF" cat <<"EOF"
______ __ _____ ______ __ _____
/ ____/___ ____/ /__ / ___/___ ______ _____ _____ / ____/___ ____/ /__ / ___/___ ______ _____ _____
/ / / __ \/ __ / _ \ \__ \/ _ \/ ___/ | / / _ \/ ___/ / / / __ \/ __ / _ \ \__ \/ _ \/ ___/ | / / _ \/ ___/
@@ -26,7 +26,7 @@ CL=$(echo "\033[m")
BFR="\\r\\033[K" BFR="\\r\\033[K"
HOLD="-" HOLD="-"
CM="${GN}${CL}" CM="${GN}${CL}"
APP="Code Server" APP="Coder Code Server"
hostname="$(hostname)" hostname="$(hostname)"
set -o errexit set -o errexit
set -o errtrace set -o errtrace
@@ -37,40 +37,40 @@ alias die='EXIT=$? LINE=$LINENO error_exit'
trap die ERR trap die ERR
function error_exit() { function error_exit() {
trap - ERR trap - ERR
local reason="Unknown failure occured." local reason="Unknown failure occured."
local msg="${1:-$reason}" local msg="${1:-$reason}"
local flag="${RD}‼ ERROR ${CL}$EXIT@$LINE" local flag="${RD}‼ ERROR ${CL}$EXIT@$LINE"
echo -e "$flag $msg" 1>&2 echo -e "$flag $msg" 1>&2
exit $EXIT exit "$EXIT"
} }
clear clear
header_info header_info
if command -v pveversion >/dev/null 2>&1; then if command -v pveversion >/dev/null 2>&1; then
echo -e "⚠️ Can't Install on Proxmox " echo -e "⚠️ Can't Install on Proxmox "
exit exit
fi fi
if [ -e /etc/alpine-release ]; then if [ -e /etc/alpine-release ]; then
echo -e "⚠️ Can't Install on Alpine" echo -e "⚠️ Can't Install on Alpine"
exit exit
fi fi
while true; do while true; do
read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn
case $yn in case $yn in
[Yy]*) break ;; [Yy]*) break ;;
[Nn]*) exit ;; [Nn]*) exit ;;
*) echo "Please answer yes or no." ;; *) echo "Please answer yes or no." ;;
esac esac
done done
function msg_info() { function msg_info() {
local msg="$1" local msg="$1"
echo -ne " ${HOLD} ${YW}${msg}..." echo -ne " ${HOLD} ${YW}${msg}..."
} }
function msg_ok() { function msg_ok() {
local msg="$1" local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}" echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
} }
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
@@ -80,22 +80,22 @@ apt-get install -y git &>/dev/null
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
VERSION=$(curl -fsSL https://api.github.com/repos/coder/code-server/releases/latest | VERSION=$(curl -fsSL https://api.github.com/repos/coder/code-server/releases/latest |
grep "tag_name" | grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }') awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing Code-Server v${VERSION}" msg_info "Installing Code-Server v${VERSION}"
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server_${VERSION}_amd64.deb &>/dev/null curl -fOL https://github.com/coder/code-server/releases/download/v"$VERSION"/code-server_"${VERSION}"_amd64.deb &>/dev/null
dpkg -i code-server_${VERSION}_amd64.deb &>/dev/null dpkg -i code-server_"${VERSION}"_amd64.deb &>/dev/null
rm -rf code-server_${VERSION}_amd64.deb rm -rf code-server_"${VERSION}"_amd64.deb
mkdir -p ~/.config/code-server/ mkdir -p ~/.config/code-server/
systemctl enable -q --now code-server@$USER systemctl enable -q --now code-server@"$USER"
cat <<EOF >~/.config/code-server/config.yaml cat <<EOF >~/.config/code-server/config.yaml
bind-addr: 0.0.0.0:8680 bind-addr: 0.0.0.0:8680
auth: none auth: none
password: password:
cert: false cert: false
EOF EOF
systemctl restart code-server@$USER systemctl restart code-server@"$USER"
msg_ok "Installed Code-Server v${VERSION} on $hostname" msg_ok "Installed Code-Server v${VERSION} on $hostname"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${APP} should be reachable by going to the following URL.