404
+ +Page not found
+ + +diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..69d5afb --- /dev/null +++ b/404.html @@ -0,0 +1,132 @@ + + +
+ + + + +Page not found
+ + +Conbee II - an universal Zigbee USB-Gateway - offical website
+visit deCONZ in Proxmox LXC-Container (Tutorial)
+visit github.com/dresden-elektronik/deconz-rest-plugin/wiki/Update-deCONZ-manually
+firmware update using Windows 10 is recommended!!!
+download deconz-firmware here
- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +all about OPNsense installation and configuration
+VM Settings
+Installation (all default) with username = installer, password = opnsense
+For Minisforum HM90: add PCI Ethernet to VM
+# on proxmox host:
+lspci | grep Ethernet
+# 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15) -> 1 GBit
+# 04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 01) -> 2.5 GBit
+cat /etc/network/interfaces
+# check which device is briged to vmbr0
+# -> change it, if it is the wrong one (eno1 or enp4s0, enp4s0 = 2.5 GBit in my case)
+ls -l /sys/class/net/enp4s0/device
+# lrwxrwxrwx 1 root root 0 Aug 26 09:09 /sys/class/net/enp4s0/device -> ../../../0000:04:00.0
+ls -l /sys/class/net/eno1/device
+# ls: cannot access '/sys/class/net/eno1/device': No such file or directory
+#
+# -> enp4s0 (04:00.0) is the device which has an ip !
+# -> means 02:00.0 is not connected and is available for pci passthrough!
+
+Proxmox VM Settings -> Hardware -> Add PCI-Device -> Raw Device -> 0000:02:00.0 -> All Functions -> Add
+After installation, choose Option 8 (Shell), disable Firewall once, to be able to logon:
+service pf onestop
+
+connect to WebIF, update to latest version (not major release) from your configuration file
+connect to WebIF, install the following packages
+os-acme-client
+os-chrony
+os-crowdsec
+os-ddclient
+os-dyndns
+os-igmp-proxy
+os-qemu-guest-agent
+os-siproxd
+os-theme-cicada
+os-upnp
+os-vnstat
+os-wireguard
+
+connect to WebIF, restore your backuped configuration
+PPPoE Configuration
+Firewall / Aliases -> add:
+Name: 1und1_VoIP_Ports
+Description: 1und1 VoIP Port Range
+Firewall / NAT / Port Forward -> add:
+Interface: WAN
+Description: Fritzbox VoIP
+Firewall / NAT / Outbound:
+Firewall / NAT / Outbound -> add:
+Interface: WAN
+Description: FritzBox VoIP
+Firewall / Rules / LAN -> add:
+Action: Pass
+Description: VoIP FritzBox
+Firewall / Rules / WAN -> add:
+if WAN as 'Check ip method' is not working:
+daemon=300
+syslog=yes # log update msgs to syslog
+pid=/var/run/ddclient.pid # record PID in file.
+ssl=yes
+...
+use=if, if=pppoe0, \
+protocol=duckdns, \
+login=<your DuckDNS E-Mail> , \
+password= <your DuckDNS Token> \
+3x3cut0r.duckdns.org
+
+
+hints:
+to prevent ERROR: rebind attack dynamic dns:
+DONE
+Services / ACME Client / Settings:
+Enable Plugin: Check
+Enable Auto Renewal: Check
+Services / ACME Client / Accounts / Accounts -> Add:
+Name:
Save
+Services / ACME Client / Challenge Types / Challenge Types -> Add:
+Challenge HTTP-01: (single Domain)
+Save
+Services / ACME Client / Automations / Automations -> Add:
+Enabled: Check
+Save
+Services / ACME Client / Certificates / Certificates -> Add:
+Enabled: Check
+Save
+Services / ACME Client / Certificates / Certificates:
+Issue/Renew All Certificates
+Check if your Certifice is issued under Services / ACME Client / Log Files:
+AcmeClient: imported ACME X.509 certificate: 3x3cut0r.duckdns.org
+AcmeClient: imprting ACME CA: R3
+AcmeClient: successfully issued/renewed certificate: 3x3cut0r.duckdns.org
+...
+
+
+System / Settings / Administration / SSL Certificate:
+SSL Certificate: < select your generated ACME Client Certificate >
+Save
+DONE
+if you have poor video conferencing performance, lags or it feels slow
+check out if you have BufferBloat on this site (speedtest)
+follow this guide to improve your BufferBloat with Traffic Shaping (only IF your ISP supports IPv6 !!!)
/usr/local/opnsense/service/conf/actions.d/actions_radvd.conf
+[restart]
+command:/usr/local/sbin/pluginctl -s radvd restart
+type:script
+description:Restart radvd
+
+
+service configd restart
+create cron: */10 4 * * * restart radvd
- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +all about proxmox installation and configuration
+ensure that this options are enabled:
+see official documentation on pve.proxmox.com
+login via ssh (port 22) or do the steps nativ with a keyboard
+install pve-no-subscription repository +skip this step if you have an enterprise subscription
+rm -f /etc/apt/sources.list.d/pve-enterprise.list
+wget https://raw.githubusercontent.com/3x3cut0r/vps/main/apt/sources.list.d/pve-no-subscription.list -O /etc/apt/sources.list.d/pve-no-subscription.list
+
+
+update packages
+apt update && apt upgrade -y
+
+
+install pve-no-subscription repository
+apt install htop iperf iperf3 ncdu ntpdate rfkill
+
+
+change /etc/chrony/chrony.conf
+...
+# Use Debian vendor zone.
+# pool 2.debian.pool.ntp.org iburst
+server 0.de.pool.ntp.org iburst
+server 1.de.pool.ntp.org iburst
+server 2.de.pool.ntp.org iburst
+...
+
+
+restart chrony
+systemctl restart chronyd
+
+
+change /etc/resolv.conf
+search local.net
+nameserver 1.1.1.1
+nameserver 1.0.0.1
+nameserver 2606:4700:4700::1111
+
+
+need to be done after every update from pve!
+remove the notice and restart the proxmox service
+cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
+sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
+
+
+revert the changes if something went wrong
+cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
+systemctl restart pveproxy.service
+
+
+the kernel-headers should match with your kernel version!!!
+apt install pve-headers-5.15 pve-headers-5.15.35-2-pve
+
+
+change which kernel should boot
+proxmox-boot-tool kernel list
+proxmox-boot-tool kernel add 5.15.35-2-pve
+# proxmox-boot-tool kernel remove <old-kernel-version>-pve
+proxmox-boot-tool refresh
+
+
+follow instructions on proxmox.com/wiki +and thomas-krenn.com
+Backend
+https://proxmox.ip:8006/
systemctl mask ifupdown-pre.service
+systemctl mask ifupdown2-pre.service
+systemctl mask systemd-udev-settle.service
+
+
+dmesg error on boot
+...
+[ 3.080602] bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin failed with error -2
+[ 3.081688] Bluetooth: hci0: Failed to load firmware file (-2)
+...
+[ 13.102071] Bluetooth: hci0: Execution of wmt command timed out
+[ 13.102128] Bluetooth: hci0: Failed to send wmt func ctrl (-110)
+[ 15.917971] usb 5-4: Failed to suspend device, error -110
+...
+
+disable bluetooth
+echo "blacklist btusb" > /etc/modprobe.d/bluetooth.conf
+echo "blacklist btrtl" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist btbcm" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist btintel" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist bluetooth" >> /etc/modprobe.d/bluetooth.conf
+
+
+dmesg error on boot
+...
+[ 3.082545] snd_hda_intel 0000:06:00.6: no codecs found!
+...
+
+disable sound
+echo "blacklist btusb" > /etc/modprobe.d/bluetooth.conf
+
+
+dmesg error on boot
+...
+[DEPEND] Dependency failed for Import ZFS pools by cache file
+[DEPEND] Dependency failed for Import ZFS pools by device scanning.
+...
+
+disable service
+systemctl disable zfs-import-cache.service
+systemctl disable zfs-import-scan
+
+
+install latest kernel + kernel-headers
+apt install pve-kernel-5.15 pve-kernel-5.15.35-2-pve pve-headers-5.15.35-2-pve pve-headrs-5.15
+
+
+you probably updated your kernel but forgot to install kernel-headers
+apt install pve-kernel-5.15.12-1-pve
+
+
+if your /etc/network/interfaces inside a VM/LXC gets overwritten by proxmox, do inside your VM/LXC:
+touch /etc/network/.pve-ignore.interfaces
+
+
+if your LXC Container boots only in about 4-5 mins -> switch IPv6 from DHCP to SLAAC
+DO NOT just simple apt update && apt upgrade -y
+you will run into error 4.6! if the kernel will be updated!
+you need to install the new pve-headers before updating your kernel!
apt update && apt upgrade
+# abort here with CTRL-C
+# check if the kernel will be updated
+# remember the new kernel version
+# apt install pve-headers-<enter new kernel version here>-pve
+apt install pve-headers-5.15.35-2-pve
+apt update && apt upgrade -y
+# now you need to change the kernel boot version (see 2.7)
+proxmox-boot-tool kernel list
+# check which kernel is listet under Manually selected kernels:
+proxmox-boot-tool kernel add <new-kernel-version>-pve
+# for example:
+# proxmox-boot-tool kernel add 5.15.35-2-pve
+proxmox-boot-tool kernel remove <old-kernel-version>-pve
+# for example:
+# proxmox-boot-tool kernel remove 5.15.35-1-pve
+proxmox-boot-tool refresh
+
+
+VMID: 110
+size: 1T
# get VMID from your container (e.g.: 110):
+pct list
+
+# stop the vm
+pct stop 110
+
+# resize vm
+# pct resize <VMID> <disk> <size>
+pct resize 110 rootfs 1T
+
+# DONE!
+# -----
+
+# To do it by hand:
+
+# get the path of the container disk (e.g.: /dev/pve/vm-110-disk-0):
+lvdisplay | grep "LV Path\|LV Size"
+
+# check the disk first
+# e2fsck -f <disk>
+e2fsck -f /dev/pve/vm-210-disk-0
+
+# resize the disk
+# resize2fs <disk> <size>
+resize2fs /dev/pve/vm-210-disk-0 1T
+
+# extend/reduce the LV size
+# lvreduce -L <size> <path>
+# lvextend -L <size> <path>
+lvextend -L 1T /dev/pve/vm-210-disk-0
+
+# check if the size has changed in the container config file:
+vi /etc/pve/lxc/110.conf
+# rootfs: local-lvm:vm-110-disk-0,size=1T
+
+# start the vm
+pct start 110
+
+
+see codingpackets.com/blog/proxmox-vm-bridge-port-mirror
+7.1 install openvswitch-switch
+apt install openvswitch-switch wget
+
+
+7.2 create /opt/scripts/network/mirror_ports.sh script
+mkdir -p /var/lib/vz/snippets/
+wget https://raw.githubusercontent.com/3x3cut0r/vps/main/var/lib/vz/snippets/port-mirror.sh -O /var/lib/vz/snippets/port-mirror.sh
+chmod +x /var/lib/vz/snippets/port-mirror.sh
+
+
+7.3 apply script to vm/lxc container
+# for lxc container id 100
+pct set 100 --hookscript local:snippets/port-mirror.sh
+
+# for vm id 100
+qm set 100 --hookscript local:snippets/port-mirror.sh
+
+- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +all about proxmox installation and configuration
+see official documentation on pve.proxmox.com
+login via ssh (port 22) or do the steps nativ with a keyboard
+install pve-no-subscription repository +skip this step if you have an enterprise subscription
+rm -f /etc/apt/sources.list.d/pve-enterprise.list
+wget https://raw.githubusercontent.com/3x3cut0r/vps/main/apt/sources.list.d/pve-no-subscription.list -O /etc/apt/sources.list.d/pve-no-subscription.list
+
+
+update packages
+apt update && apt upgrade -y
+
+
+install pve-no-subscription repository
+apt install htop iperf iperf3 ncdu ntpdate rfkill
+
+
+change /etc/chrony/chrony.conf
+...
+# Use Debian vendor zone.
+# pool 2.debian.pool.ntp.org iburst
+server 0.de.pool.ntp.org iburst
+server 1.de.pool.ntp.org iburst
+server 2.de.pool.ntp.org iburst
+...
+
+
+restart chrony
+systemctl restart chronyd
+
+
+change /etc/resolv.conf
+search local.net
+nameserver 1.1.1.1
+nameserver 1.0.0.1
+nameserver 2606:4700:4700::1111
+
+
+need to be done after every update from pve!
+remove the notice and restart the proxmox service
+cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
+sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
+
+
+revert the changes if something went wrong
+cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
+systemctl restart pveproxy.service
+
+
+the kernel-headers should match with your kernel version!!!
+apt install pve-headers-5.15 pve-headers-5.15.35-2-pve
+
+
+change which kernel should boot
+proxmox-boot-tool kernel list
+proxmox-boot-tool kernel add 5.15.35-2-pve
+# proxmox-boot-tool kernel remove <old-kernel-version>-pve
+proxmox-boot-tool refresh
+
+
+follow instructions on proxmox.com/wiki +and thomas-krenn.com
+Backend
+https://proxmox.ip:8006/
systemctl mask ifupdown-pre.service
+systemctl mask ifupdown2-pre.service
+systemctl mask systemd-udev-settle.service
+
+
+dmesg error on boot
+...
+[ 3.080602] bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin failed with error -2
+[ 3.081688] Bluetooth: hci0: Failed to load firmware file (-2)
+...
+[ 13.102071] Bluetooth: hci0: Execution of wmt command timed out
+[ 13.102128] Bluetooth: hci0: Failed to send wmt func ctrl (-110)
+[ 15.917971] usb 5-4: Failed to suspend device, error -110
+...
+
+disable bluetooth
+echo "blacklist btusb" > /etc/modprobe.d/bluetooth.conf
+echo "blacklist btrtl" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist btbcm" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist btintel" >> /etc/modprobe.d/bluetooth.conf
+echo "blacklist bluetooth" >> /etc/modprobe.d/bluetooth.conf
+
+
+dmesg error on boot
+...
+[ 3.082545] snd_hda_intel 0000:06:00.6: no codecs found!
+...
+
+disable sound
+echo "blacklist btusb" > /etc/modprobe.d/bluetooth.conf
+
+
+dmesg error on boot
+...
+[DEPEND] Dependency failed for Import ZFS pools by cache file
+[DEPEND] Dependency failed for Import ZFS pools by device scanning.
+...
+
+disable service
+systemctl disable zfs-import-cache.service
+systemctl disable zfs-import-scan
+
+
+install latest kernel + kernel-headers
+apt install pve-kernel-5.15 pve-kernel-5.15.35-2-pve pve-headers-5.15.35-2-pve pve-headrs-5.15
+
+
+you probably updated your kernel but forgot to install kernel-headers
+apt install pve-kernel-5.15.12-1-pve
+
+
+if your /etc/network/interfaces inside a VM/LXC gets overwritten by proxmox, do inside your VM/LXC:
+touch /etc/network/.pve-ignore.interfaces
+
+
+if your LXC Container boots only in about 4-5 mins -> switch IPv6 from DHCP to SLAAC
+DO NOT just simple apt update && apt upgrade -y
+you will run into error 4.6! if the kernel will be updated!
+you need to install the new pve-headers before updating your kernel!
apt update && apt upgrade
+# abort here with CTRL-C
+# check if the kernel will be updated
+# remember the new kernel version
+# apt install pve-headers-<enter new kernel version here>-pve
+apt install pve-headers-5.15.35-2-pve
+apt update && apt upgrade -y
+# now you need to change the kernel boot version (see 2.7)
+proxmox-boot-tool kernel list
+# check which kernel is listet under Manually selected kernels:
+proxmox-boot-tool kernel add <new-kernel-version>-pve
+# for example:
+# proxmox-boot-tool kernel add 5.15.35-2-pve
+proxmox-boot-tool kernel remove <old-kernel-version>-pve
+# for example:
+# proxmox-boot-tool kernel remove 5.15.35-1-pve
+proxmox-boot-tool refresh
+
+
+VMID: 110
+size: 1T
# get VMID from your container (e.g.: 110):
+pct list
+
+# stop the vm
+pct stop 110
+
+# resize vm
+# pct resize <VMID> <disk> <size>
+pct resize 110 rootfs 1T
+
+# DONE!
+# -----
+
+# To do it by hand:
+
+# get the path of the container disk (e.g.: /dev/pve/vm-110-disk-0):
+lvdisplay | grep "LV Path\|LV Size"
+
+# check the disk first
+# e2fsck -f <disk>
+e2fsck -f /dev/pve/vm-210-disk-0
+
+# resize the disk
+# resize2fs <disk> <size>
+resize2fs /dev/pve/vm-210-disk-0 1T
+
+# extend/reduce the LV size
+# lvreduce -L <size> <path>
+# lvextend -L <size> <path>
+lvextend -L 1T /dev/pve/vm-210-disk-0
+
+# check if the size has changed in the container config file:
+vi /etc/pve/lxc/110.conf
+# rootfs: local-lvm:vm-110-disk-0,size=1T
+
+# start the vm
+pct start 110
+
+
+see codingpackets.com/blog/proxmox-vm-bridge-port-mirror
+7.1 install openvswitch-switch
+apt install openvswitch-switch wget
+
+
+7.2 create /opt/scripts/network/mirror_ports.sh script
+mkdir -p /var/lib/vz/snippets/
+wget https://raw.githubusercontent.com/3x3cut0r/vps/main/var/lib/vz/snippets/port-mirror.sh -O /var/lib/vz/snippets/port-mirror.sh
+chmod +x /var/lib/vz/snippets/port-mirror.sh
+
+
+7.3 apply script to vm/lxc container
+# for lxc container id 100
+pct set 100 --hookscript local:snippets/port-mirror.sh
+
+# for vm id 100
+qm set 100 --hookscript local:snippets/port-mirror.sh
+
+- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..d575017 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"VPS - Virtual Private Server here you will find installation scripts config files docker related files howto's and more Find Me GitHub DockerHub License - This project is licensed under the GNU General Public License - see the gpl-3.0 for details.","title":"Startseite"},{"location":"#vps-virtual-private-server","text":"here you will find installation scripts config files docker related files howto's and more","title":"VPS - Virtual Private Server"},{"location":"#find-me","text":"GitHub DockerHub","title":"Find Me "},{"location":"#license","text":"- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.","title":"License "},{"location":"docker/","text":"","title":"docker"},{"location":"iot/","text":"","title":"iot"},{"location":"iot/CONBEE_II/","text":"Conbee II Conbee II - an universal Zigbee USB-Gateway - offical website installation in LXC container # Find Me # License firmware update 1. installation in LXC container visit deCONZ in Proxmox LXC-Container (Tutorial) use root instead of myadmin skip optional backup of current deCONZ-configuration replace /dev/ttyUSB... with /dev/ttyACM0 2. firmware update visit github.com/dresden-elektronik/deconz-rest-plugin/wiki/Update-deCONZ-manually firmware update using Windows 10 is recommended!!! download deconz-firmware here Find Me GitHub DockerHub License - This project is licensed under the GNU General Public License - see the gpl-3.0 for details.","title":"Conbee II"},{"location":"iot/CONBEE_II/#conbee-ii","text":"Conbee II - an universal Zigbee USB-Gateway - offical website installation in LXC container # Find Me # License firmware update","title":"Conbee II"},{"location":"iot/CONBEE_II/#1-installation-in-lxc-container","text":"visit deCONZ in Proxmox LXC-Container (Tutorial) use root instead of myadmin skip optional backup of current deCONZ-configuration replace /dev/ttyUSB... with /dev/ttyACM0","title":"1. installation in LXC container "},{"location":"iot/CONBEE_II/#2-firmware-update","text":"visit github.com/dresden-elektronik/deconz-rest-plugin/wiki/Update-deCONZ-manually firmware update using Windows 10 is recommended!!! download deconz-firmware here","title":"2. firmware update "},{"location":"iot/CONBEE_II/#find-me","text":"GitHub DockerHub","title":"Find Me "},{"location":"iot/CONBEE_II/#license","text":"- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.","title":"License "},{"location":"linux/","text":"","title":"linux"},{"location":"nginx/","text":"","title":"nginx"},{"location":"opnsense/OPNSENSE/","text":"OPNsense all about OPNsense installation and configuration Index prerequisites 0.1 VM installation (Proxmox) OPNsense defaults 1.9 GeoIP blocking VDSL2 configuration 2.1 modem configuration (DrayTek Vigor 165) 2.2 OPNsense configuration (PPPoE) VoIP (FritzBox + 1und1) 3.1 OPNsense configuration 3.2 FritzBox configuration Dynamic DNS (DuckDNS) 4.1 DuckDNS account 4.2 install os-ddclient plugin 4.3 configure os-ddclient plugin 4.4 ddclient via console (optional) 4.5 disable rebind attack warning Lets Encrypt Certificate via ACME-Client (SSL/HTTPS) 5.1 install os-acme-client plugin 5.2 configure os-acme-client plugin Improve your BufferBloat with Traffic Shaping restart radvd after 24h reconnect # Find Me # License 0. prerequisites 0.1 VM installation (Proxmox) VM Settings VM, not CT! Name: opnsense boot at start = yes OS Type = Linux, Kernel = 6.x - 2.6 Qemu Agent = yes HDD = 64+8 GiB (8GiB will be swap) CPU = 4, Sockets = 1, Typ = x86-64-v2-AES RAM = 4096 (MiB), Balloning = Off Installation (all default) with username = installer, password = opnsense For Minisforum HM90: add PCI Ethernet to VM # on proxmox host: lspci | grep Ethernet # 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15) -> 1 GBit # 04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 01) -> 2.5 GBit cat /etc/network/interfaces # check which device is briged to vmbr0 # -> change it, if it is the wrong one (eno1 or enp4s0, enp4s0 = 2.5 GBit in my case) ls -l /sys/class/net/enp4s0/device # lrwxrwxrwx 1 root root 0 Aug 26 09:09 /sys/class/net/enp4s0/device -> ../../../0000:04:00.0 ls -l /sys/class/net/eno1/device # ls: cannot access '/sys/class/net/eno1/device': No such file or directory # # -> enp4s0 (04:00.0) is the device which has an ip ! # -> means 02:00.0 is not connected and is available for pci passthrough! Proxmox VM Settings -> Hardware -> Add PCI-Device -> Raw Device -> 0000:02:00.0 -> All Functions -> Add After installation, choose Option 8 (Shell), disable Firewall once, to be able to logon: service pf onestop connect to WebIF, update to latest version (not major release) from your configuration file connect to WebIF, install the following packages os-acme-client os-chrony os-crowdsec os-ddclient os-dyndns os-igmp-proxy os-qemu-guest-agent os-siproxd os-theme-cicada os-upnp os-vnstat os-wireguard connect to WebIF, restore your backuped configuration 1. OPNsense defaults 1.9 GeoIP blocking for GeoIP blocking just follow the instructions here create an alias \"GeoIP\" for all countries you want to block create a rule to block this alias \"GeoIP\" on your WAN interface 2. VDSL2 configuration 2.1 modem configuration (DrayTek Vigor 165) Flash your Firmware to the newest MDM2 (Vigor165_v4.2.4_MDM2.zip) MDM2 is the most stable firmware for telekom in germany !!! Configure a LAN IP: (e.g.: 192.168.x.x /24) if you want your modem webinterface accessible from your LAN side, the LAN IP should be in the same subnet. disable DHCP-Server enable Bridge-Mode disable VLAN-Tagging for ADSL/VDSL (this is done by OPNsense) optional: disable HTTP-webinterface or enable the redirect to HTTPS optional: disable unnecessary services like ftp, telnet, ... 2.2 OPNsense configuration (PPPoE) PPPoE Configuration Interfaces -> Other Types -> VLAN -> create new VLAN: Parent Interface: VLAN Tag: 7 Description: VDSL2 Interfaces -> Assignments -> WAN: Save Interfaces -> WAN: IPv4 Configuration Type: PPPoE IPv6 Configuration Type: DHCPv6 PPPoE configuration: Username: \\FreePBX is a web-based open-source graphical user interface (GUI) that manages Asterisk, a voice over IP and telephony server.
+create lxc container with debian 11 template
+install with official documentation on wiki.freepbx.org/
- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +pihole installation inside a unprivileged LXC-Container
+create a LXC-Container:
+- unprivileged = 1
+- nesting = 1
+- template = debian-11-standard
+- disk-space = 30GiB
+- cpu-cores = 1
+- ram = 512 MiB
+- swap = 0 MiB
+- IPv4 = static (set ip + gw)
+- IPv6 = SLAAC
+- dns-domain = local.lan
+- dns-server = 1.1.1.1
apt update && apt upgrade -y
+apt install curl -y
+
+
+curl -sSL https://install.pi-hole.net | bash
+chown -R pihole:pihole /etc/pihole
+
+
+pihole -a -p
+
+
+cd /usr/local/bin
+wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
+mv cloudflared-linux-amd64 cloudflared
+sudo useradd -s /usr/sbin/nologin -r -M cloudflared
+echo -e "# Commandline args for cloudflared" > /etc/default/cloudflared
+echo -e "CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query" >> /etc/default/cloudflared
+sudo chmod +x /usr/local/bin/cloudflared
+sudo chown cloudflared:cloudflared /etc/default/cloudflared
+sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared
+wget https://raw.githubusercontent.com/3x3cut0r/vps/main/lxc/pihole/lib/systemd/system/cloudflared.service -O /lib/systemd/system/cloudflared.service
+sudo systemctl enable cloudflared
+sudo systemctl start cloudflared
+sudo systemctl status cloudflared
+
+
+test dns
+dig @127.0.0.1 -p 5053 google.com
+
+
+list tables
+sudo sqlite3 /etc/pihole/gravity.db .tables
+
+
+groups for blocklistproject
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (100, 1, 'Abuse', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (101, 1, 'Ads', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (102, 1, 'Basic', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (103, 1, 'Crypto', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (104, 1, 'Drugs', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (105, 1, 'Facebook', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (106, 1, 'Fraud', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (107, 1, 'Gambling', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (108, 1, 'Malware', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (109, 1, 'Phishing', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (110, 1, 'Piracy', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (111, 1, 'Porn', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (112, 1, 'Ransomware', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (113, 1, 'Redirect', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (114, 1, 'Scam', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (115, 1, 'Smart-TV', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (116, 1, 'Tiktok', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (117, 1, 'Torrent', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (118, 1, 'Tracking', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (119, 1, 'Twitter', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (120, 1, 'Vaping', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (121, 1, 'Whatsapp', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (122, 1, 'Youtube', 'BlockListProject');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (199, 1, 'Everything', 'BlockListProject');"
+
+
+groups for firebog
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (200, 1, 'All_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (201, 1, 'All_Tick_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (202, 1, 'All_Tick_Nocross_Cross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (210, 1, 'Advertising_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (211, 1, 'Suspicious_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (212, 1, 'Malicious_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (213, 1, 'Tracking_and_Telemetry_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (214, 1, 'Other_Tick', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (215, 1, 'Advertising_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (216, 1, 'Suspicious_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (217, 1, 'Malicious_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (218, 1, 'Tracking_and_Telemetry_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (219, 1, 'Other_Nocross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (220, 1, 'Advertising_Cross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (221, 1, 'Suspicious_Cross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (222, 1, 'Malicious_Cross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (223, 1, 'Tracking_and_Telemetry_Cross', 'Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (224, 1, 'Other_Cross', 'Firebog');"
+
+
+groups for 3x3cut0r's lists
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO 'group' (id, enabled, name, description) VALUES (330, 1, 'Filehoster Whitelists', '3x3cut0r');"
+
+
+adlists from blocklistproject
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (100, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/abuse.txt', 1, 'Abuse (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (101, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/ads.txt', 1, 'Ads (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (102, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/basic.txt', 1, 'Basic (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (103, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/crypto.txt', 1, 'Crypto (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (104, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/drugs.txt', 1, 'Drugs (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (105, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/facebook.txt', 1, 'Facebook (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (106, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/fraud.txt', 1, 'Fraud (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (107, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/gambling.txt', 1, 'Gambling (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (108, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/malware.txt', 1, 'Malware (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (109, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/phishing.txt', 1, 'Phishing (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (110, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/piracy.txt', 1, 'Piracy (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (111, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/porn.txt', 1, 'Porn (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (112, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/ransomware.txt', 1, 'Ransomware (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (113, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/redirect.txt', 1, 'Redirect (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (114, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/scam.txt', 1, 'Scam (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (115, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/smart-tv.txt', 1, 'Smart-TV (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (116, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/tiktok.txt', 1, 'Tiktok (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (117, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/torrent.txt', 1, 'Torrent (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (118, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/tracking.txt', 1, 'Tracking (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (119, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/twitter.txt', 1, 'Twitter (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (120, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/vaping.txt', 1, 'Vaping (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (121, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/whatsapp.txt', 1, 'Whatsapp (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (122, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/youtube.txt', 1, 'Youtube (BlockListProject)');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (199, 'https://raw.githubusercontent.com/blocklistproject/Lists/master/everything.txt', 1, 'Everything (BlockListProject)');"
+pihole -g
+
+
+adlists from blocklistproject
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (200, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_tick.list', 1, 'All_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (201, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_nocross.list', 1, 'All_Tick_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (202, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_all.list', 1, 'All_Tick_Nocross_Cross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (210, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_advertising_tick.list', 1, 'Advertising_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (211, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_suspicious_tick.list', 1, 'Suspicious_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (212, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_malicious_tick.list', 1, 'Malicious_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (213, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_tracking_and_telemetry_tick.list', 1, 'Tracking & Telemetry_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (214, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_other_tick.list', 1, 'Other_Tick_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (215, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_advertising_nocross.list', 1, 'Advertising_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (216, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_suspicious_nocross.list', 1, 'Suspicious_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (217, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_malicious_nocross.list', 1, 'Malicious_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (218, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_tracking_and_telemetry_nocross.list', 1, 'Tracking _and_Telemetry_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (219, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_other_nocross.list', 1, 'Other_Nocross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (220, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_advertising_cross.list', 1, 'Advertising_Cross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (221, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_suspicious_cross.list', 1, 'Suspicious_Cross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (222, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_malicious_cross.list', 1, 'Malicious_Cross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (223, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_tracking_and_telemetry_cross.list', 1, 'Tracking & Telemetry_Cross_Firebog');"
+sudo sqlite3 /etc/pihole/gravity.db "INSERT INTO adlist (id, address, enabled, comment) VALUES (224, 'https://raw.githubusercontent.com/3x3cut0r/pihole/main/blacklists/firebog_other_cross.list', 1, 'Other_Cross_Firebog');"
+pihole -g
+
+
+assign blacklistproject lists to groups
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=100 WHERE adlist_id=100;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=101 WHERE adlist_id=101;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=102 WHERE adlist_id=102;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=103 WHERE adlist_id=103;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=104 WHERE adlist_id=104;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=105 WHERE adlist_id=105;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=106 WHERE adlist_id=106;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=107 WHERE adlist_id=107;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=108 WHERE adlist_id=108;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=109 WHERE adlist_id=109;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=110 WHERE adlist_id=110;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=111 WHERE adlist_id=111;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=112 WHERE adlist_id=112;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=113 WHERE adlist_id=113;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=114 WHERE adlist_id=114;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=115 WHERE adlist_id=115;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=116 WHERE adlist_id=116;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=117 WHERE adlist_id=117;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=118 WHERE adlist_id=118;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=119 WHERE adlist_id=119;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=120 WHERE adlist_id=120;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=121 WHERE adlist_id=121;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=122 WHERE adlist_id=122;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=199 WHERE adlist_id=199;"
+
+
+assign firebog lists to groups
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=200 WHERE adlist_id=200;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=201 WHERE adlist_id=201;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=202 WHERE adlist_id=202;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=210 WHERE adlist_id=210;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=211 WHERE adlist_id=211;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=212 WHERE adlist_id=212;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=213 WHERE adlist_id=213;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=214 WHERE adlist_id=214;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=215 WHERE adlist_id=215;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=216 WHERE adlist_id=216;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=217 WHERE adlist_id=217;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=218 WHERE adlist_id=218;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=219 WHERE adlist_id=219;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=220 WHERE adlist_id=220;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=221 WHERE adlist_id=221;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=222 WHERE adlist_id=222;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=223 WHERE adlist_id=223;"
+sudo sqlite3 /etc/pihole/gravity.db "UPDATE adlist_by_group SET group_id=224 WHERE adlist_id=224;"
+
+
+Backend
+https://pihole.ip/admin
[✗] Unable to build gravity tree in /etc/pihole/gravity.db_temp
+Error: no such table: main.gravity
sudo rm /etc/pihole/gravity.db
+pihole -r
+
+
+- This project is licensed under the GNU General Public License - see the gpl-3.0 for details.
+ +