mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-03 15:40:18 +00:00
* Scripts: close every msg_info block with msg_ok Past-tense msg_info calls that should have been msg_ok, notices that opened a block before a prompt, and blocks without a closing msg_ok. These already left a stale spinner; with core's block stack they would resume it after every later msg_ok. * Generate passwords with random_password openssl rand -base64 | tr -dc | head -c returned fewer characters than asked for, and the unfiltered | cut variants put / and + into passwords that end up in DSNs and sed expressions. Secrets an app decodes as base64 are unchanged. Requires community-scripts/core#61. * Keep data directories through CLEAN_INSTALL instead of copying them create_backup copied uploads, storage and similar directories twice per update and needed their size again in free space. CLEAN_INSTALL_KEEP moves them aside instead. Only directories the upstream release does not ship, in scripts that restored right after the fetch. Requires community-scripts/core#61. * Drop the 300s uv timeout overrides setup_uv exports UV_HTTP_TIMEOUT=600 now; the scripts' 300 only lowered it. Requires community-scripts/core#61.
101 lines
2.5 KiB
Bash
101 lines
2.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: Slaviša Arežina (tremor021)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://github.com/rclone/rclone
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
setup_deb_based() {
|
|
msg_info "Installing Dependencies"
|
|
$STD apt install -y apache2-utils fuse3
|
|
msg_ok "Installed Dependencies"
|
|
|
|
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
|
|
|
msg_info "Installing rclone"
|
|
cd /opt/rclone
|
|
RCLONE_PASSWORD=$(random_password 13)
|
|
$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD"
|
|
cat <<EOF >~/rclone.creds
|
|
rclone-Credentials
|
|
rclone User Name: admin
|
|
rclone Password: $RCLONE_PASSWORD
|
|
EOF
|
|
msg_ok "Installed rclone"
|
|
|
|
msg_info "Creating Service"
|
|
cat <<EOF >/etc/systemd/system/rclone-web.service
|
|
[Unit]
|
|
Description=Rclone Web GUI
|
|
After=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
WorkingDirectory=/opt/rclone
|
|
ExecStart=/opt/rclone/rclone rcd --rc-web-gui --rc-web-gui-no-open-browser --rc-addr :3000 --rc-htpasswd /opt/login.pwd
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl enable -q --now rclone-web
|
|
msg_ok "Created Service"
|
|
}
|
|
|
|
setup_alpine() {
|
|
msg_info "Installing dependencies"
|
|
$STD apk add --no-cache \
|
|
apache2-utils fuse3
|
|
msg_ok "Installed dependencies"
|
|
|
|
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
|
|
|
msg_info "Configuring rclone"
|
|
cd /opt/rclone
|
|
RCLONE_PASSWORD=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
|
$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD"
|
|
cat <<EOF >~/rclone.creds
|
|
rclone-Credentials
|
|
rclone User Name: admin
|
|
rclone Password: $RCLONE_PASSWORD
|
|
EOF
|
|
msg_ok "Configured rclone"
|
|
|
|
msg_info "Enabling rclone Service"
|
|
cat <<EOF >/etc/init.d/rclone
|
|
#!/sbin/openrc-run
|
|
description="rclone Service"
|
|
command="/opt/rclone/rclone"
|
|
command_args="rcd --rc-web-gui --rc-web-gui-no-open-browser --rc-addr :3000 --rc-htpasswd /opt/login.pwd"
|
|
command_background="true"
|
|
command_user="root"
|
|
pidfile="/var/run/rclone.pid"
|
|
|
|
depend() {
|
|
use net
|
|
}
|
|
EOF
|
|
chmod +x /etc/init.d/rclone
|
|
$STD rc-update add rclone default
|
|
msg_ok "Enabled rclone Service"
|
|
|
|
msg_info "Starting rclone"
|
|
$STD service rclone start
|
|
msg_ok "Started rclone"
|
|
}
|
|
|
|
run_os_setup
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|