35 lines
874 B
Bash
35 lines
874 B
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
cd "${ROOT}"
|
||
|
||
export DEBIAN_FRONTEND=noninteractive
|
||
apt-get update -qq
|
||
apt-get install -y python3 python3-venv python3-pip git ca-certificates curl
|
||
|
||
if [[ ! -d .venv ]]; then
|
||
python3 -m venv .venv
|
||
fi
|
||
# shellcheck disable=SC1091
|
||
source .venv/bin/activate
|
||
pip install -U pip
|
||
pip install -r requirements.txt
|
||
|
||
if [[ ! -f .env ]]; then
|
||
cp .env.example .env
|
||
# 生成随机 SECRET
|
||
SECRET="$(python3 - <<'PY'
|
||
import secrets
|
||
print(secrets.token_urlsafe(32))
|
||
PY
|
||
)"
|
||
IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
|
||
IP="${IP:-127.0.0.1}"
|
||
sed -i "s|^FLASK_SECRET_KEY=.*|FLASK_SECRET_KEY=${SECRET}|" .env
|
||
sed -i "s|^PUBLIC_BASE_URL=.*|PUBLIC_BASE_URL=http://${IP}:5800|" .env
|
||
echo "已生成 .env (PUBLIC_BASE_URL=http://${IP}:5800)"
|
||
fi
|
||
|
||
mkdir -p data releases
|
||
echo "setup_env 完成"
|