--- created: 2024-01-06T01:25:36.042Z type: topic updated: 2024-11-01T20:53:57.554Z --- # Proxmox ```bash apt-get update apt-get upgrade nano /etc/resolv.conf ls -l /etc/network nano /etc/network/interfaces apt-get install links unzip ufw ufw allow from 192.168.0.0/24 to any port 22 comment "01) SSH" ufw allow from 192.168.1.0/24 to any port 22 comment "02) SSH" ufw allow to 0.0.0.0/0 port 80 comment "03) HTTP" ufw allow to 0.0.0.0/0 port 443 comment "04) HTTPS" ufw status numbered timedatectl set-timezone America/Phoenix timedatectl nano /etc/hosts ``` ```conf 127.0.0.1 localhost.localdomain localhost 192.168.0.56 pve.home pve # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ``` ```bash apt-get install nano nginx git -y nano /etc/hosts nano /etc/nginx/sites-available/default echo >/etc/nginx/sites-available/default && nano /etc/nginx/sites-available/default ``` ```conf server { listen 80; listen [::]:80; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } } server { ssl_certificate 'localhost.crt'; ssl_certificate_key 'localhost.key'; listen 443 ssl http2; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; listen [::]:443 ssl http2; server_name ~^(?.+)\.pve\.home; proxy_redirect off; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; if ($subdomain = "gogs") { proxy_pass http://localhost:3000; } if ($subdomain = "syncthing") { proxy_pass http://localhost:8384; } if ($subdomain = "proxmox") { proxy_pass https://localhost:8006; } if ($subdomain = "") { proxy_pass http://localhost:80; } proxy_buffering off; client_max_body_size 0; proxy_connect_timeout 3600s; proxy_read_timeout 3600s; proxy_send_timeout 3600s; send_timeout 3600s; } } ``` ```bash nano /root/localhost.conf echo >/root/localhost.conf && nano /root/localhost.conf ``` ```conf [req] default_bits = 2048 default_keyfile = localhost.key distinguished_name = req_distinguished_name req_extensions = req_ext x509_extensions = v3_ca [req_distinguished_name] countryName = Country Name (2 letter code) countryName_default = US stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Arizona localityName = Locality Name (eg, city) localityName_default = Anthem organizationName = Organization Name (eg, company) organizationName_default = Phares organizationalUnitName = organizationalunit organizationalUnitName_default = Development commonName = Common Name (e.g. server FQDN or YOUR name) commonName_default = pve.home commonName_max = 64 [req_ext] subjectAltName = @alt_names [v3_ca] subjectAltName = @alt_names [alt_names] DNS.1 = pve.home DNS.2 = gogs.pve.home DNS.3 = Trigkey.Proxmox DNS.4 = proxmox.pve.home DNS.5 = pi-hole.pve.home DNS.6 = syncthing.pve.home DNS.7 = localhost DNS.8 = 127.0.0.1 ``` ```bash rm /etc/nginx/localhost.key rm /etc/nginx/localhost.crt openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/localhost.key -out /etc/nginx/localhost.crt -config /root/localhost.conf ``` ```bash nginx -t systemctl restart nginx nginx -s reload ls /etc/nginx # https://pve.home/# # https://gogs.pve.home/# # https://syncthing.pve.home/# ``` ```bash adduser gogs ``` ```bash cd /home/gogs wget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gz tar -xvzf gogs_0.13.0_linux_amd64.tar.gz rm gogs_0.13.0_linux_amd64.tar.gz cd /home/gogs/gogs ./gogs web ``` ```bash mkdir /home/gogs/gogs-repositories chown gogs /home/gogs -R chgrp gogs /home/gogs -R ``` ```bash nano /etc/systemd/system/gogs-daemon.service ``` ```conf [Unit] Description=Gogs After=syslog.target After=network.target [Service] # Modify these two values and uncomment them if you have # repos with lots of files and get an HTTP error 500 because # of that ### #LimitMEMLOCK=infinity #LimitNOFILE=65535 Type=simple User=gogs Group=gogs WorkingDirectory=/home/gogs/gogs ExecStart=/home/gogs/gogs/gogs web Restart=always Environment=USER=gogs HOME=/home/gogs # Some distributions may not support these hardening directives # If you cannot start the service due # to an unknown option, comment out the ones not supported by your version of systemd. ProtectSystem=full PrivateDevices=yes PrivateTmp=yes NoNewPrivileges=true [Install] WantedBy=multi-user.target ``` ```bash nano /home/gogs/gogs/custom/conf/app.ini ``` ```conf BRAND_NAME = Gogs RUN_USER = gogs RUN_MODE = prod [database] TYPE = sqlite3 HOST = 127.0.0.1:3306 NAME = gogs SCHEMA = public USER = gogs PASSWORD = 1178 SSL_MODE = disable PATH = data/gogs.db [repository] ROOT = /home/gogs/gogs-repositories DEFAULT_BRANCH = master [server] DOMAIN = localhost HTTP_PORT = 3000 EXTERNAL_URL = https://asdf@pve.home/ DISABLE_SSH = false SSH_PORT = 22 START_SSH_SERVER = false OFFLINE_MODE = false [mailer] ENABLED = false [auth] REQUIRE_EMAIL_CONFIRMATION = false DISABLE_REGISTRATION = false ENABLE_REGISTRATION_CAPTCHA = true REQUIRE_SIGNIN_VIEW = false [user] ENABLE_EMAIL_NOTIFICATION = false [picture] DISABLE_GRAVATAR = false ENABLE_FEDERATED_AVATAR = false [session] PROVIDER = file [log] MODE = file LEVEL = Info ROOT_PATH = /home/gogs/gogs/log [security] INSTALL_LOCK = true SECRET_KEY = czo27vBeXWU7HTi ``` ```bash systemctl enable gogs-daemon systemctl start gogs-daemon systemctl status gogs-daemon.service systemctl daemon-reload journalctl -fu gogs-daemon.service journalctl --rotate journalctl --vacuum-time=1s cd /home/gogs git clone https://github.com/Kos-M/GogsThemes ufw allow from 192.168.0.0/26 to any port 3000 comment "05) gogs" ufw allow from 192.168.1.0/26 to any port 3000 comment "06) gogs" ufw status numbered exit cp ~/.bash_history /home/gogs/bash-history-2023-12-03.txt chown gogs /home/gogs -R chgrp gogs /home/gogs -R exit ``` ```bash apt-get install syncthing apt-get install apt-transport-https adduser syncthing ``` ```bash cat /etc/passwd | cut -d: -f1 systemctl enable syncthing@syncthing.service systemctl start syncthing@syncthing.service systemctl status syncthing@syncthing.service journalctl -e -u syncthing@syncthing.service nano /home/syncthing/.config/syncthing/config.xml ``` ```xml
0.0.0.0:8384
``` ```bash systemctl restart syncthing@syncthing.service chown syncthing /home/syncthing -R chgrp syncthing /home/syncthing -R ufw allow from 192.168.0.0/26 to any port 8384 comment "07) syncthing" ufw allow from 192.168.1.0/26 to any port 8384 comment "08) syncthing" ufw status numbered ``` ```conf Windows 192.168.0.62 pve.home 192.168.0.62 gogs.pve.home 192.168.0.62 proxmox.pve.home 192.168.0.62 pie-hole.pve.home 192.168.0.62 syncthing.pve.home ``` ```bash nano /root/.ssh/authorized_keys apt-get install ssh-import-id ssh-import-id gh:mikepharesjr systemctl restart ssh ``` ```bash adduser pi-hole ``` ## To Do ... ```bash cd /home/pi-hole # curl -sSL https://install.pi-hole.net | bash ``` ```bash Thu Jan 04 2024 18:47:05 GMT-0700 (Mountain Standard Time) nano /etc/network/interfaces ``` ```conf auto lo iface lo inet loopback iface enp4s0 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.1.61/26 gateway 192.168.1.1 bridge-ports enp4s0 bridge-stp off bridge-fd 0 source /etc/network/interfaces.d/* ``` - https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_package_repositories ```bash nano /etc/apt/sources.list ``` ```conf deb http://ftp.debian.org/debian bookworm main contrib deb http://ftp.debian.org/debian bookworm-updates main contrib # Proxmox VE pve-no-subscription repository provided by proxmox.com, # NOT recommended for production use deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription # security updates deb http://security.debian.org/debian-security bookworm-security main contrib ``` ```bash nano /etc/apt/sources.list.d/pve-enterprise.list ``` ```conf # deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise ``` ```bash nano /etc/apt/sources.list.d/ceph.list ``` ```conf # deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise deb http://download.proxmox.com/debian/ceph-reef bookworm no-subscription ``` - https://smarthomescene.com/guides/how-to-install-home-assistant-on-proxmox-the-easy-way/ ```bash bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" ``` ```bash # https://www.firsttiger.com/cheatsheets/setting-up-xterm-js-for-proxmox/ sudo systemctl enable serial-getty@ttyS0.service sudo systemctl start serial-getty@ttyS0.service # https://devopstales.github.io/virtualization/proxmox-xtermjs-enable/ qm set [vmid] -serial0 socket nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,115200n8 console=tty1" GRUB_CMDLINE_LINUX="" GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" echo 'GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0,115200"' >> /tmp/grub nano /etc/default/grub # Debian/Ubuntu etc. update-grub # RHEL/CentOS/Fedora grub2-mkconfig --output=/boot/grub2/grub.cfg mkdir -p /etc/systemd/system/serial-getty@ttyS0.service.d/ nano /etc/systemd/system/serial-getty@ttyS0.service.d/override.conf [Service] ExecStart= ExecStart=-/sbin/agetty -o '-p -- \\u' 115200 %I $TERM systemctl daemon-reload systemctl restart serial-getty@ttyS0.service systemctl enable serial-getty@ttyS0.service init 6 ps -ef | grep ttyS0 systemctl status serial-getty@ttyS0.service ``` ```bash # https://silicon.blog/2023/01/12/how-to-enable-copy-and-paste-function-on-your-proxmox-web-console-without-install-additional-software-in-your-vm/ sudo -i nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty0 console=ttyS0,115200" update-grub reboot ``` ```bash Sat Jun 15 2024 17:34:15 GMT-0700 (Mountain Standard Time) # https://www.youtube.com/watch?v=kcpu4z5eSEU&t=225s # https://tteck.github.io/Proxmox/ # https://github.com/tteck/Proxmox bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" uname -r bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zabbix.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)" bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/all-templates.sh)" ``` ```conf [INFO] LXC container '107' was successfully created, and its IP address is 192.168.11.67. [INFO] Proceed to the LXC console to complete the setup. [INFO] login: root [INFO] password: pzSVEbKz+2o= ``` ```conf │ │ │ Please enter new password for the 'postgres' account. │ │ │ │ Password Requirements │ │ - must be at least 8 characters long │ │ - must contain characters from at least 3 of the │ │ following categories: uppercase, lowercase, numbers, │ │ symbols │ Postgres1178 ``` ```conf │ │ │ Enter new password for Odoo Database Management - │ │ create/delete/manage Odoo DBs. This password will also │ │ login to 'admin' account of default/example Odoo. │ │ │ │ Password Requirements │ │ - must be at least 8 characters long │ │ - must contain characters from at least 3 of the │ │ following categories: uppercase, lowercase, numbers, │ │ symbols. Also must NOT contain these characters: \ / │ Admin1178 ``` ```conf 1YaAz1wf4M8= │ Please enter new password for the MySQL 'adminer' │ │ account. │ │ │ │ Password Requirements │ │ - must be at least 8 characters long │ │ - must contain characters from at least 3 of the │ │ following categories: uppercase, lowercase, numbers, │ │ symbols │ Admin1178 ``` ```conf │ │ │ Enter new password for the Invoice Ninja 'admin' │ │ account. │ │ │ │ Password Requirements │ │ - must be at least 8 characters long │ │ - must contain characters from at least 3 of the │ │ following categories: uppercase, lowercase, numbers, │ │ symbols │ Admin1178 ``` ```conf | API secret is: │ │ │ │ acGowYxiaTIJMw0ZgYxwaYFBn1k3yQlJ │ │ │ │ Note the API secret is stored in plain text in the .env │ │ file. ``` ```bash Sun Jun 23 2024 19:24:45 GMT-0700 (Mountain Standard Time) cd /tmp pct list rm metadata.* vzdump 107 -compress gzip -dumpdir /tmp echo architecture: `pct config 107 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Imported from Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Sun Jun 23 2024 20:21:58 GMT-0700 (Mountain Standard Time) cd /tmp pct list rm metadata.* vzdump 109 -compress gzip -dumpdir /tmp echo architecture: `pct config 109 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Zabbix imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Sun Jun 23 2024 20:28:06 GMT-0700 (Mountain Standard Time) # Home Assistant-Core http://192.168.11.70:8123 cd /tmp pct list rm metadata.* vzdump 110 -compress gzip -dumpdir /tmp echo architecture: `pct config 110 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'HomeAssistantCore imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Sun Jun 23 2024 20:28:06 GMT-0700 (Mountain Standard Time) # [INFO] login: root # [INFO] password: IDQw6cA1HDk= cd /tmp pct list rm metadata.* vzdump 104 -compress gzip -dumpdir /tmp echo architecture: `pct config 104 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Ansible imported from TurnKey Proxmox' >> metadata.yaml tar -czvf 104-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 22:01:14 GMT-0700 (Mountain Standard Time) # [INFO] login: root # [INFO] password: EIm+abycJK0= cd /tmp pct list rm metadata.* vzdump 105 -compress gzip -dumpdir /tmp echo architecture: `pct config 105 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Invoice Ninja imported from TurnKey Proxmox' >> metadata.yaml tar -czvf 105-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 22:39:11 GMT-0700 (Mountain Standard Time) # [INFO] login: root # [INFO] password: bDJcCyLQusM= cd /tmp pct list rm metadata.* vzdump 106 -compress gzip -dumpdir /tmp echo architecture: `pct config 106 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Odoo imported from TurnKey Proxmox' >> metadata.yaml tar -czvf 106-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 22:47:30 GMT-0700 (Mountain Standard Time) # http://192.168.11.66:3001 cd /tmp pct list rm metadata.* vzdump 100 -compress gzip -dumpdir /tmp echo architecture: `pct config 100 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Up Time Kuma imported from Proxmox' >> metadata.yaml tar -czvf 100-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 22:55:09 GMT-0700 (Mountain Standard Time) # http://192.168.11.66:3001 cd /tmp pct list rm metadata.* vzdump 101 -compress gzip -dumpdir /tmp echo architecture: `pct config 101 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'CasaOS imported from Proxmox' >> metadata.yaml tar -czvf 101-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 23:06:39 GMT-0700 (Mountain Standard Time) # http://192.168.11.65:8096 cd /tmp pct list rm metadata.* vzdump 102 -compress gzip -dumpdir /tmp echo architecture: `pct config 102 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Emby imported from Proxmox' >> metadata.yaml tar -czvf 102-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Sun Jun 23 2024 23:21:30 GMT-0700 (Mountain Standard Time) cd /tmp pct list rm metadata.* vzdump 103 -compress gzip -dumpdir /tmp echo architecture: `pct config 103 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'NextCloud imported from Proxmox' >> metadata.yaml tar -czvf 103-metadata.tar.gz metadata.yaml rm metadata.yaml Creating a NextCloudPi LXC using the above advanced settings ✓ Using local for Template Storage. ✓ Using local-lvm for Container Storage. ✓ Updated LXC Template List ✓ LXC Container 103 was successfully created. ✓ Started LXC Container ✓ Set up Container OS ✓ Network Connected: 192.168.11.62 ✓ IPv4 Internet Connected ✗ IPv6 Internet Not Connected ✓ DNS Resolved github.com to 140.82.113.4 ✓ Updated Container OS ✓ Installed Dependencies - Installing NextCloudPi (Patience) [ERROR] in line 23: exit code 0: while executing command "$@" > /dev/null 2>&1 The silent function has suppressed the error, run the script with verbose mode enabled, which will provide more detailed output. ``` ```bash Sun Jun 23 2024 23:06:39 GMT-0700 (Mountain Standard Time) # http://192.168.11.65:8096 cd /tmp pct list rm metadata.* vzdump 102 -compress gzip -dumpdir /tmp echo architecture: `pct config 102 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Emby imported from Proxmox' >> metadata.yaml tar -czvf 102-metadata.tar.gz metadata.yaml rm metadata.yaml ``` ```bash Tue Jun 25 2024 18:54:24 GMT-0700 (Mountain Standard Time) cd /tmp pct list rm metadata.* vzdump 103 -compress gzip -dumpdir /tmp echo architecture: `pct config 103 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'PhotoPrism imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Tue Jun 25 2024 19:53:41 GMT-0700 (Mountain Standard Time) cd /tmp pct list rm metadata.* vzdump 108 -compress gzip -dumpdir /tmp echo architecture: `pct config 108 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'VaultWarden imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Tue Jun 25 2024 20:21:03 GMT-0700 (Mountain Standard Time) # http://192.168.11.70:8080/admin admin|abc123 cd /tmp pct list rm metadata.* vzdump 109 -compress gzip -dumpdir /tmp echo architecture: `pct config 109 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'OwnCast imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Thu Jun 27 2024 15:33:44 GMT-0700 (Mountain Standard Time) # http://192.168.11.70:5001 cd /tmp pct list rm metadata.* vzdump 111 -compress gzip -dumpdir /tmp echo architecture: `pct config 111 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Dockge-Immich imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Thu Jun 27 2024 15:33:44 GMT-0700 (Mountain Standard Time) # http://192.168.11.71:5001 cd /tmp pct list rm metadata.* vzdump 112 -compress gzip -dumpdir /tmp echo architecture: `pct config 112 | grep arch: | awk '{print $2}' ` > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml ``` ```bash Thu Jun 27 2024 16:08:51 GMT-0700 (Mountain Standard Time) pct enter 112 exit ``` - [Passing Storage to a Container Getting Started with Proxmox 8](https://www.youtube.com/watch?v=qa2Q7tZVol8) ```bash Thu Jun 27 2024 18:46:07 GMT-0700 (Mountain Standard Time) nano /etc/pve/lxc/112.conf ``` ### Proxmox SDN (Software-Defined Network) - [Proxmox SDN](https://pve.proxmox.com/pve-docs/chapter-pvesdn.html) ```bash cat /etc/network/interfaces # ... # source /etc/network/interfaces.d/* apt update apt install dnsmasq -y systemctl disable --now dnsmasq apt install frr-pythontools -y exit reboot # Use GUI ... (sdn) ``` - [Proxmox-Cheat-Sheat](https://sweworld.net/cheatsheets/proxmox/) | VMID | Status | Lock | Name | |------|---------|------|-----------------------| | 100 | stopped | | uptimekuma | | 101 | stopped | | casaos | | 102 | stopped | | emby | | 103 | stopped | | photoprism | | 104 | stopped | | turnkey-ansible | | 105 | stopped | | turnkey-invoice-ninja | | 106 | stopped | | turnkey-odoo | | 107 | stopped | | readeck | | 108 | stopped | | vaultwarden | | 109 | stopped | | owncast | | 110 | stopped | | homeassistant-core | ### VM-Disk and LXD ```bash # x9 Mount Point vm-100-disk-0-9 mkdir /mnt/vm-100-disk-1 mkdir /mnt/vm-100-disk-2 mkdir /mnt/vm-100-disk-3 mkdir /mnt/vm-100-disk-4 mkdir /mnt/vm-100-disk-5 mkdir /mnt/vm-100-disk-6 mkdir /mnt/vm-100-disk-7 mkdir /mnt/vm-100-disk-8 mkdir /mnt/vm-100-disk-9 bash -c "$(wget -qLO - http://localhost/proxmox-tteck/ubuntu.sh)" # nano /etc/pve/nodes/pve/lxc/100.conf mount /dev/pve/vm-100-disk-1 /mnt/vm-100-disk-1 cp /home/free-file-sync/proxmox/ubuntu-noble-gogs-backup-06-28-2024.tar.xz /mnt/vm-100-disk-1/. ls /mnt/vm-100-disk-1 umount /mnt/vm-100-disk-1 bash -c "$(wget -qLO - http://localhost/proxmox-tteck/ubuntu.sh)" nano /etc/pve/nodes/pve/lxc/101.conf # mp0: local-lvm:vm-100-disk-1,mp=/mnt/vm-100-disk-1,size=8G pct enter 101 apt-get update apt upgrade -y apt install snapd -y exit pct enter 101 snap install lxd /snap/bin/lxd init ``` ```yaml config: {} networks: - config: ipv4.address: auto ipv6.address: none description: "" name: lxdbr0 type: "" project: default storage_pools: - config: {} description: "" name: default driver: dir storage_volumes: [] profiles: - config: security.privileged: "true" description: "" devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: default type: disk name: default projects: [] cluster: null ``` ```bash pct enter 101 nano /mnt/vm-100-disk-1/metadata.yaml ``` ```yaml architecture: amd64 creation_date: 1719784042 description: Ubuntu Gogs imported from tteck.github.io Proxmox ``` ```bash tar -czvf /mnt/vm-100-disk-1/metadata.tar.gz metadata.yaml mv metadata.tar.gz /mnt/vm-100-disk-1/. ls /mnt/vm-100-disk-1/ # lost+found ubuntu-noble-gogs-backup-06-28-2024.tar.xz tar /mnt/vm-100-disk-1/ubuntu-noble-gogs-backup-06-28-2024.tar.xz /snap/bin/lxc image import --alias=lxc-ubuntu-noble-gogs-image /mnt/vm-100-disk-1/metadata.tar.gz /mnt/vm-100-disk-1/ubuntu-noble-gogs-backup-06-28-2024.tar.xz /snap/bin/lxc list ``` ### LXC ```bash cat /etc/os-release # ID=debian # VERSION="12 (bookworm)" # VERSION_CODENAME=bookworm ``` ```bash bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden.sh)" #111-21-vaultwarden bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)" # 103-13-odoo bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)" # 104-14-immich ``` ### LXC Part B ```bash bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma.sh)" # 100-10-up-time-kuma bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism.sh)" # 101-11-photo-prism bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian.sh)" # 102-12-debian bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)" # 104-14-invoice-ninja bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)" # 105-15-ansible bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/turnkey/turnkey.sh)" # 106-16-gitea bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)" # 107-17-home-assistant bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readeck.sh)" # 109-19-readeck bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dockge.sh)" # 1010-20-dockge-2FAuth-others ``` ```bash /snap/bin/lxc list # /snap/bin/lxc launch ubuntu:24.04 ubuntu-gogs # /snap/bin/lxc exec ubuntu-gogs bash mkdir /mnt/proxmox/gogs-backup find / -name "ubuntu.sh" 2>/dev/null bash -c "$(wget -qLO - http://localhost/proxmox-tteck/ubuntu.sh)" pct enter 112 ``` ```bash pct enter 112 cd /mnt/gogs echo architecture: 'amd64' > metadata.yaml echo creation_date: `date +%s` >> metadata.yaml echo description: 'Ubuntu-Gogs imported from tteck.github.io Proxmox' >> metadata.yaml tar -czvf metadata.tar.gz metadata.yaml lxc image import --alias=proxmox-112-image /mnt/gogs/metadata.tar.gz /mnt/gogs/gogs-backup/ubuntu-noble-gogs-backup-06-28-2024.tar.xz lvextend -l +100%FREE pve/data lvresize -L -8GB /dev/pve/root lvchange -an /dev/pve/root resize2fs /dev/pve/root lvchange -ay /dev/pve/root lvreduce --resizefs --size 90G /dev/pve/root # 48.13% (75.90 GB of 157.70 GB) ``` ### LV ```bash # https://forum.proxmox.com/threads/can-i-remove-local-and-local-lvm.122850/ lvremove /dev/pve/data -y lvs lvcreate -L 79GB --thinpool data pve lvresize -L +1GB /dev/pve/data lvresize -L +1GB /dev/pve/root lvextend -l +100%FREE pve/root resize2fs /dev/mapper/pve-root ``` ### New Pull Turnkey ```bash Tue Jul 02 2024 15:57:21 GMT-0700 (Mountain Standard Time) pct list rm metadata.* cd /tmp # # turnkey-ansible.yaml # vzdump 114 -compress gzip -dumpdir /tmp echo architecture: `pct config 114 | grep arch: | awk '{print $2}' ` > vzdump-lxc-114-turnkey-ansible.yaml echo creation_date: `date +%s` >> vzdump-lxc-114-turnkey-ansible.yaml echo description: 'turnkey-ansible Imported from Proxmox' >> vzdump-lxc-114-turnkey-ansible.yaml rm metadata.yaml cp vzdump-lxc-114-turnkey-ansible.yaml metadata.yaml rm vzdump-lxc-114-turnkey-ansible.tar.gz tar -czvf vzdump-lxc-114-turnkey-ansible.tar.gz metadata.yaml # AubidvIOq4k= # # turnkey-gitea.yaml # vzdump 115 -compress gzip -dumpdir /tmp echo architecture: `pct config 115 | grep arch: | awk '{print $2}' ` > vzdump-lxc-115-turnkey-gitea.yaml echo creation_date: `date +%s` >> vzdump-lxc-115-turnkey-gitea.yaml echo description: 'turnkey-gitea Imported from Proxmox' >> vzdump-lxc-115-turnkey-gitea.yaml rm metadata.yaml cp vzdump-lxc-115-turnkey-gitea.yaml metadata.yaml rm vzdump-lxc-115-turnkey-gitea.tar.gz tar -czvf vzdump-lxc-115-turnkey-gitea.tar.gz metadata.yaml # 9bMRKLawLGY= # # turnkey-invoice.yaml # vzdump 116 -compress gzip -dumpdir /tmp echo architecture: `pct config 116 | grep arch: | awk '{print $2}' ` > vzdump-lxc-116-turnkey-invoice.yaml echo creation_date: `date +%s` >> vzdump-lxc-116-turnkey-invoice.yaml echo description: 'turnkey-invoice Imported from Proxmox' >> vzdump-lxc-116-turnkey-invoice.yaml rm metadata.yaml cp vzdump-lxc-116-turnkey-invoice.yaml metadata.yaml rm vzdump-lxc-116-turnkey-invoice.tar.gz tar -czvf vzdump-lxc-116-turnkey-invoice.tar.gz metadata.yaml # gZKEJFdQ5vk= # # turnkey-nextcloud.yaml # vzdump 117 -compress gzip -dumpdir /tmp echo architecture: `pct config 117 | grep arch: | awk '{print $2}' ` > vzdump-lxc-117-turnkey-nextcloud.yaml echo creation_date: `date +%s` >> vzdump-lxc-117-turnkey-nextcloud.yaml echo description: 'turnkey-nextcloud Imported from Proxmox' >> vzdump-lxc-117-turnkey-nextcloud.yaml rm metadata.yaml cp vzdump-lxc-117-turnkey-nextcloud.yaml metadata.yaml rm vzdump-lxc-117-turnkey-nextcloud.tar.gz tar -czvf vzdump-lxc-117-turnkey-nextcloud.tar.gz metadata.yaml # B0y3IUNCyws= # # turnkey-oddo.yaml # vzdump 118 -compress gzip -dumpdir /tmp echo architecture: `pct config 118 | grep arch: | awk '{print $2}' ` > vzdump-lxc-118-turnkey-oddo.yaml echo creation_date: `date +%s` >> vzdump-lxc-118-turnkey-oddo.yaml echo description: 'turnkey-oddo Imported from Proxmox' >> vzdump-lxc-118-turnkey-oddo.yaml rm metadata.yaml cp vzdump-lxc-118-turnkey-oddo.yaml metadata.yaml rm vzdump-lxc-118-turnkey-oddo.tar.gz tar -czvf vzdump-lxc-118-turnkey-oddo.tar.gz metadata.yaml # xxZAMn3ViMk= # # turnkey-observium.yaml # vzdump 119 -compress gzip -dumpdir /tmp echo architecture: `pct config 119 | grep arch: | awk '{print $2}' ` > vzdump-lxc-119-turnkey-observium.yaml echo creation_date: `date +%s` >> vzdump-lxc-119-turnkey-observium.yaml echo description: 'turnkey-observium Imported from Proxmox' >> vzdump-lxc-119-turnkey-observium.yaml rm metadata.yaml cp vzdump-lxc-119-turnkey-observium.yaml metadata.yaml rm vzdump-lxc-119-turnkey-observium.tar.gz tar -czvf vzdump-lxc-119-turnkey-observium.tar.gz metadata.yaml # Gz+xUOvtVo0= # # turnkey-zoneminder.yaml # vzdump 120 -compress gzip -dumpdir /tmp echo architecture: `pct config 120 | grep arch: | awk '{print $2}' ` > vzdump-lxc-120-turnkey-zoneminder.yaml echo creation_date: `date +%s` >> vzdump-lxc-120-turnkey-zoneminder.yaml echo description: 'turnkey-zoneminder Imported from Proxmox' >> vzdump-lxc-120-turnkey-zoneminder.yaml rm metadata.yaml cp vzdump-lxc-120-turnkey-zoneminder.yaml metadata.yaml rm vzdump-lxc-120-turnkey-zoneminder.tar.gz tar -czvf vzdump-lxc-120-turnkey-zoneminder.tar.gz metadata.yaml # Ry+bMvVzPB8= # # turnkey-faveo-helpdesk.yaml # vzdump 121 -compress gzip -dumpdir /tmp echo architecture: `pct config 121 | grep arch: | awk '{print $2}' ` > vzdump-lxc-121-turnkey-faveo-helpdesk.yaml echo creation_date: `date +%s` >> vzdump-lxc-121-turnkey-faveo-helpdesk.yaml echo description: 'turnkey-faveo-helpdesk Imported from Proxmox' >> vzdump-lxc-121-turnkey-faveo-helpdesk.yaml rm metadata.yaml cp vzdump-lxc-121-turnkey-faveo-helpdesk.yaml metadata.yaml rm vzdump-lxc-121-turnkey-faveo-helpdesk.tar.gz tar -czvf vzdump-lxc-121-turnkey-faveo-helpdesk.tar.gz metadata.yaml # 3TBhq0s4IhQ= ``` ### New Pull LXC ```bash Tue Jul 02 2024 16:29:01 GMT-0700 (Mountain Standard Time) # 122-vaultwarden # vzdump 122 -compress gzip -dumpdir /tmp echo architecture: `pct config 122 | grep arch: | awk '{print $2}' ` > vzdump-lxc-122-vaultwarden.yaml echo creation_date: `date +%s` >> vzdump-lxc-122-vaultwarden.yaml echo description: 'vzdump-lxc-122-vaultwarden Imported from Proxmox' >> vzdump-lxc-122-vaultwarden.yaml rm metadata.yaml cp vzdump-lxc-122-vaultwarden.yaml metadata.yaml rm vzdump-lxc-122-vaultwarden.tar.gz tar -czvf vzdump-lxc-122-vaultwarden.tar.gz metadata.yaml # # 123-wastebin # vzdump 123 -compress gzip -dumpdir /tmp echo architecture: `pct config 123 | grep arch: | awk '{print $2}' ` > vzdump-lxc-123-wastebin.yaml echo creation_date: `date +%s` >> vzdump-lxc-123-wastebin.yaml echo description: 'vzdump-lxc-123-wastebin Imported from Proxmox' >> vzdump-lxc-123-wastebin.yaml rm metadata.yaml cp vzdump-lxc-123-wastebin.yaml metadata.yaml rm vzdump-lxc-123-wastebin.tar.gz tar -czvf vzdump-lxc-123-wastebin.tar.gz metadata.yaml # # 124-readeck # vzdump 124 -compress gzip -dumpdir /tmp echo architecture: `pct config 124 | grep arch: | awk '{print $2}' ` > vzdump-lxc-124-readeck.yaml echo creation_date: `date +%s` >> vzdump-lxc-124-readeck.yaml echo description: 'vzdump-lxc-124-readeck Imported from Proxmox' >> vzdump-lxc-124-readeck.yaml rm metadata.yaml cp vzdump-lxc-124-readeck.yaml metadata.yaml rm vzdump-lxc-124-readeck.tar.gz tar -czvf vzdump-lxc-124-readeck.tar.gz metadata.yaml # # 125-ntfy # vzdump 125 -compress gzip -dumpdir /tmp echo architecture: `pct config 125 | grep arch: | awk '{print $2}' ` > vzdump-lxc-125-ntfy.yaml echo creation_date: `date +%s` >> vzdump-lxc-125-ntfy.yaml echo description: 'vzdump-lxc-125-ntfy Imported from Proxmox' >> vzdump-lxc-125-ntfy.yaml rm metadata.yaml cp vzdump-lxc-125-ntfy.yaml metadata.yaml rm vzdump-lxc-125-ntfy.tar.gz tar -czvf vzdump-lxc-125-ntfy.tar.gz metadata.yaml # # 126-commafeed # vzdump 126 -compress gzip -dumpdir /tmp echo architecture: `pct config 126 | grep arch: | awk '{print $2}' ` > vzdump-lxc-126-commafeed.yaml echo creation_date: `date +%s` >> vzdump-lxc-126-commafeed.yaml echo description: 'vzdump-lxc-126-commafeed Imported from Proxmox' >> vzdump-lxc-126-commafeed.yaml rm metadata.yaml cp vzdump-lxc-126-commafeed.yaml metadata.yaml rm vzdump-lxc-126-commafeed.tar.gz tar -czvf vzdump-lxc-126-commafeed.tar.gz metadata.yaml # # 127-actualbudget # vzdump 127 -compress gzip -dumpdir /tmp echo architecture: `pct config 127 | grep arch: | awk '{print $2}' ` > vzdump-lxc-127-actualbudget.yaml echo creation_date: `date +%s` >> vzdump-lxc-127-actualbudget.yaml echo description: 'vzdump-lxc-127-actualbudget Imported from Proxmox' >> vzdump-lxc-127-actualbudget.yaml rm metadata.yaml cp vzdump-lxc-127-actualbudget.yaml metadata.yaml rm vzdump-lxc-127-actualbudget.tar.gz tar -czvf vzdump-lxc-127-actualbudget.tar.gz metadata.yaml # # 128-forgejo # vzdump 128 -compress gzip -dumpdir /tmp echo architecture: `pct config 128 | grep arch: | awk '{print $2}' ` > vzdump-lxc-128-forgejo.yaml echo creation_date: `date +%s` >> vzdump-lxc-128-forgejo.yaml echo description: 'vzdump-lxc-128-forgejo Imported from Proxmox' >> vzdump-lxc-128-forgejo.yaml rm metadata.yaml cp vzdump-lxc-128-forgejo.yaml metadata.yaml rm vzdump-lxc-128-forgejo.tar.gz tar -czvf vzdump-lxc-128-forgejo.tar.gz metadata.yaml # # 129-homepage # vzdump 129 -compress gzip -dumpdir /tmp echo architecture: `pct config 129 | grep arch: | awk '{print $2}' ` > vzdump-lxc-129-homepage.yaml echo creation_date: `date +%s` >> vzdump-lxc-129-homepage.yaml echo description: 'vzdump-lxc-129-homepage Imported from Proxmox' >> vzdump-lxc-129-homepage.yaml rm metadata.yaml cp vzdump-lxc-129-homepage.yaml metadata.yaml rm vzdump-lxc-129-homepage.tar.gz tar -czvf vzdump-lxc-129-homepage.tar.gz metadata.yaml # # 130-heimdall-dashboard # Error!!! # bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdall-dashboard.sh)" ## vzdump 130 -compress gzip -dumpdir /tmp # echo architecture: `pct config 130 | grep arch: | awk '{print $2}' ` > vzdump-lxc-130-heimdall-dashboard.yaml # echo creation_date: `date +%s` >> vzdump-lxc-130-heimdall-dashboard.yaml # echo description: 'vzdump-lxc-130-heimdall-dashboard Imported from Proxmox' >> vzdump-lxc-130-heimdall-dashboard.yaml # rm metadata.yaml # cp vzdump-lxc-130-heimdall-dashboard.yaml metadata.yaml # rm -czvf vzdump-lxc-130-heimdall-dashboard.tar.gz # tar -czvf vzdump-lxc-130-heimdall-dashboard.tar.gz metadata.yaml # # 131-paperless-ngx # Error!!! # bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx.sh)" ## vzdump 131 -compress gzip -dumpdir /tmp # echo architecture: `pct config 131 | grep arch: | awk '{print $2}' ` > vzdump-lxc-131-paperless-ngx.yaml # echo creation_date: `date +%s` >> vzdump-lxc-131-paperless-ngx.yaml # echo description: 'vzdump-lxc-131-paperless-ngx Imported from Proxmox' >> vzdump-lxc-131-paperless-ngx.yaml # rm metadata.yaml # cp vzdump-lxc-131-paperless-ngx.yaml metadata.yaml # rm -czvf vzdump-lxc-131-paperless-ngx.tar.gz # tar -czvf vzdump-lxc-131-paperless-ngx.tar.gz metadata.yaml # # 132-redis # vzdump 132 -compress gzip -dumpdir /tmp echo architecture: `pct config 132 | grep arch: | awk '{print $2}' ` > vzdump-lxc-132-redis.yaml echo creation_date: `date +%s` >> vzdump-lxc-132-redis.yaml echo description: 'vzdump-lxc-132-redis Imported from Proxmox' >> vzdump-lxc-132-redis.yaml rm metadata.yaml cp vzdump-lxc-132-redis.yaml metadata.yaml rm vzdump-lxc-132-redis.tar.gz tar -czvf vzdump-lxc-132-redis.tar.gz metadata.yaml # # 133-postgresql # vzdump 133 -compress gzip -dumpdir /tmp echo architecture: `pct config 133 | grep arch: | awk '{print $2}' ` > vzdump-lxc-133-postgresql.yaml echo creation_date: `date +%s` >> vzdump-lxc-133-postgresql.yaml echo description: 'vzdump-lxc-133-postgresql Imported from Proxmox' >> vzdump-lxc-133-postgresql.yaml rm metadata.yaml cp vzdump-lxc-133-postgresql.yaml metadata.yaml # rm vzdump-lxc-133-postgresql.tar.gz tar -czvf vzdump-lxc-133-postgresql.tar.gz metadata.yaml # # 134-rabbitmq # [ERROR] in line 23: exit code 0:!!! # bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/rabbitmq.sh)" ## vzdump 134 -compress gzip -dumpdir /tmp # echo architecture: `pct config 134 | grep arch: | awk '{print $2}' ` > vzdump-lxc-134-rabbitmq.yaml # echo creation_date: `date +%s` >> vzdump-lxc-134-rabbitmq.yaml # echo description: 'vzdump-lxc-134-rabbitmq Imported from Proxmox' >> vzdump-lxc-134-rabbitmq.yaml # rm metadata.yaml # cp vzdump-lxc-134-rabbitmq.yaml metadata.yaml # rm vzdump-lxc-134-rabbitmq.tar.gz # tar -czvf vzdump-lxc-134-rabbitmq.tar.gz metadata.yaml # ``` ### Synology ```bash Sun Oct 13 2024 14:08:07 GMT-0700 (Mountain Standard Time) cd /var/lib/vz/template/iso qm disk import 100 arc.img local-lvm ls -l /dev/disk/by-id qm set 100 -sata1 /dev/disk/by-id/ata-Samsung_SSD_860_EVO_250GB_S3YGNB0K311780K ```