rego-tunnel: share APP_DATA_DIR via /hostshare + fix compose.json env
Some checks failed
Test / test (push) Has been cancelled
Some checks failed
Test / test (push) Has been cancelled
This commit is contained in:
@@ -31,22 +31,24 @@ if [ -z "${WAN_IF}" ]; then
|
|||||||
WAN_IF="eth1"
|
WAN_IF="eth1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create bridge if not exists
|
# Ensure bridge exists
|
||||||
if ! ip link show "$BRIDGE_NAME" &>/dev/null; then
|
if ! ip link show "$BRIDGE_NAME" &>/dev/null; then
|
||||||
ip link add "$BRIDGE_NAME" type bridge
|
ip link add "$BRIDGE_NAME" type bridge
|
||||||
ip addr add "$BRIDGE_CIDR" dev "$BRIDGE_NAME"
|
|
||||||
ip link set "$BRIDGE_NAME" up
|
|
||||||
echo "Bridge $BRIDGE_NAME created with IP $BRIDGE_CIDR"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create TAP device if not exists
|
# Ensure bridge has address and is up
|
||||||
|
ip addr show dev "$BRIDGE_NAME" | grep -qF "$BRIDGE_CIDR" || ip addr add "$BRIDGE_CIDR" dev "$BRIDGE_NAME" 2>/dev/null || true
|
||||||
|
ip link set "$BRIDGE_NAME" up
|
||||||
|
|
||||||
|
# Ensure TAP exists
|
||||||
if ! ip link show "$TAP_NAME" &>/dev/null; then
|
if ! ip link show "$TAP_NAME" &>/dev/null; then
|
||||||
ip tuntap add "$TAP_NAME" mode tap
|
ip tuntap add "$TAP_NAME" mode tap
|
||||||
ip link set "$TAP_NAME" master "$BRIDGE_NAME"
|
|
||||||
ip link set "$TAP_NAME" up
|
|
||||||
echo "TAP device $TAP_NAME created and attached to $BRIDGE_NAME"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Ensure TAP is attached and up
|
||||||
|
ip link set "$TAP_NAME" master "$BRIDGE_NAME" 2>/dev/null || true
|
||||||
|
ip link set "$TAP_NAME" up
|
||||||
|
|
||||||
# Enable IP forwarding
|
# Enable IP forwarding
|
||||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||||
|
|
||||||
|
|||||||
@@ -61,12 +61,12 @@ if [ "$AUTO_MOUNT_9P" = "1" ]; then
|
|||||||
|
|
||||||
if [ -n "$ROOT_PART" ]; then
|
if [ -n "$ROOT_PART" ]; then
|
||||||
# already mounted from loop above
|
# already mounted from loop above
|
||||||
mkdir -p "$VMROOT_MNT/shared" "$VMROOT_MNT/mnt/TSCLIENT"
|
mkdir -p "$VMROOT_MNT/shared" "$VMROOT_MNT/hostshare"
|
||||||
|
|
||||||
FSTAB="$VMROOT_MNT/etc/fstab"
|
FSTAB="$VMROOT_MNT/etc/fstab"
|
||||||
# Add entries only if missing
|
# Add entries only if missing
|
||||||
grep -qE "^[[:space:]]*${SHARED_TAG}[[:space:]]+" "$FSTAB" || echo "${SHARED_TAG} /shared 9p trans=virtio,version=9p2000.L,msize=262144,_netdev,nofail,x-systemd.automount 0 0" >> "$FSTAB"
|
grep -qE "^[[:space:]]*${SHARED_TAG}[[:space:]]+" "$FSTAB" || echo "${SHARED_TAG} /shared 9p trans=virtio,version=9p2000.L,msize=262144,_netdev,nofail,x-systemd.automount 0 0" >> "$FSTAB"
|
||||||
grep -qE "^[[:space:]]*${TSCLIENT_TAG}[[:space:]]+" "$FSTAB" || echo "${TSCLIENT_TAG} /mnt/TSCLIENT 9p trans=virtio,version=9p2000.L,msize=262144,_netdev,nofail,x-systemd.automount 0 0" >> "$FSTAB"
|
grep -qE "^[[:space:]]*${TSCLIENT_TAG}[[:space:]]+" "$FSTAB" || echo "${TSCLIENT_TAG} /hostshare 9p trans=virtio,version=9p2000.L,msize=262144,_netdev,nofail,x-systemd.automount 0 0" >> "$FSTAB"
|
||||||
|
|
||||||
umount "$VMROOT_MNT" >/dev/null 2>&1 || true
|
umount "$VMROOT_MNT" >/dev/null 2>&1 || true
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -111,15 +111,6 @@
|
|||||||
"required": true,
|
"required": true,
|
||||||
"env_variable": "LEASE_TIME",
|
"env_variable": "LEASE_TIME",
|
||||||
"default": "12h"
|
"default": "12h"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "text",
|
|
||||||
"label": "Host share directory",
|
|
||||||
"hint": "Directory on the host to share with the VM (exported to the VM as 9p tag TSCLIENT)",
|
|
||||||
"placeholder": "${APP_DATA_DIR}",
|
|
||||||
"required": false,
|
|
||||||
"env_variable": "TSCLIENT",
|
|
||||||
"default": "${APP_DATA_DIR}"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"supported_architectures": ["amd64"]
|
"supported_architectures": ["amd64"]
|
||||||
|
|||||||
@@ -15,43 +15,39 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "BRIDGE_NAME",
|
"key": "BRIDGE_NAME",
|
||||||
"value": "${BRIDGE_NAME:-br-rego-vpn}"
|
"value": "${BRIDGE_NAME}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "TAP_NAME",
|
"key": "TAP_NAME",
|
||||||
"value": "${TAP_NAME:-tap0}"
|
"value": "${TAP_NAME}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "BRIDGE_CIDR",
|
"key": "BRIDGE_CIDR",
|
||||||
"value": "${BRIDGE_CIDR:-100.100.0.1}"
|
"value": "${BRIDGE_CIDR}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "VM_NET_IP",
|
"key": "VM_NET_IP",
|
||||||
"value": "${VM_NET_IP:-100.100.0.2}"
|
"value": "${VM_NET_IP}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "VM_SUBNET",
|
"key": "VM_SUBNET",
|
||||||
"value": "${VM_SUBNET:-100.100.0.0}"
|
"value": "${VM_SUBNET}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "TARGET_IP",
|
"key": "TARGET_IP",
|
||||||
"value": "${TARGET_IP:-10.35.33.230}"
|
"value": "${TARGET_IP}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "VM_MAC",
|
"key": "VM_MAC",
|
||||||
"value": "${VM_MAC:-52:54:00:12:34:56}"
|
"value": "${VM_MAC}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "DNS_SERVERS",
|
"key": "DNS_SERVERS",
|
||||||
"value": "${DNS_SERVERS:-1.1.1.1,8.8.8.8}"
|
"value": "${DNS_SERVERS}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "LEASE_TIME",
|
"key": "LEASE_TIME",
|
||||||
"value": "${LEASE_TIME:-12h}"
|
"value": "${LEASE_TIME}"
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "TSCLIENT",
|
|
||||||
"value": "${TSCLIENT:-${APP_DATA_DIR}}"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"internalPort": 8006,
|
"internalPort": 8006,
|
||||||
@@ -71,7 +67,7 @@
|
|||||||
"private": false
|
"private": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"hostPath": "${TSCLIENT:-${APP_DATA_DIR}}",
|
"hostPath": "${APP_DATA_DIR}",
|
||||||
"containerPath": "/hostshare",
|
"containerPath": "/hostshare",
|
||||||
"readOnly": false,
|
"readOnly": false,
|
||||||
"shared": false,
|
"shared": false,
|
||||||
|
|||||||
@@ -24,11 +24,10 @@ services:
|
|||||||
- VM_MAC=${VM_MAC:-52:54:00:12:34:56}
|
- VM_MAC=${VM_MAC:-52:54:00:12:34:56}
|
||||||
- DNS_SERVERS=${DNS_SERVERS:-1.1.1.1,8.8.8.8}
|
- DNS_SERVERS=${DNS_SERVERS:-1.1.1.1,8.8.8.8}
|
||||||
- LEASE_TIME=${LEASE_TIME:-12h}
|
- LEASE_TIME=${LEASE_TIME:-12h}
|
||||||
- TSCLIENT=${TSCLIENT:-${APP_DATA_DIR}}
|
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/runtipi/user-config/runtipi/rego-tunnel/storage/linux-vm.qcow2:/vm/linux-vm.qcow2
|
- /etc/runtipi/user-config/runtipi/rego-tunnel/storage/linux-vm.qcow2:/vm/linux-vm.qcow2
|
||||||
- /etc/runtipi/user-config/runtipi/rego-tunnel/shared:/shared
|
- /etc/runtipi/user-config/runtipi/rego-tunnel/shared:/shared
|
||||||
- ${TSCLIENT:-${APP_DATA_DIR}}:/hostshare
|
- ${APP_DATA_DIR}:/hostshare
|
||||||
networks:
|
networks:
|
||||||
- tipi_main_network
|
- tipi_main_network
|
||||||
sysctls:
|
sysctls:
|
||||||
|
|||||||
Reference in New Issue
Block a user