Compare commits
3 Commits
main
...
refactor_l
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4008ec5439 | ||
![]() |
ecc96cb327 | ||
![]() |
e9da20f40e |
16
CHANGELOG.md
16
CHANGELOG.md
@ -18,13 +18,10 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|
||||||
- Backrest ([#4766](https://github.com/community-scripts/ProxmoxVE/pull/4766))
|
- Pulse ([#4728](https://github.com/community-scripts/ProxmoxVE/pull/4728))
|
||||||
- Pulse ([#4728](https://github.com/community-scripts/ProxmoxVE/pull/4728))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
- Alpine-Vaultwarden: Increase min disk requirements to 1GB [@neyzm](https://github.com/neyzm) ([#4764](https://github.com/community-scripts/ProxmoxVE/pull/4764))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- lldap: fix update-check [@MickLesk](https://github.com/MickLesk) ([#4742](https://github.com/community-scripts/ProxmoxVE/pull/4742))
|
- lldap: fix update-check [@MickLesk](https://github.com/MickLesk) ([#4742](https://github.com/community-scripts/ProxmoxVE/pull/4742))
|
||||||
@ -33,17 +30,6 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
|
|
||||||
- Big NodeJS Update: Use Helper Function on all Install-Scripts [@MickLesk](https://github.com/MickLesk) ([#4744](https://github.com/community-scripts/ProxmoxVE/pull/4744))
|
- Big NodeJS Update: Use Helper Function on all Install-Scripts [@MickLesk](https://github.com/MickLesk) ([#4744](https://github.com/community-scripts/ProxmoxVE/pull/4744))
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- merge MariaDB to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4753](https://github.com/community-scripts/ProxmoxVE/pull/4753))
|
|
||||||
- merge PostgreSQL to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4752](https://github.com/community-scripts/ProxmoxVE/pull/4752))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 📝 Script Information
|
|
||||||
|
|
||||||
- Increase default RAM allocation for BunkerWeb to 8192MB [@TheophileDiot](https://github.com/TheophileDiot) ([#4762](https://github.com/community-scripts/ProxmoxVE/pull/4762))
|
|
||||||
|
|
||||||
## 2025-05-26
|
## 2025-05-26
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
@ -9,7 +9,7 @@ APP="Alpine-Vaultwarden"
|
|||||||
var_tags="${var_tags:-alpine;vault}"
|
var_tags="${var_tags:-alpine;vault}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-0.5}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.21}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: ksad (enirys31)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://garethgeorge.github.io/backrest/
|
|
||||||
|
|
||||||
APP="Backrest"
|
|
||||||
var_tags="${var_tags:-backup}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-512}"
|
|
||||||
var_disk="${var_disk:-8}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/backrest ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/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 backrest
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
rm -f /opt/backrest/bin/backrest
|
|
||||||
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
|
||||||
tar xzf $temp_file -C /opt/backrest/bin
|
|
||||||
chmod +x /opt/backrest/bin/backrest
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
|
||||||
systemctl start backrest
|
|
||||||
msg_ok "Started ${APP}"
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
msg_ok "Cleaned up"
|
|
||||||
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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9898${CL}"
|
|
@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
APP="BunkerWeb"
|
APP="BunkerWeb"
|
||||||
var_tags="${var_tags:-webserver}"
|
var_tags="${var_tags:-webserver}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-8192}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
@ -55,4 +55,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}/setup${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"
|
@ -1,6 +0,0 @@
|
|||||||
____ __ __
|
|
||||||
/ __ )____ ______/ /__________ _____/ /_
|
|
||||||
/ __ / __ `/ ___/ //_/ ___/ _ \/ ___/ __/
|
|
||||||
/ /_/ / /_/ / /__/ ,< / / / __(__ ) /_
|
|
||||||
/_____/\__,_/\___/_/|_/_/ \___/____/\__/
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://linkwarden.app/
|
# Source: https://linkwarden.app/
|
||||||
|
|
||||||
APP="Linkwarden"
|
APP="Linkwarden"
|
||||||
var_tags="${var_tags:-bookmark}"
|
var_tags="${var_tags:-bookmark}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_disk="${var_disk:-12}"
|
var_disk="${var_disk:-12}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
@ -27,48 +27,36 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
|
||||||
NODE_VERSION="22"
|
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||||
NODE_MODULE="yarn@latest"
|
|
||||||
install_node_and_modules
|
|
||||||
|
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop linkwarden
|
systemctl stop linkwarden
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating Rust"
|
RUST_CRATES="monolith" install_rust_and_crates
|
||||||
$STD apt-get install -y build-essential
|
|
||||||
$STD curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
||||||
source $HOME/.cargo/env
|
|
||||||
echo 'export PATH=/usr/local/cargo/bin:$PATH' >>/etc/profile
|
|
||||||
source /etc/profile
|
|
||||||
$STD cargo install monolith
|
|
||||||
msg_ok "Updated Rust"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cd /opt
|
|
||||||
mv /opt/linkwarden/.env /opt/.env
|
mv /opt/linkwarden/.env /opt/.env
|
||||||
rm -rf /opt/linkwarden
|
rm -rf /opt/linkwarden
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
||||||
curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip
|
|
||||||
unzip -q ${RELEASE}.zip
|
|
||||||
mv linkwarden-${RELEASE:1} /opt/linkwarden
|
|
||||||
cd /opt/linkwarden
|
cd /opt/linkwarden
|
||||||
$STD yarn
|
$STD yarn
|
||||||
$STD npx playwright install-deps
|
$STD npx playwright install-deps
|
||||||
$STD yarn playwright install
|
$STD yarn playwright install
|
||||||
cp /opt/.env /opt/linkwarden/.env
|
mv /opt/.env /opt/linkwarden/.env
|
||||||
$STD yarn prisma:generate
|
$STD yarn prisma:generate
|
||||||
$STD yarn web:build
|
$STD yarn web:build
|
||||||
$STD yarn prisma:deploy
|
$STD yarn prisma:deploy
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start linkwarden
|
systemctl start linkwarden
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf /opt/${RELEASE}.zip
|
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
||||||
|
rm -rf /root/.cache/yarn
|
||||||
|
rm -rf /opt/linkwarden/.next/cache
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Backrest",
|
|
||||||
"slug": "backrest",
|
|
||||||
"categories": [
|
|
||||||
7
|
|
||||||
],
|
|
||||||
"date_created": "2025-05-27",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 9898,
|
|
||||||
"documentation": "https://garethgeorge.github.io/backrest/introduction/getting-started",
|
|
||||||
"website": "https://garethgeorge.github.io/backrest",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/backrest.webp",
|
|
||||||
"config_path": "/opt/backrest/config/config.json",
|
|
||||||
"description": "Backrest is a web-accessible backup solution built on top of restic and providing a WebUI which wraps the restic CLI and makes it easy to create repos, browse snapshots, and restore files. Additionally, Backrest can run in the background and take an opinionated approach to scheduling snapshots and orchestrating repo health operations.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/backrest.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 512,
|
|
||||||
"hdd": 8,
|
|
||||||
"os": "debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"text": "`cat ~/.ssh/id_ed25519.pub` to view ssh public key. This key is used to authenticate with sftp targets. You can add this key on the sftp server."
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -20,7 +20,7 @@
|
|||||||
"script": "ct/bunkerweb.sh",
|
"script": "ct/bunkerweb.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 8192,
|
"ram": 4096,
|
||||||
"hdd": 4,
|
"hdd": 4,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 12,
|
"hdd": 12,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 0.5,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.21"
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,11 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
|
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
lsb-release
|
lsb-release \
|
||||||
|
gpg
|
||||||
|
|
||||||
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
|
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
|
||||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
|
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
@ -23,11 +26,10 @@ $STD apt-get update
|
|||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
nginx \
|
nginx \
|
||||||
composer \
|
composer \
|
||||||
php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,intl,mbstring,mysql,xml,cli}
|
php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,intl,mbstring,mysql,xml,cli} \
|
||||||
|
mariadb-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
msg_info "Setting up Database"
|
||||||
DB_NAME=2fauth_db
|
DB_NAME=2fauth_db
|
||||||
DB_USER=2fauth
|
DB_USER=2fauth
|
||||||
|
@ -25,9 +25,10 @@ $STD apt-get install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||||
PG_VERSION="16" PG_MODULES="postgis" install_postgresql
|
PG_VERSION="16" install_postgresql
|
||||||
|
|
||||||
msg_info "Set up PostgreSQL Database"
|
msg_info "Install/Set up PostgreSQL Database"
|
||||||
|
$STD apt-get install -y postgresql-16-postgis
|
||||||
DB_NAME="adventurelog_db"
|
DB_NAME="adventurelog_db"
|
||||||
DB_USER="adventurelog_user"
|
DB_USER="adventurelog_user"
|
||||||
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
||||||
|
@ -14,32 +14,31 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
build-essential \
|
build-essential \
|
||||||
jq \
|
jq \
|
||||||
libcairo2-dev \
|
libcairo2-dev \
|
||||||
libturbojpeg0 \
|
libturbojpeg0 \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libtool-bin \
|
libtool-bin \
|
||||||
libossp-uuid-dev \
|
libossp-uuid-dev \
|
||||||
libvncserver-dev \
|
libvncserver-dev \
|
||||||
freerdp2-dev \
|
freerdp2-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libtelnet-dev \
|
libtelnet-dev \
|
||||||
libwebsockets-dev \
|
libwebsockets-dev \
|
||||||
libpulse-dev \
|
libpulse-dev \
|
||||||
libvorbis-dev \
|
libvorbis-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libpango1.0-dev \
|
libpango1.0-dev \
|
||||||
libswscale-dev \
|
libswscale-dev \
|
||||||
libavcodec-dev \
|
libavcodec-dev \
|
||||||
libavutil-dev \
|
libavutil-dev \
|
||||||
libavformat-dev \
|
libavformat-dev \
|
||||||
default-jdk
|
mariadb-server \
|
||||||
|
default-jdk
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setup Apache Tomcat"
|
msg_info "Setup Apache Tomcat"
|
||||||
RELEASE=$(curl -fsSL https://dlcdn.apache.org/tomcat/tomcat-9/ | grep -oP '(?<=href=")v[^"/]+(?=/")' | sed 's/^v//' | sort -V | tail -n1)
|
RELEASE=$(curl -fsSL https://dlcdn.apache.org/tomcat/tomcat-9/ | grep -oP '(?<=href=")v[^"/]+(?=/")' | sed 's/^v//' | sort -V | tail -n1)
|
||||||
mkdir -p /opt/apache-guacamole/tomcat9
|
mkdir -p /opt/apache-guacamole/tomcat9
|
||||||
@ -80,19 +79,19 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "Guacamole-Credentials"
|
echo "Guacamole-Credentials"
|
||||||
echo "Database User: $DB_USER"
|
echo "Database User: $DB_USER"
|
||||||
echo "Database Password: $DB_PASS"
|
echo "Database Password: $DB_PASS"
|
||||||
echo "Database Name: $DB_NAME"
|
echo "Database Name: $DB_NAME"
|
||||||
} >>~/guacamole.creds
|
} >>~/guacamole.creds
|
||||||
cd guacamole-auth-jdbc-1.5.5/mysql/schema
|
cd guacamole-auth-jdbc-1.5.5/mysql/schema
|
||||||
cat *.sql | mysql -u root ${DB_NAME}
|
cat *.sql | mysql -u root ${DB_NAME}
|
||||||
{
|
{
|
||||||
echo "mysql-hostname: 127.0.0.1"
|
echo "mysql-hostname: 127.0.0.1"
|
||||||
echo "mysql-port: 3306"
|
echo "mysql-port: 3306"
|
||||||
echo "mysql-database: $DB_NAME"
|
echo "mysql-database: $DB_NAME"
|
||||||
echo "mysql-username: $DB_USER"
|
echo "mysql-username: $DB_USER"
|
||||||
echo "mysql-password: $DB_PASS"
|
echo "mysql-password: $DB_PASS"
|
||||||
|
|
||||||
} >>/etc/guacamole/guacamole.properties
|
} >>/etc/guacamole/guacamole.properties
|
||||||
msg_ok "Setup Database"
|
msg_ok "Setup Database"
|
||||||
|
@ -37,7 +37,7 @@ $STD apt-get install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
setup_uv
|
setup_uv
|
||||||
PG_VERSION="16" PG_MODULES="contrib" install_postgresql
|
PG_VERSION="16" install_postgresql
|
||||||
NODE_VERSION="22" install_node_and_modules
|
NODE_VERSION="22" install_node_and_modules
|
||||||
install_go
|
install_go
|
||||||
|
|
||||||
@ -61,7 +61,8 @@ cat <<EOF >/etc/GeoIP.conf
|
|||||||
EOF
|
EOF
|
||||||
msg_ok "Installed GeoIP"
|
msg_ok "Installed GeoIP"
|
||||||
|
|
||||||
msg_info "Setup PostgreSQL Database"
|
msg_info "Installing PostgreSQL"
|
||||||
|
$STD apt-get install -y postgresql-16 postgresql-contrib-16
|
||||||
DB_NAME="authentik"
|
DB_NAME="authentik"
|
||||||
DB_USER="authentik"
|
DB_USER="authentik"
|
||||||
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
|
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: ksad (enirys31)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://garethgeorge.github.io/backrest/
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
msg_info "Installing Backrest"
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
mkdir -p /opt/backrest/{bin,config,data}
|
|
||||||
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
|
||||||
tar xzf $temp_file -C /opt/backrest/bin
|
|
||||||
chmod +x /opt/backrest/bin/backrest
|
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
|
||||||
msg_ok "Installed Backrest"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/backrest.service
|
|
||||||
[Unit]
|
|
||||||
Description=Backrest
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=root
|
|
||||||
ExecStart=/opt/backrest/bin/backrest
|
|
||||||
Environment="BACKREST_PORT=9898"
|
|
||||||
Environment="BACKREST_CONFIG=/opt/backrest/config/config.json"
|
|
||||||
Environment="BACKREST_DATA=/opt/backrest/data"
|
|
||||||
Environment="XDG_CACHE_HOME=/opt/backrest/cache"
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now backrest
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -15,26 +15,25 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
postgresql \
|
||||||
libapache2-mod-php \
|
apache2 \
|
||||||
php-{pgsql,dom}
|
libapache2-mod-php \
|
||||||
|
php-{pgsql,dom}
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PG_VERSION="16" install_postgresql
|
msg_info "Setting up PostgreSQL"
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL Database"
|
|
||||||
DB_NAME=baikal
|
DB_NAME=baikal
|
||||||
DB_USER=baikal
|
DB_USER=baikal
|
||||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
DB_PASS=$(openssl rand -base64 18 | 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 ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
|
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
|
||||||
{
|
{
|
||||||
echo "Baikal Credentials"
|
echo "Baikal Credentials"
|
||||||
echo "Baikal Database User: $DB_USER"
|
echo "Baikal Database User: $DB_USER"
|
||||||
echo "Baikal Database Password: $DB_PASS"
|
echo "Baikal Database Password: $DB_PASS"
|
||||||
echo "Baikal Database Name: $DB_NAME"
|
echo "Baikal Database Name: $DB_NAME"
|
||||||
} >>~/baikal.creds
|
} >>~/baikal.creds
|
||||||
msg_ok "Set up PostgreSQL Database"
|
msg_ok "Set up PostgreSQL"
|
||||||
|
|
||||||
msg_info "Installing Baikal"
|
msg_info "Installing Baikal"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
@ -15,16 +15,15 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies (Patience)"
|
msg_info "Installing Dependencies (Patience)"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
unzip \
|
unzip \
|
||||||
apache2 \
|
mariadb-server \
|
||||||
php8.2-{mbstring,gd,fpm,curl,intl,ldap,tidy,bz2,mysql,zip,xml} \
|
apache2 \
|
||||||
composer \
|
php8.2-{mbstring,gd,fpm,curl,intl,ldap,tidy,bz2,mysql,zip,xml} \
|
||||||
libapache2-mod-php \
|
composer \
|
||||||
make
|
libapache2-mod-php \
|
||||||
|
make
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
msg_info "Setting up Database"
|
||||||
DB_NAME=bookstack
|
DB_NAME=bookstack
|
||||||
DB_USER=bookstack
|
DB_USER=bookstack
|
||||||
@ -33,10 +32,10 @@ $STD sudo mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD sudo mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
$STD sudo mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
$STD sudo mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD sudo mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "Bookstack-Credentials"
|
echo "Bookstack-Credentials"
|
||||||
echo "Bookstack Database User: $DB_USER"
|
echo "Bookstack Database User: $DB_USER"
|
||||||
echo "Bookstack Database Password: $DB_PASS"
|
echo "Bookstack Database Password: $DB_PASS"
|
||||||
echo "Bookstack Database Name: $DB_NAME"
|
echo "Bookstack Database Name: $DB_NAME"
|
||||||
} >>~/bookstack.creds
|
} >>~/bookstack.creds
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
|
@ -16,11 +16,10 @@ update_os
|
|||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
php-imap \
|
php-imap \
|
||||||
debconf-utils
|
debconf-utils \
|
||||||
|
mariadb-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
msg_info "Setting up Database"
|
||||||
ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
$STD sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$ROOT_PASS'); flush privileges;"
|
$STD sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$ROOT_PASS'); flush privileges;"
|
||||||
|
@ -18,14 +18,13 @@ curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/p
|
|||||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list
|
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
apache2 \
|
||||||
libapache2-mod-php8.4 \
|
libapache2-mod-php8.4 \
|
||||||
php8.4-{bcmath,cli,intl,curl,zip,gd,xml,mbstring,mysql} \
|
php8.4-{bcmath,cli,intl,curl,zip,gd,xml,mbstring,mysql} \
|
||||||
composer
|
mariadb-server \
|
||||||
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up database"
|
msg_info "Setting up database"
|
||||||
DB_NAME=firefly
|
DB_NAME=firefly
|
||||||
DB_USER=firefly
|
DB_USER=firefly
|
||||||
@ -35,10 +34,10 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "Firefly-Credentials"
|
echo "Firefly-Credentials"
|
||||||
echo "Firefly Database User: $DB_USER"
|
echo "Firefly Database User: $DB_USER"
|
||||||
echo "Firefly Database Password: $DB_PASS"
|
echo "Firefly Database Password: $DB_PASS"
|
||||||
echo "Firefly Database Name: $DB_NAME"
|
echo "Firefly Database Name: $DB_NAME"
|
||||||
} >>~/firefly.creds
|
} >>~/firefly.creds
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
|
@ -15,13 +15,12 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
|
postgresql \
|
||||||
apache2 \
|
apache2 \
|
||||||
php-{curl,dom,json,ctype,pgsql,gmp,mbstring,iconv,zip} \
|
php-{curl,dom,json,ctype,pgsql,gmp,mbstring,iconv,zip} \
|
||||||
libapache2-mod-php
|
libapache2-mod-php
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PG_VERSION="16" install_postgresql
|
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL"
|
msg_info "Setting up PostgreSQL"
|
||||||
DB_NAME=freshrss
|
DB_NAME=freshrss
|
||||||
DB_USER=freshrss
|
DB_USER=freshrss
|
||||||
|
@ -16,11 +16,10 @@ update_os
|
|||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
nginx \
|
nginx \
|
||||||
|
mariadb-server \
|
||||||
ca-certificates
|
ca-certificates
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Configuring Database"
|
msg_info "Configuring Database"
|
||||||
DB_NAME=ghost
|
DB_NAME=ghost
|
||||||
DB_USER=ghostuser
|
DB_USER=ghostuser
|
||||||
|
@ -15,15 +15,14 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
git \
|
git \
|
||||||
apache2 \
|
apache2 \
|
||||||
php8.2-{apcu,cli,common,curl,gd,imap,ldap,mysql,xmlrpc,xml,mbstring,bcmath,intl,zip,redis,bz2,soap} \
|
php8.2-{apcu,cli,common,curl,gd,imap,ldap,mysql,xmlrpc,xml,mbstring,bcmath,intl,zip,redis,bz2,soap} \
|
||||||
php-cas \
|
php-cas \
|
||||||
libapache2-mod-php
|
libapache2-mod-php \
|
||||||
|
mariadb-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up database"
|
msg_info "Setting up database"
|
||||||
DB_NAME=glpi_db
|
DB_NAME=glpi_db
|
||||||
DB_USER=glpi
|
DB_USER=glpi
|
||||||
@ -34,10 +33,10 @@ mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
|||||||
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
|
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
|
||||||
mysql -u root -e "GRANT SELECT ON \`mysql\`.\`time_zone_name\` TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
mysql -u root -e "GRANT SELECT ON \`mysql\`.\`time_zone_name\` TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "GLPI Database Credentials"
|
echo "GLPI Database Credentials"
|
||||||
echo "Database: $DB_NAME"
|
echo "Database: $DB_NAME"
|
||||||
echo "Username: $DB_USER"
|
echo "Username: $DB_USER"
|
||||||
echo "Password: $DB_PASS"
|
echo "Password: $DB_PASS"
|
||||||
} >>~/glpi_db.creds
|
} >>~/glpi_db.creds
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
|
@ -20,11 +20,10 @@ $STD apt-get install -y \
|
|||||||
git \
|
git \
|
||||||
expect \
|
expect \
|
||||||
composer \
|
composer \
|
||||||
|
mariadb-server \
|
||||||
lsb-release
|
lsb-release
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Adding PHP8.4 Repository"
|
msg_info "Adding PHP8.4 Repository"
|
||||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: MickLesk (Canbiz)
|
||||||
# Co-Author: MickLesk (Canbiz)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://linkwarden.app/
|
# Source: https://linkwarden.app/
|
||||||
|
|
||||||
@ -17,25 +16,12 @@ update_os
|
|||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
make \
|
make \
|
||||||
git \
|
build-essential
|
||||||
build-essential \
|
|
||||||
cargo
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22"
|
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||||
NODE_MODULE="yarn@latest"
|
PG_VERSION="16" install_postgresql
|
||||||
install_node_and_modules
|
RUST_CRATES="monolith" install_rust_and_crates
|
||||||
PG_VERSION="15"
|
|
||||||
install_postgresql
|
|
||||||
|
|
||||||
msg_info "Installing Rust"
|
|
||||||
curl -fsSL https://sh.rustup.rs -o rustup-init.sh
|
|
||||||
$STD bash rustup-init.sh -y --profile minimal
|
|
||||||
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >>~/.bashrc
|
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
|
||||||
rm rustup-init.sh
|
|
||||||
$STD cargo install monolith
|
|
||||||
msg_ok "Installed Rust"
|
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL DB"
|
msg_info "Setting up PostgreSQL DB"
|
||||||
DB_NAME=linkwardendb
|
DB_NAME=linkwardendb
|
||||||
@ -58,50 +44,24 @@ msg_ok "Set up PostgreSQL DB"
|
|||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
msg_info "Installing Adminer"
|
install_adminer
|
||||||
$STD apt install -y adminer
|
|
||||||
$STD a2enconf adminer
|
|
||||||
systemctl reload apache2
|
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
|
||||||
echo "" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer Interface: \e[32m$IP/adminer/\e[0m" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer System: \e[32mPostgreSQL\e[0m" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer Server: \e[32mlocalhost:5432\e[0m" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer Username: \e[32m$DB_USER\e[0m" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer Password: \e[32m$DB_PASS\e[0m" >>~/linkwarden.creds
|
|
||||||
echo -e "Adminer Database: \e[32m$DB_NAME\e[0m" >>~/linkwarden.creds
|
|
||||||
{
|
|
||||||
echo ""
|
|
||||||
echo "Adminer-Credentials"
|
|
||||||
echo "Adminer WebUI: $IP/adminer/"
|
|
||||||
echo "Adminer Database User: $DB_USER"
|
|
||||||
echo "Adminer Database Password: $DB_PASS"
|
|
||||||
echo "Adminer Database Name: $DB_NAME"
|
|
||||||
} >>~/linkwarden.creds
|
|
||||||
msg_ok "Installed Adminer"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Installing Linkwarden (Patience)"
|
msg_info "Installing Linkwarden (Patience)"
|
||||||
cd /opt
|
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
|
||||||
curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip
|
|
||||||
unzip -q ${RELEASE}.zip
|
|
||||||
mv linkwarden-${RELEASE:1} /opt/linkwarden
|
|
||||||
cd /opt/linkwarden
|
cd /opt/linkwarden
|
||||||
$STD yarn
|
$STD yarn
|
||||||
$STD npx playwright install-deps
|
$STD npx playwright install-deps
|
||||||
$STD yarn playwright install
|
$STD yarn playwright install
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
IP=$(hostname -I | awk '{print $1}')
|
||||||
env_path="/opt/linkwarden/.env"
|
cat <<EOF >/opt/linkwarden/.env
|
||||||
echo "
|
|
||||||
NEXTAUTH_SECRET=${SECRET_KEY}
|
NEXTAUTH_SECRET=${SECRET_KEY}
|
||||||
NEXTAUTH_URL=http://${IP}:3000
|
NEXTAUTH_URL=http://${IP}:3000
|
||||||
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}
|
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}
|
||||||
" >$env_path
|
EOF
|
||||||
$STD yarn prisma:generate
|
$STD yarn prisma:generate
|
||||||
$STD yarn web:build
|
$STD yarn web:build
|
||||||
$STD yarn prisma:deploy
|
$STD yarn prisma:deploy
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
|
||||||
msg_ok "Installed Linkwarden"
|
msg_ok "Installed Linkwarden"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
@ -126,7 +86,9 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf /opt/${RELEASE}.zip
|
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
||||||
|
rm -rf /root/.cache/yarn
|
||||||
|
rm -rf /opt/linkwarden/.next/cache
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
@ -13,12 +13,11 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
install_mariadb
|
msg_info "Installing MariaDB"
|
||||||
|
$STD apt-get install -y mariadb-server
|
||||||
msg_info "Setup MariaDB"
|
|
||||||
sed -i 's/^# *\(port *=.*\)/\1/' /etc/mysql/my.cnf
|
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
|
sed -i 's/^bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||||
msg_ok "Setup MariaDB"
|
msg_ok "Installed MariaDB"
|
||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add PhpMyAdmin? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to add PhpMyAdmin? <y/N> " prompt
|
||||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||||
|
@ -15,13 +15,13 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
|
mariadb-server \
|
||||||
apache2 \
|
apache2 \
|
||||||
libapache2-mod-php \
|
libapache2-mod-php \
|
||||||
php-{bcmath,curl,dom,gd,gmp,iconv,intl,json,mbstring,mysqli,opcache,pdo-mysql,redis,tokenizer,xml,zip} \
|
php-{bcmath,curl,dom,gd,gmp,iconv,intl,json,mbstring,mysqli,opcache,pdo-mysql,redis,tokenizer,xml,zip} \
|
||||||
composer
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||||
|
|
||||||
msg_info "Setting up MariaDB"
|
msg_info "Setting up MariaDB"
|
||||||
|
@ -17,6 +17,7 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
apache2 \
|
||||||
redis-server \
|
redis-server \
|
||||||
|
postgresql \
|
||||||
build-essential \
|
build-essential \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxslt1-dev \
|
libxslt1-dev \
|
||||||
@ -26,8 +27,6 @@ $STD apt-get install -y \
|
|||||||
zlib1g-dev
|
zlib1g-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PG_VERSION="16" install_postgresql
|
|
||||||
|
|
||||||
msg_info "Installing Python"
|
msg_info "Installing Python"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
python3 \
|
python3 \
|
||||||
|
@ -16,6 +16,7 @@ update_os
|
|||||||
msg_info "Installing Dependencies (Patience)"
|
msg_info "Installing Dependencies (Patience)"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
redis \
|
redis \
|
||||||
|
postgresql \
|
||||||
build-essential \
|
build-essential \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
fonts-liberation \
|
fonts-liberation \
|
||||||
@ -36,8 +37,6 @@ $STD apt-get install -y \
|
|||||||
libleptonica-dev
|
libleptonica-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PG_VERSION="16" install_postgresql
|
|
||||||
|
|
||||||
msg_info "Setup Python3"
|
msg_info "Setup Python3"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
python3 \
|
python3 \
|
||||||
|
@ -15,16 +15,16 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
git \
|
git \
|
||||||
software-properties-common \
|
software-properties-common \
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
nginx \
|
gnupg2 \
|
||||||
redis-server
|
mariadb-server \
|
||||||
|
nginx \
|
||||||
|
redis-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Adding PHP Repository"
|
msg_info "Adding PHP Repository"
|
||||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
@ -35,8 +35,8 @@ msg_ok "Added PHP Repository"
|
|||||||
msg_info "Installing PHP"
|
msg_info "Installing PHP"
|
||||||
$STD apt-get remove -y php8.2*
|
$STD apt-get remove -y php8.2*
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
php8.3 \
|
php8.3 \
|
||||||
php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm,redis}
|
php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm,redis}
|
||||||
msg_info "Installed PHP"
|
msg_info "Installed PHP"
|
||||||
|
|
||||||
msg_info "Installing Composer"
|
msg_info "Installing Composer"
|
||||||
@ -62,10 +62,10 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||||
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost' WITH GRANT OPTION;"
|
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost' WITH GRANT OPTION;"
|
||||||
{
|
{
|
||||||
echo "Paymenter Database Credentials"
|
echo "Paymenter Database Credentials"
|
||||||
echo "Database: $DB_NAME"
|
echo "Database: $DB_NAME"
|
||||||
echo "Username: $DB_USER"
|
echo "Username: $DB_USER"
|
||||||
echo "Password: $DB_PASS"
|
echo "Password: $DB_PASS"
|
||||||
} >>~/paymenter_db.creds
|
} >>~/paymenter_db.creds
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
|
@ -16,12 +16,12 @@ update_os
|
|||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
lsb-release \
|
lsb-release \
|
||||||
|
mariadb-server \
|
||||||
|
mariadb-client \
|
||||||
apache2 \
|
apache2 \
|
||||||
composer
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Adding PHP8.4 Repository"
|
msg_info "Adding PHP8.4 Repository"
|
||||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
@ -15,14 +15,13 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
mariadb-server \
|
||||||
libapache2-mod-php \
|
apache2 \
|
||||||
php8.2 php8.2-{fpm,curl,cli,mysql,gd,intl,imap,apcu,pspell,tidy,xmlrpc,mbstring,gmp,xml,ldap,common,snmp} \
|
libapache2-mod-php \
|
||||||
php-pear
|
php8.2 php8.2-{fpm,curl,cli,mysql,gd,intl,imap,apcu,pspell,tidy,xmlrpc,mbstring,gmp,xml,ldap,common,snmp} \
|
||||||
|
php-pear
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up MariaDB"
|
msg_info "Setting up MariaDB"
|
||||||
DB_NAME=phpipam
|
DB_NAME=phpipam
|
||||||
DB_USER=phpipam
|
DB_USER=phpipam
|
||||||
@ -31,10 +30,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "phpIPAM-Credentials"
|
echo "phpIPAM-Credentials"
|
||||||
echo "phpIPAM Database User: $DB_USER"
|
echo "phpIPAM Database User: $DB_USER"
|
||||||
echo "phpIPAM Database Password: $DB_PASS"
|
echo "phpIPAM Database Password: $DB_PASS"
|
||||||
echo "phpIPAM Database Name: $DB_NAME"
|
echo "phpIPAM Database Name: $DB_NAME"
|
||||||
} >>~/phpipam.creds
|
} >>~/phpipam.creds
|
||||||
msg_ok "Set up MariaDB"
|
msg_ok "Set up MariaDB"
|
||||||
|
|
||||||
@ -46,10 +45,10 @@ unzip -q "phpipam-v${RELEASE}.zip"
|
|||||||
mysql -u root "${DB_NAME}" </opt/phpipam/db/SCHEMA.sql
|
mysql -u root "${DB_NAME}" </opt/phpipam/db/SCHEMA.sql
|
||||||
cp /opt/phpipam/config.dist.php /opt/phpipam/config.php
|
cp /opt/phpipam/config.dist.php /opt/phpipam/config.php
|
||||||
sed -i -e "s/\(\$disable_installer = \).*/\1true;/" \
|
sed -i -e "s/\(\$disable_installer = \).*/\1true;/" \
|
||||||
-e "s/\(\$db\['user'\] = \).*/\1'$DB_USER';/" \
|
-e "s/\(\$db\['user'\] = \).*/\1'$DB_USER';/" \
|
||||||
-e "s/\(\$db\['pass'\] = \).*/\1'$DB_PASS';/" \
|
-e "s/\(\$db\['pass'\] = \).*/\1'$DB_PASS';/" \
|
||||||
-e "s/\(\$db\['name'\] = \).*/\1'$DB_NAME';/" \
|
-e "s/\(\$db\['name'\] = \).*/\1'$DB_NAME';/" \
|
||||||
/opt/phpipam/config.php
|
/opt/phpipam/config.php
|
||||||
sed -i '/max_execution_time/s/= .*/= 600/' /etc/php/8.2/apache2/php.ini
|
sed -i '/max_execution_time/s/= .*/= 600/' /etc/php/8.2/apache2/php.ini
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
msg_ok "Installed phpIPAM"
|
msg_ok "Installed phpIPAM"
|
||||||
|
@ -15,12 +15,12 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
redis \
|
gnupg2 \
|
||||||
nginx
|
mariadb-server \
|
||||||
|
redis \
|
||||||
|
nginx
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Adoptium Repository"
|
msg_info "Setting up Adoptium Repository"
|
||||||
mkdir -p /etc/apt/keyrings
|
mkdir -p /etc/apt/keyrings
|
||||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
||||||
@ -41,10 +41,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "Plant-it Credentials"
|
echo "Plant-it Credentials"
|
||||||
echo "Plant-it Database User: $DB_USER"
|
echo "Plant-it Database User: $DB_USER"
|
||||||
echo "Plant-it Database Password: $DB_PASS"
|
echo "Plant-it Database Password: $DB_PASS"
|
||||||
echo "Plant-it Database Name: $DB_NAME"
|
echo "Plant-it Database Name: $DB_NAME"
|
||||||
} >>~/plant-it.creds
|
} >>~/plant-it.creds
|
||||||
msg_ok "Set up MariaDB"
|
msg_ok "Set up MariaDB"
|
||||||
|
|
||||||
|
@ -13,7 +13,19 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
PG_VERSION="17" install_postgresql
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y gnupg
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setting up PostgreSQL Repository"
|
||||||
|
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
||||||
|
echo "deb http://apt.postgresql.org/pub/repos/apt ${VERSION}-pgdg main" >/etc/apt/sources.list.d/pgdg.list
|
||||||
|
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor --output /etc/apt/trusted.gpg.d/postgresql.gpg
|
||||||
|
msg_ok "Setup PostgreSQL Repository"
|
||||||
|
|
||||||
|
msg_info "Installing PostgreSQL"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y postgresql
|
||||||
|
|
||||||
cat <<EOF >/etc/postgresql/17/main/pg_hba.conf
|
cat <<EOF >/etc/postgresql/17/main/pg_hba.conf
|
||||||
# PostgreSQL Client Authentication Configuration File
|
# PostgreSQL Client Authentication Configuration File
|
||||||
@ -115,7 +127,7 @@ default_text_search_config = 'pg_catalog.english'
|
|||||||
include_dir = 'conf.d'
|
include_dir = 'conf.d'
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl restart postgresql
|
sudo systemctl restart postgresql
|
||||||
msg_ok "Installed PostgreSQL"
|
msg_ok "Installed PostgreSQL"
|
||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
|
||||||
|
@ -15,13 +15,12 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
mariadb-server \
|
||||||
libapache2-mod-php \
|
apache2 \
|
||||||
php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip}
|
libapache2-mod-php \
|
||||||
|
php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip}
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up MariaDB"
|
msg_info "Setting up MariaDB"
|
||||||
DB_NAME=projectsend
|
DB_NAME=projectsend
|
||||||
DB_USER=projectsend
|
DB_USER=projectsend
|
||||||
@ -30,10 +29,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "projectsend-Credentials"
|
echo "projectsend-Credentials"
|
||||||
echo "projectsend Database User: $DB_USER"
|
echo "projectsend Database User: $DB_USER"
|
||||||
echo "projectsend Database Password: $DB_PASS"
|
echo "projectsend Database Password: $DB_PASS"
|
||||||
echo "projectsend Database Name: $DB_NAME"
|
echo "projectsend Database Name: $DB_NAME"
|
||||||
} >>~/projectsend.creds
|
} >>~/projectsend.creds
|
||||||
msg_ok "Set up MariaDB"
|
msg_ok "Set up MariaDB"
|
||||||
|
|
||||||
@ -48,14 +47,14 @@ chown -R www-data:www-data /opt/projectsend
|
|||||||
chmod -R 775 /opt/projectsend
|
chmod -R 775 /opt/projectsend
|
||||||
chmod 644 /opt/projectsend/includes/sys.config.php
|
chmod 644 /opt/projectsend/includes/sys.config.php
|
||||||
sed -i -e "s/\(define('DB_NAME', \).*/\1'$DB_NAME');/" \
|
sed -i -e "s/\(define('DB_NAME', \).*/\1'$DB_NAME');/" \
|
||||||
-e "s/\(define('DB_USER', \).*/\1'$DB_USER');/" \
|
-e "s/\(define('DB_USER', \).*/\1'$DB_USER');/" \
|
||||||
-e "s/\(define('DB_PASSWORD', \).*/\1'$DB_PASS');/" \
|
-e "s/\(define('DB_PASSWORD', \).*/\1'$DB_PASS');/" \
|
||||||
/opt/projectsend/includes/sys.config.php
|
/opt/projectsend/includes/sys.config.php
|
||||||
sed -i -e "s/^\(memory_limit = \).*/\1 256M/" \
|
sed -i -e "s/^\(memory_limit = \).*/\1 256M/" \
|
||||||
-e "s/^\(post_max_size = \).*/\1 256M/" \
|
-e "s/^\(post_max_size = \).*/\1 256M/" \
|
||||||
-e "s/^\(upload_max_filesize = \).*/\1 256M/" \
|
-e "s/^\(upload_max_filesize = \).*/\1 256M/" \
|
||||||
-e "s/^\(max_execution_time = \).*/\1 300/" \
|
-e "s/^\(max_execution_time = \).*/\1 300/" \
|
||||||
/etc/php/8.2/apache2/php.ini
|
/etc/php/8.2/apache2/php.ini
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
msg_ok "Installed projectsend"
|
msg_ok "Installed projectsend"
|
||||||
|
|
||||||
|
@ -17,12 +17,12 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
lsb-release \
|
lsb-release \
|
||||||
redis \
|
redis \
|
||||||
|
mariadb-server \
|
||||||
|
mariadb-client \
|
||||||
apache2 \
|
apache2 \
|
||||||
composer
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Adding PHP8.4 Repository"
|
msg_info "Adding PHP8.4 Repository"
|
||||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
@ -20,7 +20,6 @@ $STD apt-get install -y ca-certificates
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" install_node_and_modules
|
NODE_VERSION="22" install_node_and_modules
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Installing FFMPEG"
|
msg_info "Installing FFMPEG"
|
||||||
$STD apt-get install -y ffmpeg
|
$STD apt-get install -y ffmpeg
|
||||||
@ -42,6 +41,7 @@ sqluser="root"
|
|||||||
sqlpass="root"
|
sqlpass="root"
|
||||||
echo "mariadb-server mariadb-server/root_password password $sqlpass" | debconf-set-selections
|
echo "mariadb-server mariadb-server/root_password password $sqlpass" | debconf-set-selections
|
||||||
echo "mariadb-server mariadb-server/root_password_again password $sqlpass" | debconf-set-selections
|
echo "mariadb-server mariadb-server/root_password_again password $sqlpass" | debconf-set-selections
|
||||||
|
$STD apt-get install -y mariadb-server
|
||||||
service mysql start
|
service mysql start
|
||||||
mysql -u "$sqluser" -p"$sqlpass" -e "source sql/user.sql" || true
|
mysql -u "$sqluser" -p"$sqlpass" -e "source sql/user.sql" || true
|
||||||
msg_ok "Installed Database"
|
msg_ok "Installed Database"
|
||||||
|
@ -15,14 +15,13 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
composer \
|
composer \
|
||||||
git \
|
git \
|
||||||
nginx \
|
nginx \
|
||||||
php8.2-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}
|
php8.2-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli} \
|
||||||
|
mariadb-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up database"
|
msg_info "Setting up database"
|
||||||
DB_NAME=snipeit_db
|
DB_NAME=snipeit_db
|
||||||
DB_USER=snipeit
|
DB_USER=snipeit
|
||||||
@ -31,10 +30,10 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "SnipeIT-Credentials"
|
echo "SnipeIT-Credentials"
|
||||||
echo "SnipeIT Database User: $DB_USER"
|
echo "SnipeIT Database User: $DB_USER"
|
||||||
echo "SnipeIT Database Password: $DB_PASS"
|
echo "SnipeIT Database Password: $DB_PASS"
|
||||||
echo "SnipeIT Database Name: $DB_NAME"
|
echo "SnipeIT Database Name: $DB_NAME"
|
||||||
} >>~/snipeit.creds
|
} >>~/snipeit.creds
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
@ -49,9 +48,9 @@ cp .env.example .env
|
|||||||
IPADDRESS=$(hostname -I | awk '{print $1}')
|
IPADDRESS=$(hostname -I | awk '{print $1}')
|
||||||
|
|
||||||
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
|
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
|
||||||
-e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" \
|
-e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" \
|
||||||
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
|
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
|
||||||
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
|
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
|
||||||
|
|
||||||
chown -R www-data: /opt/snipe-it
|
chown -R www-data: /opt/snipe-it
|
||||||
chmod -R 755 /opt/snipe-it
|
chmod -R 755 /opt/snipe-it
|
||||||
|
@ -15,12 +15,11 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
libapache2-mod-php \
|
libapache2-mod-php \
|
||||||
php8.2-{curl,mbstring,mysql,xml,zip,gd}
|
mariadb-server \
|
||||||
|
php8.2-{curl,mbstring,mysql,xml,zip,gd}
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
msg_info "Setting up Database"
|
||||||
DB_NAME=wavelog
|
DB_NAME=wavelog
|
||||||
DB_USER=waveloguser
|
DB_USER=waveloguser
|
||||||
@ -29,10 +28,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "Wavelog-Credentials"
|
echo "Wavelog-Credentials"
|
||||||
echo "Wavelog Database User: $DB_USER"
|
echo "Wavelog Database User: $DB_USER"
|
||||||
echo "Wavelog Database Password: $DB_PASS"
|
echo "Wavelog Database Password: $DB_PASS"
|
||||||
echo "Wavelog Database Name: $DB_NAME"
|
echo "Wavelog Database Name: $DB_NAME"
|
||||||
} >>~/wavelog.creds
|
} >>~/wavelog.creds
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
|
@ -15,13 +15,12 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies (Patience)"
|
msg_info "Installing Dependencies (Patience)"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
apache2 \
|
apache2 \
|
||||||
php8.2-{bcmath,common,cli,curl,fpm,gd,snmp,imap,mbstring,mysql,xml,zip} \
|
php8.2-{bcmath,common,cli,curl,fpm,gd,snmp,imap,mbstring,mysql,xml,zip} \
|
||||||
libapache2-mod-php
|
libapache2-mod-php \
|
||||||
|
mariadb-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
install_mariadb
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
msg_info "Setting up Database"
|
||||||
DB_NAME=wordpress_db
|
DB_NAME=wordpress_db
|
||||||
DB_USER=wordpress
|
DB_USER=wordpress
|
||||||
@ -30,10 +29,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|||||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||||
$STD mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
$STD mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
{
|
{
|
||||||
echo "WordPress Credentials"
|
echo "WordPress Credentials"
|
||||||
echo "Database User: $DB_USER"
|
echo "Database User: $DB_USER"
|
||||||
echo "Database Password: $DB_PASS"
|
echo "Database Password: $DB_PASS"
|
||||||
echo "Database Name: $DB_NAME"
|
echo "Database Name: $DB_NAME"
|
||||||
} >>~/wordpress.creds
|
} >>~/wordpress.creds
|
||||||
msg_ok "Set up Database"
|
msg_ok "Set up Database"
|
||||||
|
|
||||||
@ -47,9 +46,9 @@ find . -type d -exec chmod 755 {} \;
|
|||||||
find . -type f -exec chmod 644 {} \;
|
find . -type f -exec chmod 644 {} \;
|
||||||
mv wp-config-sample.php wp-config.php
|
mv wp-config-sample.php wp-config.php
|
||||||
sed -i -e "s|^define( 'DB_NAME', '.*' );|define( 'DB_NAME', '$DB_NAME' );|" \
|
sed -i -e "s|^define( 'DB_NAME', '.*' );|define( 'DB_NAME', '$DB_NAME' );|" \
|
||||||
-e "s|^define( 'DB_USER', '.*' );|define( 'DB_USER', '$DB_USER' );|" \
|
-e "s|^define( 'DB_USER', '.*' );|define( 'DB_USER', '$DB_USER' );|" \
|
||||||
-e "s|^define( 'DB_PASSWORD', '.*' );|define( 'DB_PASSWORD', '$DB_PASS' );|" \
|
-e "s|^define( 'DB_PASSWORD', '.*' );|define( 'DB_PASSWORD', '$DB_PASS' );|" \
|
||||||
/var/www/html/wordpress/wp-config.php
|
/var/www/html/wordpress/wp-config.php
|
||||||
msg_ok "Installed Wordpress"
|
msg_ok "Installed Wordpress"
|
||||||
|
|
||||||
msg_info "Setup Services"
|
msg_info "Setup Services"
|
||||||
|
174
misc/tools.func
174
misc/tools.func
@ -122,22 +122,20 @@ install_node_and_modules() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Installs or upgrades PostgreSQL and optional extensions/modules.
|
# Installs or upgrades PostgreSQL and performs data migration.
|
||||||
#
|
#
|
||||||
# Description:
|
# Description:
|
||||||
# - Detects existing PostgreSQL version
|
# - Detects existing PostgreSQL version
|
||||||
# - Dumps all databases before upgrade
|
# - Dumps all databases before upgrade
|
||||||
# - Adds PGDG repo and installs specified version
|
# - Adds PGDG repo and installs specified version
|
||||||
# - Installs optional PG_MODULES (e.g. postgis, contrib)
|
|
||||||
# - Restores dumped data post-upgrade
|
# - Restores dumped data post-upgrade
|
||||||
#
|
#
|
||||||
# Variables:
|
# Variables:
|
||||||
# PG_VERSION - Major PostgreSQL version (e.g. 15, 16) (default: 16)
|
# PG_VERSION - Major PostgreSQL version (e.g. 15, 16) (default: 16)
|
||||||
# PG_MODULES - Comma-separated list of extensions (e.g. "postgis,contrib")
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
install_postgresql() {
|
install_postgresql() {
|
||||||
local PG_VERSION="${PG_VERSION:-16}"
|
local PG_VERSION="${PG_VERSION:-16}"
|
||||||
local PG_MODULES="${PG_MODULES:-}"
|
|
||||||
local CURRENT_PG_VERSION=""
|
local CURRENT_PG_VERSION=""
|
||||||
local DISTRO
|
local DISTRO
|
||||||
local NEED_PG_INSTALL=false
|
local NEED_PG_INSTALL=false
|
||||||
@ -147,10 +145,10 @@ install_postgresql() {
|
|||||||
CURRENT_PG_VERSION="$(psql -V | awk '{print $3}' | cut -d. -f1)"
|
CURRENT_PG_VERSION="$(psql -V | awk '{print $3}' | cut -d. -f1)"
|
||||||
if [[ "$CURRENT_PG_VERSION" == "$PG_VERSION" ]]; then
|
if [[ "$CURRENT_PG_VERSION" == "$PG_VERSION" ]]; then
|
||||||
msg_ok "PostgreSQL $PG_VERSION is already installed"
|
msg_ok "PostgreSQL $PG_VERSION is already installed"
|
||||||
else
|
return
|
||||||
msg_info "Detected PostgreSQL $CURRENT_PG_VERSION, preparing upgrade to $PG_VERSION"
|
|
||||||
NEED_PG_INSTALL=true
|
|
||||||
fi
|
fi
|
||||||
|
msg_info "Detected PostgreSQL $CURRENT_PG_VERSION, preparing upgrade to $PG_VERSION"
|
||||||
|
NEED_PG_INSTALL=true
|
||||||
else
|
else
|
||||||
msg_info "Setup PostgreSQL $PG_VERSION"
|
msg_info "Setup PostgreSQL $PG_VERSION"
|
||||||
NEED_PG_INSTALL=true
|
NEED_PG_INSTALL=true
|
||||||
@ -181,34 +179,20 @@ install_postgresql() {
|
|||||||
$STD apt-get install -y "postgresql-${PG_VERSION}" "postgresql-client-${PG_VERSION}"
|
$STD apt-get install -y "postgresql-${PG_VERSION}" "postgresql-client-${PG_VERSION}"
|
||||||
|
|
||||||
if [[ -n "$CURRENT_PG_VERSION" ]]; then
|
if [[ -n "$CURRENT_PG_VERSION" ]]; then
|
||||||
msg_info "Removing old PostgreSQL $CURRENT_PG_VERSION packages"
|
$STD msg_info "Removing old PostgreSQL $CURRENT_PG_VERSION packages"
|
||||||
$STD apt-get purge -y "postgresql-${CURRENT_PG_VERSION}" "postgresql-client-${CURRENT_PG_VERSION}" || true
|
$STD apt-get purge -y "postgresql-${CURRENT_PG_VERSION}" "postgresql-client-${CURRENT_PG_VERSION}" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Starting PostgreSQL $PG_VERSION"
|
$STD msg_info "Starting PostgreSQL $PG_VERSION"
|
||||||
systemctl enable -q --now postgresql
|
systemctl enable -q --now postgresql
|
||||||
|
|
||||||
if [[ -n "$CURRENT_PG_VERSION" ]]; then
|
if [[ -n "$CURRENT_PG_VERSION" ]]; then
|
||||||
msg_info "Restoring dumped data"
|
$STD msg_info "Restoring dumped data"
|
||||||
su - postgres -c "psql < /var/lib/postgresql/backup_$(date +%F)_v${CURRENT_PG_VERSION}.sql"
|
su - postgres -c "psql < /var/lib/postgresql/backup_$(date +%F)_v${CURRENT_PG_VERSION}.sql"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "PostgreSQL $PG_VERSION installed"
|
msg_ok "PostgreSQL $PG_VERSION installed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install optional PostgreSQL modules
|
|
||||||
if [[ -n "$PG_MODULES" ]]; then
|
|
||||||
IFS=',' read -ra MODULES <<<"$PG_MODULES"
|
|
||||||
for module in "${MODULES[@]}"; do
|
|
||||||
local pkg="postgresql-${PG_VERSION}-${module}"
|
|
||||||
msg_info "Installing PostgreSQL module: $pkg"
|
|
||||||
$STD apt-get install -y "$pkg" || {
|
|
||||||
msg_error "Failed to install $pkg"
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
done
|
|
||||||
msg_ok "All requested PostgreSQL modules installed"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@ -380,10 +364,8 @@ install_php() {
|
|||||||
CURRENT_PHP=""
|
CURRENT_PHP=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$CURRENT_PHP" ]]; then
|
if [[ "$CURRENT_PHP" != "$PHP_VERSION" ]]; then
|
||||||
msg_info "Setup PHP $PHP_VERSION"
|
$STD msg_info "PHP $CURRENT_PHP detected, migrating to PHP $PHP_VERSION"
|
||||||
elif [[ "$CURRENT_PHP" != "$PHP_VERSION" ]]; then
|
|
||||||
msg_info "PHP $CURRENT_PHP detected, migrating to PHP $PHP_VERSION"
|
|
||||||
if [[ ! -f /etc/apt/sources.list.d/php.list ]]; then
|
if [[ ! -f /etc/apt/sources.list.d/php.list ]]; then
|
||||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
@ -400,9 +382,6 @@ install_php() {
|
|||||||
for mod in "${MODULES[@]}"; do
|
for mod in "${MODULES[@]}"; do
|
||||||
MODULE_LIST+=" php${PHP_VERSION}-${mod}"
|
MODULE_LIST+=" php${PHP_VERSION}-${mod}"
|
||||||
done
|
done
|
||||||
if [[ "$PHP_FPM" == "YES" ]]; then
|
|
||||||
MODULE_LIST+=" php${PHP_VERSION}-fpm"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$PHP_APACHE" == "YES" ]]; then
|
if [[ "$PHP_APACHE" == "YES" ]]; then
|
||||||
# Optionally disable old Apache PHP module
|
# Optionally disable old Apache PHP module
|
||||||
@ -469,7 +448,7 @@ install_composer() {
|
|||||||
|
|
||||||
# Download and install latest composer
|
# Download and install latest composer
|
||||||
curl -fsSL https://getcomposer.org/installer -o /tmp/composer-setup.php
|
curl -fsSL https://getcomposer.org/installer -o /tmp/composer-setup.php
|
||||||
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer >/dev/null 2>&1
|
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer &>/dev/null
|
||||||
|
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
msg_error "Failed to install Composer"
|
msg_error "Failed to install Composer"
|
||||||
@ -477,9 +456,7 @@ install_composer() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
chmod +x "$COMPOSER_BIN"
|
chmod +x "$COMPOSER_BIN"
|
||||||
composer diagnose >/dev/null 2>&1
|
msg_ok "Installed Composer $($COMPOSER_BIN --version | awk '{print $3}')"
|
||||||
msg_ok "Setup Composer"
|
|
||||||
#msg_ok "Installed Composer $($COMPOSER_BIN --version | awk '{print $3}')"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@ -612,21 +589,11 @@ install_java() {
|
|||||||
|
|
||||||
install_mongodb() {
|
install_mongodb() {
|
||||||
local MONGO_VERSION="${MONGO_VERSION:-8.0}"
|
local MONGO_VERSION="${MONGO_VERSION:-8.0}"
|
||||||
local DISTRO_ID DISTRO_CODENAME MONGO_BASE_URL
|
local DISTRO_CODENAME
|
||||||
DISTRO_ID=$(awk -F= '/^ID=/{ gsub(/"/,"",$2); print $2 }' /etc/os-release)
|
DISTRO_CODENAME=$(awk -F= '/VERSION_CODENAME/ { print $2 }' /etc/os-release)
|
||||||
DISTRO_CODENAME=$(awk -F= '/^VERSION_CODENAME=/{ print $2 }' /etc/os-release)
|
|
||||||
|
|
||||||
case "$DISTRO_ID" in
|
|
||||||
ubuntu) MONGO_BASE_URL="https://repo.mongodb.org/apt/ubuntu" ;;
|
|
||||||
debian) MONGO_BASE_URL="https://repo.mongodb.org/apt/debian" ;;
|
|
||||||
*)
|
|
||||||
msg_error "Unsupported distribution: $DISTRO_ID"
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
local REPO_LIST="/etc/apt/sources.list.d/mongodb-org-${MONGO_VERSION}.list"
|
local REPO_LIST="/etc/apt/sources.list.d/mongodb-org-${MONGO_VERSION}.list"
|
||||||
|
|
||||||
|
# Aktuell installierte Major-Version ermitteln
|
||||||
local INSTALLED_VERSION=""
|
local INSTALLED_VERSION=""
|
||||||
if command -v mongod >/dev/null; then
|
if command -v mongod >/dev/null; then
|
||||||
INSTALLED_VERSION=$(mongod --version | awk '/db version/{print $3}' | cut -d. -f1,2)
|
INSTALLED_VERSION=$(mongod --version | awk '/db version/{print $3}' | cut -d. -f1,2)
|
||||||
@ -640,6 +607,7 @@ install_mongodb() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Ältere Version entfernen (nur Packages, nicht Daten!)
|
||||||
if [[ -n "$INSTALLED_VERSION" ]]; then
|
if [[ -n "$INSTALLED_VERSION" ]]; then
|
||||||
msg_info "Replacing MongoDB $INSTALLED_VERSION with $MONGO_VERSION (data will be preserved)"
|
msg_info "Replacing MongoDB $INSTALLED_VERSION with $MONGO_VERSION (data will be preserved)"
|
||||||
$STD systemctl stop mongod || true
|
$STD systemctl stop mongod || true
|
||||||
@ -650,17 +618,15 @@ install_mongodb() {
|
|||||||
msg_info "Installing MongoDB $MONGO_VERSION"
|
msg_info "Installing MongoDB $MONGO_VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# MongoDB Repo hinzufügen
|
||||||
curl -fsSL "https://pgp.mongodb.com/server-${MONGO_VERSION}.asc" | gpg --dearmor -o "/etc/apt/trusted.gpg.d/mongodb-${MONGO_VERSION}.gpg"
|
curl -fsSL "https://pgp.mongodb.com/server-${MONGO_VERSION}.asc" | gpg --dearmor -o "/etc/apt/trusted.gpg.d/mongodb-${MONGO_VERSION}.gpg"
|
||||||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/mongodb-${MONGO_VERSION}.gpg] ${MONGO_BASE_URL} ${DISTRO_CODENAME}/mongodb-org/${MONGO_VERSION} main" \
|
echo "deb [signed-by=/etc/apt/trusted.gpg.d/mongodb-${MONGO_VERSION}.gpg] https://repo.mongodb.org/apt/debian ${DISTRO_CODENAME}/mongodb-org/${MONGO_VERSION} main" \
|
||||||
>"$REPO_LIST"
|
>"$REPO_LIST"
|
||||||
|
|
||||||
$STD apt-get update || {
|
$STD apt-get update
|
||||||
msg_error "APT update failed — invalid MongoDB repo for ${DISTRO_ID}-${DISTRO_CODENAME}?"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
$STD apt-get install -y mongodb-org
|
$STD apt-get install -y mongodb-org
|
||||||
|
|
||||||
|
# Sicherstellen, dass Datenverzeichnis intakt bleibt
|
||||||
mkdir -p /var/lib/mongodb
|
mkdir -p /var/lib/mongodb
|
||||||
chown -R mongodb:mongodb /var/lib/mongodb
|
chown -R mongodb:mongodb /var/lib/mongodb
|
||||||
|
|
||||||
@ -684,7 +650,8 @@ install_mongodb() {
|
|||||||
|
|
||||||
fetch_and_deploy_gh_release() {
|
fetch_and_deploy_gh_release() {
|
||||||
local repo="$1"
|
local repo="$1"
|
||||||
local app=${APP:-$(echo "${APPLICATION,,}" | tr -d ' ')}
|
local raw_app="${APP:-$APPLICATION}"
|
||||||
|
local app=$(echo "${raw_app,,}" | tr -d ' ')
|
||||||
local api_url="https://api.github.com/repos/$repo/releases/latest"
|
local api_url="https://api.github.com/repos/$repo/releases/latest"
|
||||||
local header=()
|
local header=()
|
||||||
local attempt=0
|
local attempt=0
|
||||||
@ -1246,100 +1213,3 @@ create_selfsigned_certs() {
|
|||||||
-subj "/C=US/O=$app/OU=Domain Control Validated/CN=localhost"
|
-subj "/C=US/O=$app/OU=Domain Control Validated/CN=localhost"
|
||||||
$STD msg_ok "Created Self-Signed Certificate"
|
$STD msg_ok "Created Self-Signed Certificate"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Installs Rust toolchain and optional global crates via cargo.
|
|
||||||
#
|
|
||||||
# Description:
|
|
||||||
# - Installs rustup (if missing)
|
|
||||||
# - Installs or updates desired Rust toolchain (stable, nightly, or versioned)
|
|
||||||
# - Installs or updates specified global crates using `cargo install`
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Skips crate install if exact version is already present
|
|
||||||
# - Updates crate if newer version or different version is requested
|
|
||||||
#
|
|
||||||
# Variables:
|
|
||||||
# RUST_TOOLCHAIN - Rust toolchain to install (default: stable)
|
|
||||||
# RUST_CRATES - Comma-separated list of crates (e.g. "cargo-edit,wasm-pack@0.12.1")
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
install_rust_and_crates() {
|
|
||||||
local RUST_TOOLCHAIN="${RUST_TOOLCHAIN:-stable}"
|
|
||||||
local RUST_CRATES="${RUST_CRATES:-}"
|
|
||||||
local CARGO_BIN="${HOME}/.cargo/bin"
|
|
||||||
|
|
||||||
# rustup & toolchain
|
|
||||||
if ! command -v rustup &>/dev/null; then
|
|
||||||
msg_info "Installing rustup"
|
|
||||||
curl -fsSL https://sh.rustup.rs | $STD sh -s -- -y --default-toolchain "$RUST_TOOLCHAIN"
|
|
||||||
export PATH="$CARGO_BIN:$PATH"
|
|
||||||
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >>"$HOME/.profile"
|
|
||||||
msg_ok "Installed rustup with $RUST_TOOLCHAIN"
|
|
||||||
else
|
|
||||||
$STD rustup install "$RUST_TOOLCHAIN"
|
|
||||||
$STD rustup default "$RUST_TOOLCHAIN"
|
|
||||||
$STD rustup update "$RUST_TOOLCHAIN"
|
|
||||||
msg_ok "Rust toolchain set to $RUST_TOOLCHAIN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# install/update crates
|
|
||||||
if [[ -n "$RUST_CRATES" ]]; then
|
|
||||||
IFS=',' read -ra CRATES <<<"$RUST_CRATES"
|
|
||||||
for crate in "${CRATES[@]}"; do
|
|
||||||
local NAME VER INSTALLED_VER
|
|
||||||
if [[ "$crate" == *"@"* ]]; then
|
|
||||||
NAME="${crate%@*}"
|
|
||||||
VER="${crate##*@}"
|
|
||||||
else
|
|
||||||
NAME="$crate"
|
|
||||||
VER=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
INSTALLED_VER=$(cargo install --list 2>/dev/null | awk "/^$NAME v[0-9]/ {print \$2}" | tr -d 'v')
|
|
||||||
|
|
||||||
if [[ -n "$INSTALLED_VER" ]]; then
|
|
||||||
if [[ -n "$VER" && "$VER" != "$INSTALLED_VER" ]]; then
|
|
||||||
msg_info "Updating $NAME from $INSTALLED_VER to $VER"
|
|
||||||
$STD cargo install "$NAME" --version "$VER" --force
|
|
||||||
elif [[ -z "$VER" ]]; then
|
|
||||||
msg_info "Updating $NAME to latest"
|
|
||||||
$STD cargo install "$NAME" --force
|
|
||||||
else
|
|
||||||
msg_ok "$NAME@$INSTALLED_VER already up to date"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_info "Installing $NAME ${VER:+($VER)}"
|
|
||||||
$STD cargo install "$NAME" ${VER:+--version "$VER"}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
msg_ok "All requested Rust crates processed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Installs Adminer (Debian/Ubuntu via APT, Alpine via direct download).
|
|
||||||
#
|
|
||||||
# Description:
|
|
||||||
# - Adds Adminer to Apache or web root
|
|
||||||
# - Supports Alpine and Debian-based systems
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
install_adminer() {
|
|
||||||
if grep -qi alpine /etc/os-release; then
|
|
||||||
msg_info "Installing Adminer (Alpine)"
|
|
||||||
mkdir -p /var/www/localhost/htdocs/adminer
|
|
||||||
if ! curl -fsSL https://github.com/vrana/adminer/releases/latest/download/adminer.php \
|
|
||||||
-o /var/www/localhost/htdocs/adminer/index.php; then
|
|
||||||
msg_error "Failed to download Adminer"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
msg_ok "Adminer available at /adminer (Alpine)"
|
|
||||||
else
|
|
||||||
msg_info "Installing Adminer (Debian/Ubuntu)"
|
|
||||||
$STD apt-get install -y adminer
|
|
||||||
$STD a2enconf adminer
|
|
||||||
$STD systemctl reload apache2
|
|
||||||
msg_ok "Adminer available at /adminer (Debian/Ubuntu)"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user