chore(homelab): add homelab plans, frpc deploy script, odysseus workspace, heretic docs
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user