Proxmox/README.md
2021-11-29 10:30:08 -05:00

20 KiB

Select a Proxmox Helper Below

Proxmox VE 7 Post Install

Proxmox Server Solutions

Proxmox VE 7 Post Install

This script will Disable the Enterprise Repo, Add & Enable the No-Subscription Repo, Add & Disable Test Repo (repo's can be enabled/disabled via the UI in Repositories) and attempt the No-Nag fix.

Run the following in the Proxmox Web Shell. ⚠️ PVE7 ONLY

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/post_install.sh)"

It's recommended to update Proxmox after running this script, before adding any VM/CT.


Home Assistant OS VM

@home-assistant

Proxmox Home Assistant OS VM

To create a new Proxmox VM with the latest version of Home Assistant OS, run the following from Proxmox web shell

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/haos_vm.sh)"

Default Settings: 4GB RAM - 32GB Storage - 2vCPU

After the script completes, If you're dissatisfied with the default settings, click on the VM, then on the Hardware tab and change the Memory and Processors settings to what you desire. Once all changes have been made, Start the VM.

Home Assistant Interface - IP:8123


Home Assistant Container LXC (Podman)

@home-assistant

Proxmox Podman Home Assistant Container LXC

To create a new Proxmox Podman Home Assistant Container, run the following from Proxmox web shell.

(What is Podman?)

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/podman_ha_container.sh)"

Default Settings: 2GB RAM - 8GB Storage - 2vCPU

After the script completes, If you're dissatisfied with the default settings, click on the LXC, then on the Resources tab and change the Memory and Cores settings to what you desire. Changes are immediate.

Home Assistant Interface - IP:8123

Path to HA /config

/var/lib/containers/storage/volumes/hass_config/_data

To edit the HA configuration.yaml (run from the Home Assistant container LXC console)

nano /var/lib/containers/storage/volumes/hass_config/_data/configuration.yaml

Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”

To autostart Home Assistant at every boot (run from the LXC console)

podman generate systemd \
    --new --name homeassistant \
    > /etc/systemd/system/homeassistant.service
systemctl enable homeassistant

Check the status of homeassistant service (run from the LXC console)

systemctl status homeassistant

To install HACS:

Run the following from the Home Assistant Container LXC console

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/podman_hacs.sh)"

After install, reboot Home Assistant and clear browser cache then Add HACS integration.


Home Assistant Container LXC

Docker Logos | Docker @home-assistantGitHub - portainer/portainer-docs: Portainer documentation

Proxmox Home Assistant Container LXC

To create a new Proxmox Home Assistant Container, run the following from Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ha_container.sh)"

Default Settings: 4GB RAM - 16GB Storage - 2vCPU

After the script completes, If you're dissatisfied with the default settings, click on the LXC, then on the Resources tab and change the Memory and Cores settings to what you desire. Changes are immediate.

Home Assistant Interface - IP:8123

Portainer Interface - IP:9000

Path to HA /config

/var/lib/docker/volumes/hass_config/_data

To edit the HA configuration.yaml (run from the Home Assistant container LXC console)

nano /var/lib/docker/volumes/hass_config/_data/configuration.yaml

Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”

To allow device passthrough:

In the Proxmox web shell run (replace 106 with your LXC ID)

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/autodev.sh)" -s 106

Reboot the LXC to apply the changes

To install HACS:

Run the following from the Home Assistant Container LXC console

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/hacs.sh)"

After install, reboot Home Assistant and clear browser cache then Add HACS integration.


ESPHome LXC

Logo

Proxmox ESPHome LXC Container

To create a new Proxmox ESPHome LXC Container, run the following from Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/esphome_container.sh)"

Default Settings: 1GB RAM - 4GB Storage - 2vCPU

ESPHome Interface - IP:6052


Nginx Proxy Manager LXC

hero

Proxmox Nginx Proxy Manager LXC Container

To create a new Proxmox Nginx Proxy Manager LXC Container, run the following from Proxmox web shell.

 curl -sL https://raw.githubusercontent.com/ej52/proxmox/main/lxc/nginx-proxy-manager/create.sh | bash -s

Alpine Default Settings: 512MiB RAM - 2GB Storage - 1vCPU


Forward port 80 and 443 from your router to your Nginx Proxy Manager LXC IP.

Add the following to your configuration.yaml in Home Assistant.

 http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###

Nginx Proxy Manager Interface - IP:81

Initial Login

username

admin@example.com

password

changeme

Thanks to ej52 for his hard work.


MQTT LXC

Proxmox MQTT LXC Container

To create a new Proxmox MQTT LXC Container, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/mqtt_container.sh)"

Default Settings: 512MiB RAM - 2GB Storage - 1vCPU

Mosquitto comes with a password file generating utility called mosquitto_passwd.

sudo mosquitto_passwd -c /etc/mosquitto/passwd <usr>

Password: < password >

Create a configuration file for Mosquitto pointing to the password file we have just created.

sudo nano /etc/mosquitto/conf.d/default.conf

This will open an empty file. Paste the following into it.

allow_anonymous false
persistence true
password_file /etc/mosquitto/passwd
listener 1883

Save and exit the text editor with "Ctrl+O", "Enter" and "Ctrl+X".

Now restart Mosquitto server.

sudo systemctl restart mosquitto

Node-Red LXC

@node-red

Proxmox Node-Red LXC Container

To create a new Proxmox Node-RED LXC Container, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/node-red_container.sh)"

