🔸 updated in the past 7 days Changelog
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.
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/post_install.sh)"
It's recommended to update Proxmox after running this script, before adding any VM/CT.
Proxmox Dark Theme
A dark theme for the Proxmox Web UI by Weilbyte
Run the following in the Proxmox Web Shell.
bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install
To uninstall the theme, simply run the script with the uninstall
command.
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/vm/haos_vm.sh)"
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)
To create a new Proxmox Podman Home Assistant Container, run the following from Proxmox web shell.bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/podman_ha_container.sh)"
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 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 allow USB 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/misc/usb-passthrough.sh)" -s 106
Reboot the LXC to apply the changes
⚙️ To install HACS:
Run the from the LXC console
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/podman_hacs.sh)"
After install, reboot Home Assistant and clear browser cache then Add HACS integration.
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/ct/ha_container.sh)"
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 (Recommend Using Webmin System Administration)
Run from the 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 USB 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/misc/usb-passthrough.sh)" -s 106
Reboot the LXC to apply the changes
⚙️ To Install HACS:
Run from the LXC console
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/hacs.sh)"
After install, reboot Home Assistant and clear browser cache then Add HACS integration.
⚙️ To Update Home Assistant:
Run from the LXC console
./update.sh
ESPHome LXC
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/ct/esphome_container.sh)"
ESPHome Interface - IP:6052
Nginx Proxy Manager LXC
To create a new Proxmox Nginx Proxy Manager LXC Container, run the following from Proxmox web shell.
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/npm_container.sh)"
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
MQTT LXC
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/ct/mqtt_container.sh)"
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
⚙️ To Update MQTT:
Run from the LXC console
apt update && apt upgrade -y
Node-Red LXC
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/ct/node-red_container.sh)"
Node-Red Interface - IP:1880
⚙️ To Restart Node-Red:
Run from the LXC console
node-red-restart
⚙️ To Update Node-Red:
Run from the LXC console (Restart after update)
npm install -g --unsafe-perm node-red
Mariadb LXC
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/ct/mariadb_container.sh)"
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
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
⚙️ To Update Mariadb:
Run from the LXC console
apt update && apt upgrade -y
Zigbee2MQTT LXC
To create a new Proxmox Zigbee2MQTT LXC Container, run the following from Proxmox web shell.
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/zigbee2mqtt_container.sh)"
⚙️ To allow USB device passthrough:
In the Proxmox Shell run (replace 106
with your LXC ID)
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/usb-passthrough.sh)" -s 106
Reboot the LXC to apply the changes
⚙️ Determine the location of your adapter
Run from the LXC 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
⚙️
Run from the LXC console
nano /opt/zigbee2mqtt/data/configuration.yaml
Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”
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
Run from the LXC console
cd /opt/zigbee2mqtt
npm start
⚙️ To update Zigbee2MQTT
Run from the LXC console
bash /opt/zigbee2mqtt/update.sh
Zwavejs2MQTT LXC
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/ct/zwavejs2mqtt_container.sh)"
Zwavejs2MQTT Interface - IP:8091
⚙️ To allow USB 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/misc/usb-passthrough.sh)" -s 106
Reboot the LXC to apply the changes
🔸Debian 11 LXC
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/ct/debian11_container.sh)"
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.
🔸Ubuntu 21.10 LXC
To create a new Proxmox Ubuntu 21.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/ct/ubuntu_container.sh)"
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.
Plex Media Server LXC
To create a new Proxmox Plex Media Server LXC, run the following in the Proxmox web shell.bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/plex_container.sh)"
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, Cores and Root Disk (Resize disk) settings to what you desire. Changes are immediate.
Plex Media Server Interface - IP:32400/web
⚙️ To Update Plex Media Server:
Run from the LXC console
apt update && apt upgrade -y
Jellyfin Media Server LXC
To create a new Proxmox Jellyfin Media Server LXC, run the following in the Proxmox web shell.bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/jellyfin_container.sh)"
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, Cores and Root Disk (Resize disk) settings to what you desire. Changes are immediate.
Jellyfin Media Server Interface - IP:8096
⚙️ To Update Jellyfin Media Server:
Run from the LXC console
apt update && apt upgrade -y
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/ct/pihole_container.sh)"
⚙️ To set your password:
Run from the LXC console
pihole -a -p
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/ct/adguard_container.sh)"
AdGuard Home Setup Interface - IP:3000 (After Setup use only IP)
(For the Home Assistant Integration, use port 80
not 3000
)
Webmin System Administration
To Install Webmin System Administration (Screenshot), run the following in a LXC console.
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/webmin.sh)"
If you prefer to manage all aspects of your Proxmox LXC from a graphical interface instead of the command line interface, Webmin might be right for you.
Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.
Webmin Interface - https:// IP:10000 (https)
⚙️ Initial Login
username
root
password
root
⚙️ To Uninstall Webmin
bash /etc/webmin/uninstall.sh
🔸Vaultwarden LXC
To create a new Proxmox Vaultwarden LXC, run the following in the Proxmox web shell.
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/vault_container.sh)"
It builds from source, which takes time and resources. After the installation, resources can be set to Normal Settings. I've left most of the installation process viewable since the Rust install needs user input (requires a "enter" key press), and the lengthy time to complete the full installation.
Be Patient, let the script do it's work. Hopefully, you'll eventually see "Successfully created a Vaultwarden LXC Container"
Vaultwarden Interface - IP:8000