Skip to content

Commit 7cd541b

Browse files
committed
Update oxicloud-install.sh
1 parent 149ede5 commit 7cd541b

1 file changed

Lines changed: 24 additions & 10 deletions

File tree

install/oxicloud-install.sh

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,44 @@ $STD apt install -y \
1818
build-essential
1919
msg_ok "Installed Dependencies"
2020

21+
NODE_VERSION="24" setup_nodejs
2122
PG_VERSION="17" setup_postgresql
2223
PG_DB_NAME="oxicloud" PG_DB_USER="oxicloud" setup_postgresql_db
2324
fetch_and_deploy_gh_release "OxiCloud" "DioCrafts/OxiCloud" "tarball" "latest" "/opt/oxicloud"
24-
TOOLCHAIN="$(sed -n '2s/[^:]*://p' /opt/oxicloud/Dockerfile | awk -F- '{print $1}')"
25-
RUST_TOOLCHAIN=$TOOLCHAIN setup_rust
25+
# Extract pinned Rust toolchain from Dockerfile (e.g. "FROM rust:1.96-alpine3.24" -> 1.96)
26+
TOOLCHAIN="$(grep -oP 'FROM\s+rust:\K[0-9]+\.[0-9]+(\.[0-9]+)?' /opt/oxicloud/Dockerfile | head -1)"
27+
RUST_TOOLCHAIN="${TOOLCHAIN:-stable}" setup_rust
2628

27-
msg_info "Building OxiCloud"
29+
msg_info "Building Frontend SPA"
30+
cd /opt/oxicloud/frontend
31+
$STD npm ci
32+
$STD npm run build
33+
msg_ok "Built Frontend SPA"
34+
35+
msg_info "Building OxiCloud (Patience)"
2836
cd /opt/oxicloud
2937
export DATABASE_URL="postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost/${PG_DB_NAME}"
3038
export RUSTFLAGS="-C target-cpu=native"
31-
$STD cargo build --release
39+
# aws-sdk-s3 + aws-lc-sys can use ~1.5 GiB per rustc job under LTO+codegen-units=1.
40+
# Cap concurrency by RAM to avoid SIGKILL on small containers (issue #1513).
41+
RAM_MB=$(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo)
42+
CARGO_JOBS=$((RAM_MB / 1536))
43+
[[ $CARGO_JOBS -lt 1 ]] && CARGO_JOBS=1
44+
$STD cargo build --release -j "$CARGO_JOBS"
3245
mv target/release/oxicloud /usr/bin/oxicloud && chmod +x /usr/bin/oxicloud
46+
# Reclaim ~3 GB of build artifacts; keep source for updates.
47+
rm -rf /opt/oxicloud/target /opt/oxicloud/frontend/node_modules
3348
msg_ok "Built OxiCloud"
3449

3550
msg_info "Configuring OxiCloud"
3651
mkdir -p {/mnt/oxicloud,/etc/oxicloud}
37-
sed -e 's|_STORAGE_PATH=.*|_STORAGE_PATH=/mnt/oxicloud|' \
38-
-e 's|_SERVER_HOST=.*|_SERVER_HOST=0.0.0.0|' \
39-
-e 's|OXICLOUD_STATIC_PATH=.*|OXICLOUD_STATIC_PATH=/opt/oxicloud/static|' \
52+
sed -e 's|OXICLOUD_STORAGE_PATH=.*|OXICLOUD_STORAGE_PATH=/mnt/oxicloud|' \
53+
-e 's|OXICLOUD_SERVER_HOST=.*|OXICLOUD_SERVER_HOST=0.0.0.0|' \
54+
-e 's|OXICLOUD_STATIC_PATH=.*|OXICLOUD_STATIC_PATH=/opt/oxicloud/static-dist|' \
4055
-e "s|^#OXICLOUD_BASE_URL=.*|OXICLOUD_BASE_URL=http://${LOCAL_IP}:8086|" \
41-
-e "s|_STRING=.*|_STRING=${DATABASE_URL}|" \
42-
-e "s|DATABASE_URL=.*|DATABASE_URL=${DATABASE_URL}|" \
56+
-e "s|OXICLOUD_DB_CONNECTION_STRING=.*|OXICLOUD_DB_CONNECTION_STRING=${DATABASE_URL}|" \
57+
-e "s|^DATABASE_URL=.*|DATABASE_URL=${DATABASE_URL}|" \
4358
-e "s|^#OXICLOUD_JWT_SECRET=.*|OXICLOUD_JWT_SECRET=$(openssl rand -hex 32)|" \
44-
-e 's|^#OXICLOUD_ENABLE|OXICLOUD_ENABLE|g' \
4559
/opt/oxicloud/example.env >/etc/oxicloud/.env
4660
chmod 600 /etc/oxicloud/.env
4761
msg_ok "Configured OxiCloud"

0 commit comments

Comments
 (0)