mirror of
https://github.com/community-scripts/ProxmoxVED.git
synced 2026-02-25 05:57:26 +00:00
Merge branch 'community-scripts:main' into wanderer
This commit is contained in:
@@ -28,8 +28,22 @@ PG_VERSION="17" setup_postgresql
|
||||
setup_go
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
ENTE_CLI_VERSION=$(curl -s https://api.github.com/repos/ente-io/ente/releases | jq -r '[.[] | select(.tag_name | startswith("cli-v"))][0].tag_name')
|
||||
fetch_and_deploy_gh_release "ente" "ente-io/ente" "tarball" "latest" "/opt/ente"
|
||||
fetch_and_deploy_gh_release "ente" "ente-io/ente" "tarball" "$ENTE_CLI_VERSION" "/usr/local/bin/ente" "ente-cli-$ENTE_CLI_VERSION-linux-amd64.tar.gz"
|
||||
fetch_and_deploy_gh_release "ente-server" "ente-io/ente" "tarball" "latest" "/opt/ente"
|
||||
fetch_and_deploy_gh_release "ente-cli" "ente-io/ente" "prebuild" "$ENTE_CLI_VERSION" "/usr/local/bin" "ente-$ENTE_CLI_VERSION-linux-amd64.tar.gz"
|
||||
|
||||
$STD mkdir -p /opt/ente/cli
|
||||
msg_info "Configuring Ente CLI"
|
||||
cat <<EOF >>~/.bashrc
|
||||
export ENTE_CLI_SECRETS_PATH=/opt/ente/cli/secrets.txt
|
||||
export PATH="/usr/local/bin:$PATH"
|
||||
EOF
|
||||
$STD source ~/.bashrc
|
||||
$STD mkdir -p ~/.ente
|
||||
cat <<EOF >~/.ente/config.yaml
|
||||
endpoint:
|
||||
api: http://localhost:8080
|
||||
EOF
|
||||
msg_ok "Configured Ente CLI"
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME="ente_db"
|
||||
@@ -133,13 +147,37 @@ jwt:
|
||||
EOF
|
||||
msg_ok "Created museum.yaml"
|
||||
|
||||
read -r -p "Enter the public URL for Ente backend (e.g., https://api.ente.yourdomain.com or http://192.168.1.100:8080) leave empty to use container IP: " backend_url
|
||||
if [[ -z "$backend_url" ]]; then
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
ENTE_BACKEND_URL="http://$LOCAL_IP:8080"
|
||||
msg_info "No URL provided"
|
||||
msg_ok "using local IP: $ENTE_BACKEND_URL\n"
|
||||
else
|
||||
ENTE_BACKEND_URL="$backend_url"
|
||||
msg_info "URL provided"
|
||||
msg_ok "Using provided URL: $ENTE_BACKEND_URL\n"
|
||||
fi
|
||||
|
||||
read -r -p "Enter the public URL for Ente albums (e.g., https://albums.ente.yourdomain.com or http://192.168.1.100:3002) leave empty to use container IP: " albums_url
|
||||
if [[ -z "$albums_url" ]]; then
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
ENTE_ALBUMS_URL="http://$LOCAL_IP:3002"
|
||||
msg_info "No URL provided"
|
||||
msg_ok "using local IP: $ENTE_ALBUMS_URL\n"
|
||||
else
|
||||
ENTE_ALBUMS_URL="$albums_url"
|
||||
msg_info "URL provided"
|
||||
msg_ok "Using provided URL: $ENTE_ALBUMS_URL\n"
|
||||
fi
|
||||
|
||||
export NEXT_PUBLIC_ENTE_ENDPOINT=$ENTE_BACKEND_URL
|
||||
export NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=$ENTE_ALBUMS_URL
|
||||
|
||||
msg_info "Building Web Applications"
|
||||
# Get container IP address
|
||||
CONTAINER_IP=$(hostname -I | awk '{print $1}')
|
||||
cd /opt/ente/web
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD yarn install
|
||||
export NEXT_PUBLIC_ENTE_ENDPOINT=http://${CONTAINER_IP}:8080
|
||||
export NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://${CONTAINER_IP}:3002
|
||||
$STD yarn build
|
||||
$STD yarn build:accounts
|
||||
$STD yarn build:auth
|
||||
@@ -153,12 +191,35 @@ cp -r apps/cast/out /var/www/ente/apps/cast
|
||||
# Save build configuration for future rebuilds
|
||||
cat <<REBUILD_EOF >/opt/ente/rebuild-frontend.sh
|
||||
#!/usr/bin/env bash
|
||||
# Rebuild Ente frontend with current IP
|
||||
CONTAINER_IP=\$(hostname -I | awk '{print \$1}')
|
||||
echo "Building frontend with IP: \$CONTAINER_IP"
|
||||
# Rebuild Ente frontend
|
||||
# Prompt for backend URL
|
||||
read -r -p "Enter the public URL for Ente backend (e.g., https://api.ente.yourdomain.com or http://192.168.1.100:8080) leave empty to use container IP: " backend_url
|
||||
if [[ -z "\$backend_url" ]]; then
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
ENTE_BACKEND_URL="http://\$LOCAL_IP:8080"
|
||||
echo "No URL provided, using local IP: \$ENTE_BACKEND_URL\n"
|
||||
else
|
||||
ENTE_BACKEND_URL="\$backend_url"
|
||||
echo "Using provided URL: \$ENTE_BACKEND_URL\n"
|
||||
fi
|
||||
|
||||
# Prompt for albums URL
|
||||
read -r -p "Enter the public URL for Ente albums (e.g., https://albums.ente.yourdomain.com or http://192.168.1.100:3002) leave empty to use container IP: " albums_url
|
||||
if [[ -z "\$albums_url" ]]; then
|
||||
LOCAL_IP=\$(hostname -I | awk '{print $1}')
|
||||
ENTE_ALBUMS_URL="http://\$LOCAL_IP:3002"
|
||||
echo "No URL provided, using local IP: \$ENTE_ALBUMS_URL\n"
|
||||
else
|
||||
ENTE_ALBUMS_URL="\$albums_url"
|
||||
echo "Using provided URL: \$ENTE_ALBUMS_URL\n"
|
||||
fi
|
||||
|
||||
export NEXT_PUBLIC_ENTE_ENDPOINT=\$ENTE_BACKEND_URL
|
||||
export NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=\$ENTE_ALBUMS_URL
|
||||
|
||||
echo "Building Web Applications\n"
|
||||
|
||||
cd /opt/ente/web
|
||||
export NEXT_PUBLIC_ENTE_ENDPOINT=http://\${CONTAINER_IP}:8080
|
||||
export NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://\${CONTAINER_IP}:3002
|
||||
yarn build
|
||||
yarn build:accounts
|
||||
yarn build:auth
|
||||
@@ -312,8 +373,9 @@ echo -e "━━━━━━━━━━━━━━━━━━━━━━━
|
||||
echo -e "\n${BL}Access URLs:${CL}"
|
||||
echo -e " Photos: http://${CONTAINER_IP}:3000"
|
||||
echo -e " Accounts: http://${CONTAINER_IP}:3001"
|
||||
echo -e " Albums: ${ENTE_ALBUMS_URL}"
|
||||
echo -e " Auth: http://${CONTAINER_IP}:3003"
|
||||
echo -e " API: http://${CONTAINER_IP}:8080"
|
||||
echo -e " API: ${ENTE_BACKEND_URL}"
|
||||
echo -e "\n${YW}⚠️ Important Post-Installation Steps:${CL}"
|
||||
echo -e "\n${BL}1. Create your first account:${CL}"
|
||||
echo -e " • Open http://${CONTAINER_IP}:3000 in your browser"
|
||||
|
||||
94
install/joplin-server-install.sh
Normal file
94
install/joplin-server-install.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://joplinapp.org/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
git \
|
||||
rsync
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="17" setup_postgresql
|
||||
NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs
|
||||
mkdir -p /opt/pm2
|
||||
export PM2_HOME=/opt/pm2
|
||||
$STD pm2 install pm2-logrotate
|
||||
$STD pm2 set pm2-logrotate:max_size 100MB
|
||||
$STD pm2 set pm2-logrotate:retain 5
|
||||
$STD pm2 set pm2-logrotate:compress tr
|
||||
|
||||
msg_info "Setting up PostgreSQL Database"
|
||||
DB_NAME=joplin
|
||||
DB_USER=joplin
|
||||
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
|
||||
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
|
||||
{
|
||||
echo "Joplin-Credentials"
|
||||
echo "Joplin Database User: $DB_USER"
|
||||
echo "Joplin Database Password: $DB_PASS"
|
||||
echo "Joplin Database Name: $DB_NAME"
|
||||
} >>~/joplin.creds
|
||||
msg_ok "Set up PostgreSQL Database"
|
||||
|
||||
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
|
||||
|
||||
msg_info "Setting up Joplin Server (Patience)"
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
cd /opt/joplin-server
|
||||
sed -i "/onenote-converter/d" packages/lib/package.json
|
||||
$STD yarn config set --home enableTelemetry 0
|
||||
export BUILD_SEQUENCIAL=1
|
||||
$STD yarn install --inline-builds
|
||||
|
||||
cat <<EOF >/opt/joplin-server/.env
|
||||
PM2_HOME=/opt/pm2
|
||||
NODE_ENV=production
|
||||
APP_BASE_URL=http://$LOCAL_IP:22300
|
||||
APP_PORT=22300
|
||||
DB_CLIENT=pg
|
||||
POSTGRES_PASSWORD=$DB_PASS
|
||||
POSTGRES_DATABASE=$DB_NAME
|
||||
POSTGRES_USER=$DB_USER
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_HOST=localhost
|
||||
EOF
|
||||
msg_ok "Setup Joplin Server"
|
||||
|
||||
msg_info "Setting up Service"
|
||||
cat <<EOF >/etc/systemd/system/joplin-server.service
|
||||
[Unit]
|
||||
Description=Joplin Server Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/joplin-server/packages/server
|
||||
EnvironmentFile=/opt/joplin-server/.env
|
||||
ExecStart=/usr/bin/yarn start-prod
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now joplin-server
|
||||
msg_ok "Service Setup"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
64
install/qdrant-install.sh
Normal file
64
install/qdrant-install.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/qdrant/qdrant
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "qdrant" "qdrant/qdrant" "binary" "latest" "/usr/bin/qdrant"
|
||||
|
||||
msg_info "Creating Qdrant Configuration"
|
||||
mkdir -p /var/lib/qdrant/storage
|
||||
mkdir -p /var/lib/qdrant/snapshots
|
||||
mkdir -p /etc/qdrant
|
||||
chown -R root:root /var/lib/qdrant
|
||||
chmod -R 755 /var/lib/qdrant
|
||||
|
||||
cat >/etc/qdrant/config.yaml <<EOF
|
||||
log_level: INFO
|
||||
|
||||
storage:
|
||||
storage_path: /var/lib/qdrant/storage
|
||||
snapshots_path: /var/lib/qdrant/snapshots
|
||||
|
||||
service:
|
||||
host: 0.0.0.0
|
||||
http_port: 6333
|
||||
grpc_port: 6334
|
||||
enable_cors: true
|
||||
EOF
|
||||
msg_ok "Created Qdrant Configuration"
|
||||
|
||||
msg_info "Creating Qdrant Service"
|
||||
cat >/etc/systemd/system/qdrant.service <<EOF
|
||||
[Unit]
|
||||
Description=Qdrant Vector Search Engine
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/qdrant --config-path /etc/qdrant/config.yaml
|
||||
WorkingDirectory=/var/lib/qdrant
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
User=root
|
||||
LimitNOFILE=1048576
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now qdrant
|
||||
msg_ok "Created Qdrant Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
Reference in New Issue
Block a user