2024-06-03
This commit is contained in:
448
_-Review/proxmox.md
Normal file
448
_-Review/proxmox.md
Normal file
@ -0,0 +1,448 @@
|
||||
---
|
||||
type: "topic"
|
||||
created: "2024-01-06T01:25:36.042Z"
|
||||
updated: "2024-01-06T01:25:36.042Z"
|
||||
---
|
||||
|
||||
# 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 ~^(?<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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```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
|
||||
<address>0.0.0.0:8384</address>
|
||||
```
|
||||
|
||||
```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
|
||||
```
|
Reference in New Issue
Block a user