Files
pi_mcps/plans/frpc-truenas-deploy.sh
T

77 lines
2.0 KiB
Bash

#!/bin/bash
# frpc deployment script for TrueNAS
# Run from Fedora: bash plans/frpc-truenas-deploy.sh
# Installs frpc on TrueNAS and sets up tunnel to expose Gitea publicly
TRUENAS="root@192.168.188.119"
VPS_IP="85.214.154.199"
FRP_TOKEN="5f64a6f20bb2cb8c3133ecac8ca3f0571d7d64dff910225040bfc0c60a106c81"
FRP_VERSION="0.68.1"
echo "=== Deploying frpc on TrueNAS ==="
ssh -i /home/pplate/.ssh/id_ed25519_homelab $TRUENAS << REMOTE
set -e
# TrueNAS root filesystem is read-only — install to /mnt which is persistent ZFS
INSTALL_DIR=/mnt/VM_SSD_Pool/frp
mkdir -p \$INSTALL_DIR
# Download frpc binary
echo "Downloading frp ${FRP_VERSION}..."
curl -sL https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz \
-o /tmp/frp.tar.gz
tar xzf /tmp/frp.tar.gz -C /tmp/
cp /tmp/frp_${FRP_VERSION}_linux_amd64/frpc \$INSTALL_DIR/frpc
chmod +x \$INSTALL_DIR/frpc
\$INSTALL_DIR/frpc --version
# Write frpc config
cat > \$INSTALL_DIR/frpc.toml << 'TOML'
serverAddr = "${VPS_IP}"
serverPort = 7000
auth.method = "token"
auth.token = "${FRP_TOKEN}"
log.to = "/tmp/frpc.log"
log.level = "info"
[[proxies]]
name = "gitea"
type = "tcp"
localIP = "127.0.0.1"
localPort = 30008
remotePort = 30008
TOML
echo "frpc config written:"
cat \$INSTALL_DIR/frpc.toml
# Create init script (TrueNAS uses systemd-like init but custom)
# Use /etc/local.d/ for persistent startup scripts on TrueNAS SCALE
# Actually TrueNAS SCALE uses systemd — write a service to /etc/systemd/system/
cat > /etc/systemd/system/frpc.service << 'SVCEOF'
[Unit]
Description=frp client - tunnel to plate.software VPS
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/mnt/VM_SSD_Pool/frp/frpc -c /mnt/VM_SSD_Pool/frp/frpc.toml
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
SVCEOF
systemctl daemon-reload
systemctl enable frpc
systemctl start frpc
sleep 3
systemctl status frpc --no-pager | head -15
echo ""
echo "=== frpc deployed and running ==="
echo "Gitea should now be reachable at https://git.plate.software"
REMOTE