first commit
This commit is contained in:
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
[[ ${EUID:-$(id -u)} -eq 0 ]] || { echo "Run as root: sudo ./install-lxc.sh" >&2; exit 1; }
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends build-essential curl ca-certificates pkg-config
|
||||
if ! command -v cargo >/dev/null 2>&1; then
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
|
||||
source /root/.cargo/env
|
||||
fi
|
||||
cargo build --release
|
||||
|
||||
id gree-controller >/dev/null 2>&1 || useradd --system --home /var/lib/gree-controller --shell /usr/sbin/nologin gree-controller
|
||||
install -d -o gree-controller -g gree-controller -m 0750 /var/lib/gree-controller
|
||||
install -d -o root -g root -m 0755 /opt/gree-controller
|
||||
install -o root -g root -m 0755 target/release/gree-controller /opt/gree-controller/gree-controller
|
||||
install -o root -g root -m 0644 systemd/gree-controller.service /etc/systemd/system/gree-controller.service
|
||||
|
||||
if [[ ! -f /etc/gree-controller.env ]]; then
|
||||
token="$(od -An -N24 -tx1 /dev/urandom | tr -d ' \n')"
|
||||
cat > /etc/gree-controller.env <<ENV
|
||||
GREE_CONTROLLER_BIND=0.0.0.0:8787
|
||||
GREE_CONTROLLER_DATABASE=/var/lib/gree-controller/gree-controller.db
|
||||
GREE_CONTROLLER_APP_TOKEN=$token
|
||||
GREE_CONTROLLER_SIMULATE=true
|
||||
GREE_CONTROLLER_AUTO_SEED=true
|
||||
GREE_CONTROLLER_POLL_INTERVAL_SECONDS=15
|
||||
GREE_CONTROLLER_ZONE_INTERVAL_SECONDS=5
|
||||
GREE_CONTROLLER_DISCOVERY_TIMEOUT_MS=3000
|
||||
GREE_CONTROLLER_DISCOVERY_BROADCAST=255.255.255.255:7000
|
||||
GREE_CONTROLLER_ID=gree-controller
|
||||
RUST_LOG=info,tower_http=info
|
||||
HA_URL=
|
||||
HA_TOKEN=
|
||||
HA_ENTITY_ID=
|
||||
ENV
|
||||
chmod 0600 /etc/gree-controller.env
|
||||
echo "Generated API token: $token"
|
||||
echo "Saved to /etc/gree-controller.env"
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now gree-controller.service
|
||||
systemctl --no-pager --full status gree-controller.service || true
|
||||
ip="$(hostname -I | awk '{print $1}')"
|
||||
echo "Panel: http://${ip:-LXC_ADDRESS}:8787"
|
||||
echo "Logs: journalctl -u gree-controller -f"
|
||||
Reference in New Issue
Block a user