Create OpenStack DualStack or IPv6 only VM

# Create router
openstack router create test-router1 \
  --centralized \
  --ha \
  --external-gateway public
 
# Show available tenant IPv6 subnet
openstack subnet pool list --share | grep tenant-subnet-pool-v6
 
# Create network
openstack network create test-network1
 
# DUAL-STACK: Create IPv4 subnet (skip for IPv6 only)
openstack subnet create test-subnet1-ipv4 \
  --network test-network1 \
  --subnet-range 10.11.12.0/24
 
# DUAL-STACK: Attach IPv4 subnet to router (skip for IPv6 only)
openstack router add subnet test-router1 test-subnet1-ipv4
 
# Create IPv6 subnet
openstack subnet create test-subnet1-ipv6 \
  --network test-network1 \
  --ip-version 6 \
  --subnet-pool tenant-subnet-pool-v6 \
  --prefix-length 64 \
  --ipv6-ra-mode dhcpv6-stateless \
  --ipv6-address-mode dhcpv6-stateless
 
# Attach IPv6 subnet to router
openstack router add subnet test-router1 test-subnet1-ipv6
 
# OPTINAL: allow access from outside
SECURITY_GROUP=test-secgroup
openstack security group create ${SECURITY_GROUP}
 
# DUAL-STACK: allow access to Floating FIP from outside (skip for IPv6 only)
openstack security group rule create ${SECURITY_GROUP} --ethertype IPv4 --protocol icmp --ingress --remote-ip 0.0.0.0/0
openstack security group rule create ${SECURITY_GROUP} --ethertype IPv4 --protocol icmp --egress --remote-ip 0.0.0.0/0
openstack security group rule create ${SECURITY_GROUP} --ethertype IPv4 --protocol tcp --dst-port 22 --remote-ip 0.0.0.0/0

Home Assistant ustreamer

Video Capture AV USB card (ARKMICRO 18ec:5555) / dmesg

[141319.682908] usb 1-1.4: New USB device found, idVendor=18ec, idProduct=5555, bcdDevice= 1.00
[141319.682941] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[141319.682955] usb 1-1.4: Product: USB2.0 PC CAMERA
[141319.682966] usb 1-1.4: Manufacturer: ARKMICRO
[141319.685776] usb 1-1.4: Found UVC 1.00 device USB2.0 PC CAMERA (18ec:5555)

TODO: Fix device permissions

chmod 0666 /dev/video0
 
# cat /etc/udev/rules.d/99-camera.rules
# DEVNAME="/dev/video0",MODE="0666"

Create container
https://hub.docker.com/r/mkuf/ustreamer

docker run -d \
  --name ustreamer \
  --restart always \
  -p 8080:8080 \
  --device /dev/video0:/dev/video0 \
  mkuf/ustreamer:latest

Stream
http://ha:8080/?action=stream

Debug

LineageOS 21 / Android 14 on Samsung Galaxy A51

TWRP 3.7.0 on Samsung Galaxy A51 SM-A515F
https://www.recovery-mode.com/twrp/how-to-flash-twrp-3-7-0-on-samsung-galaxy-a51-sm-a515f-android-13-u8-a515fxxu8hwi1-firmware.html
https://www.youtube.com/watch?v=_-Opl8fKUAE

Odin3_v3.14.4.zip
Root_A51_U8_androidhowto.tar
 
# download to SD card from Telegram
DynaPatch-V2.0.zip
Disable_Dm-Verity_ForceEncrypt_03.04.2020.zip
multidisabler-samsung-3.1.3.zip
 
adb reboot recovery

LineageOS 21 / Android 14 ROM for Samsung Galaxy A51
https://www.recovery-mode.com/custom-rom/lineageos-21-unofficial-android-14-rom-for-samsung-galaxy-a51-update-240424.html
https://drive.google.com/drive/folders/1LqIfbjuEhngEMTNGa5SOPqoGgDyCDs5n

lineage-21.0-20240424-UNOFFICIAL-a51.zip

Install minimal PlayStore with NikGapps for Android 14(U)
https://nikgapps.com/downloads#downloads
https://sourceforge.net/projects/nikgapps/files/Releases/NikGapps-U/07-Nov-2023/NikGapps-core-arm64-14-20231107-signed.zip/download

NikGapps-core-arm64-14-20231107-signed.zip

Install Android Auto
https://sourceforge.net/projects/nikgapps/files/Releases/Addons-U/07-Nov-2023/

NikGapps-Addon-14-AndroidAuto-20231107-signed.zip

Install all zip files in TWRP recovery then reboot the phone

Show neutron router namespaces by floating IP (FIP)

FLOATING_IP=1.2.3.4
 
# search in floating IP table
ROUTER_ID=$(openstack floating ip list --floating-ip-address ${FLOATING_IP} --long -c Router -f value)
if [ -z ${ROUTER_ID} ]; then
    # search in router
    ROUTER_ID=$(openstack router list --long | grep ${FLOATING_IP} | cut -d" " -f2)
fi
 
PROJECT_ID=$(openstack router show ${ROUTER_ID} -c project_id -f value)
 
echo -e "\e[34m# Project"
openstack router show ${ROUTER_ID} -c id -c name 
 
echo
echo -e "\e[34m# Router"
openstack project show ${PROJECT_ID} -c id -c name -c description
 
echo
echo -e "\e[34m# Router namespaces"
openstack network agent list --router ${ROUTER_ID} --long --sort-column 'HA State'
echo
 

Install Home Assistant on Raspberry Pi

Install Home Assistant on Raspberry Pi
https://www.home-assistant.io/installation/raspberrypi/

# Install rpi-imager
sudo apt install rpi-imager
 
# Create Homeassistant SD-Card
# Other specific-purpose OS > Home assistants and home Automation > Home Assistant OS
 
# Connect to HA
http://YOUR_HOME_ASSISTANT_IP:8123/
 
# Create Home Assistant account
 
# Install SSH plugin in Add-on-Store
http://YOUR_HOME_ASSISTANT_IP:8123/hassio/addon/core_ssh/info
 
# Open SSH Web CLI
http://YOUR_HOME_ASSISTANT_IP:8123/hassio/ingress/core_ssh
 
# get wifi data from workstation
WIFI_SSID="$(nmcli dev wifi show-password | grep SSID | cut -d' ' -f2-)" 
WIFI_PASS="$(nmcli dev wifi show-password | grep Pass | cut -d' ' -f2-)"
echo ha network update wlan0 \
  --ipv4-method auto \
  --wifi-auth wpa-psk \
  --wifi-mode infrastructure \
  --wifi-ssid \'${WIFI_SSID}\' \
  --wifi-psk \'${WIFI_PASS}\'
 
# paste output to SSH online console 
 
# debug
ha network info

Enable SSH key to hypervisor (Raspberry Pi)
https://community.home-assistant.io/t/howto-how-to-access-the-home-assistant-os-host-itself-over-ssh/263352/6