Default Settings: 1GB RAM - 4GB Storage - 1vCPU

From your nodered LXC console, the following commands can be run

node-red-start to start Node-Red

sudo systemctl enable nodered.service to autostart Node-RED at every boot

node-red-restart to restart Node-Red

sudo systemctl disable nodered.service to disable autostart on boot

sudo npm install -g --unsafe-perm node-red to update Node-Red (node-red-restart after update)

Node-Red Interface - IP:1880


Mariadb 10.5 LXC

MariaDB

Proxmox Mariadb 10.5 LXC Container

To create a new Proxmox Mariadb LXC Container, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/mariadb_container.sh)"

Default Settings: 1GB RAM - 4GB Storage - 1vCPU

To enable MariaDB to listen to remote connections, you need to edit your defaults file. To do this, open the console in your MariaDB lxc:

nano /etc/mysql/my.cnf

Un-comment port =3306 Save and exit the editor with "Ctrl+O", "Enter" and "Ctrl+X".

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Comment bind-address = 127.0.0.1 Save and exit the editor with "Ctrl+O", "Enter" and "Ctrl+X".

For new MariaDB installations, the next step is to run the included security script. This script changes some of the less secure default options. We will use it to block remote root logins and to remove unused database users.

Run the security script:

sudo mysql_secure_installation

Enter current password for root (enter for none): enter

Switch to unix_socket authentication [Y/n] y

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

We will create a new account called admin with the same capabilities as the root account, but configured for password authentication.

sudo mysql

Prompt will change to MariaDB [(none)]>

Create a new local admin (Change the username and password to match your preferences)

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';

Give local admin root privileges (Change the username and password to match above)

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Now, we'll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the username, password and subnet to match your preferences:

GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;

Flush the privileges to ensure that they are saved and available in the current session:

FLUSH PRIVILEGES;

Following this, exit the MariaDB shell:

exit

Log in as the new database user you just created:

mysql -u admin -p

Create a new database:

CREATE DATABASE homeassistant;

Following this, exit the MariaDB shell:

exit

⚠️ Reboot the lxc

Checking status.

sudo systemctl status mariadb

Change the recorder: db_url: in your HA configuration.yaml

Example: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4


Zigbee2MQTT LXC

logo.png

Proxmox Zigbee2MQTT LXC Container

To create a new Proxmox 7 Zigbee2MQTT LXC Container, run the following from Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/zigbee2mqtt_container.sh)"

Default Settings: 1GB RAM - 4GB Storage - 2vCPU

To allow device passthrough:

In the Proxmox web shell run (replace 106 with your LXC ID)

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/autodev.sh)" -s 106

Reboot the LXC to apply the changes

Determine the location of your adapter (Run in the zigbee2mqtt console)

ls -l /dev/serial/by-id

Example Output: lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0

If you are having diffucuilty with device pass through or starting check the Alternative method

⚠️ Before you can start Zigbee2MQTT you need to edit the configuration.yaml

nano /opt/zigbee2mqtt/data/configuration.yaml

Example:

frontend:
  port: 9442
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://192.168.86.224:1883'
  user: usr
  password: pwd
  keepalive: 60
  reject_unauthorized: true
  version: 4
serial:
  port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
advanced:
  pan_id: GENERATE
  network_key: GENERATE
  channel: 20

Zigbee2mqtt can be started after completing the configuration by running

sudo systemctl start zigbee2mqtt

To start Zigbee2MQTT automatically on boot

sudo systemctl enable zigbee2mqtt.service

To update Zigbee2Mqtt

cd /opt/zigbee2mqtt
bash update.sh

Zwavejs2MQTT LXC

Proxmox Zwavejs2MQTT LXC Container

To create a new Proxmox Zwavejs2MQTT LXC Container, run the following from Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/zwavejs2mqtt_container.sh)"

Default Settings: 1GB RAM - 4GB Storage - 2vCPU

To start Zwavejs2Mqtt (run from the LXC console)

cd zwavejs2mqtt
./zwavejs2mqtt

Zwavejs2MQTT Interface - IP:8091


Debian 10+ LXC

Debian

Proxmox Debian 10 LXC Container

To create a new Proxmox Debian 10 (curl. sudo, auto login) LXC Container, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/debian10_container.sh)"

Default Settings: 512MiB RAM - 2GB Storage - 1vCPU

After the script completes, If you're dissatisfied with the default settings, click on the LXC, then on the Resources tab and change the Memory and Cores settings to what you desire. Changes are immediate.


Debian 11+ LXC

Debian

Proxmox Debian 11 LXC Container

To create a new Proxmox Debian 11 (curl. sudo, auto login) LXC Container, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/debian11_container.sh)"

Default Settings: 512MiB RAM - 2GB Storage - 1vCPU

After the script completes, If you're dissatisfied with the default settings, click on the LXC, then on the Resources tab and change the Memory and Cores settings to what you desire. Changes are immediate.


Pi-hole LXC

Pi-hole

Pi-hole LXC

To create a new Proxmox Pi-hole LXC, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/pihole_container.sh)"

Default Settings: 512MiB RAM - 2GB Storage - 1vCPU

To set your password (Run in the pi-hole console)

pihole -a -p

AdGuard Home LXC

AdGuard Home LXC

To create a new Proxmox AdGuard Home LXC, run the following in the Proxmox web shell.

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/adguard_container.sh)"

Default Settings: 512MiB RAM - 2GB Storage - 1vCPU

AdGuard Home Interface - IP:3000