38 KiB
38 KiB
created, type, updated
created | type | updated |
---|---|---|
2024-01-06T01:25:36.042Z | topic | 2024-11-01T20:53:57.554Z |
Proxmox
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
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
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
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 ~^(?<subdomain>.+)\.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;
}
}
nano /root/localhost.conf
echo >/root/localhost.conf && nano /root/localhost.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
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
nginx -t
systemctl restart nginx
nginx -s reload
ls /etc/nginx
# https://pve.home/#
# https://gogs.pve.home/#
# https://syncthing.pve.home/#
adduser gogs
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
mkdir /home/gogs/gogs-repositories
chown gogs /home/gogs -R
chgrp gogs /home/gogs -R
nano /etc/systemd/system/gogs-daemon.service
[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
nano /home/gogs/gogs/custom/conf/app.ini
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
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
apt-get install syncthing
apt-get install apt-transport-https
adduser syncthing
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
<address>0.0.0.0:8384</address>
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
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
nano /root/.ssh/authorized_keys
apt-get install ssh-import-id
ssh-import-id gh:mikepharesjr
systemctl restart ssh
adduser pi-hole
To Do ...
cd /home/pi-hole
# curl -sSL https://install.pi-hole.net | bash
nano /etc/network/interfaces
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/*
nano /etc/apt/sources.list
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
nano /etc/apt/sources.list.d/pve-enterprise.list
# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
nano /etc/apt/sources.list.d/ceph.list
# deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
deb http://download.proxmox.com/debian/ceph-reef bookworm no-subscription
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)"
# 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
# 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
# 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)"
[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=
│ │
│ 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
│ │
│ 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
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
│ │
│ 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
| API secret is: │
│ │
│ acGowYxiaTIJMw0ZgYxwaYFBn1k3yQlJ │
│ │
│ Note the API secret is stored in plain text in the .env │
│ file.
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
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
# 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
# [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
# [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
# [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
# 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
# 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
# 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
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.
# 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
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
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
# 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
# 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
# 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
pct enter 112
exit
nano /etc/pve/lxc/112.conf
Proxmox SDN (Software-Defined Network)
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)
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
# 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
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
pct enter 101
nano /mnt/vm-100-disk-1/metadata.yaml
architecture: amd64
creation_date: 1719784042
description: Ubuntu Gogs imported from tteck.github.io Proxmox
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
cat /etc/os-release
# ID=debian
# VERSION="12 (bookworm)"
# VERSION_CODENAME=bookworm
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 -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
/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
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
# 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
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
# 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
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