56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# First-time setup for Cortex Status Dashboard on cortex.hydrascale.net
|
|
set -euo pipefail
|
|
|
|
echo "==> Installing Erlang & Elixir..."
|
|
# Add Erlang Solutions repo for latest OTP
|
|
apt-get update -qq
|
|
apt-get install -y -qq software-properties-common apt-transport-https
|
|
wget -q https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
|
|
dpkg -i erlang-solutions_2.0_all.deb
|
|
rm erlang-solutions_2.0_all.deb
|
|
apt-get update -qq
|
|
apt-get install -y -qq esl-erlang elixir
|
|
|
|
echo "==> Installing hex and rebar..."
|
|
mix local.hex --force
|
|
mix local.rebar --force
|
|
|
|
echo "==> Setting up project directory..."
|
|
APP_DIR="/data/cortex_status"
|
|
mkdir -p "$APP_DIR"
|
|
|
|
echo "==> Generating secret key..."
|
|
SECRET=$(mix phx.gen.secret)
|
|
cat > "$APP_DIR/.env" << EOF
|
|
SECRET_KEY_BASE=$SECRET
|
|
PHX_HOST=status.hydrascale.net
|
|
PORT=4000
|
|
EOF
|
|
chmod 600 "$APP_DIR/.env"
|
|
|
|
echo "==> Installing systemd service..."
|
|
cp "$APP_DIR/deploy/cortex-status.service" /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable cortex-status
|
|
|
|
echo "==> Adding Caddy config..."
|
|
echo ""
|
|
echo "Add this block to /etc/caddy/Caddyfile:"
|
|
echo ""
|
|
cat << 'CADDY'
|
|
status.hydrascale.net {
|
|
reverse_proxy localhost:4000
|
|
encode gzip
|
|
}
|
|
CADDY
|
|
echo ""
|
|
echo "Then run: caddy validate --config /etc/caddy/Caddyfile && systemctl reload caddy"
|
|
|
|
echo ""
|
|
echo "==> Setup complete!"
|
|
echo "Next steps:"
|
|
echo " 1. Copy project files to $APP_DIR"
|
|
echo " 2. Update Caddyfile (see above)"
|
|
echo " 3. Run: cd $APP_DIR && bash deploy/deploy.sh"
|