在 Vultr 安裝 Win10 LTSC

※ 在 Vultr 裡開一台 Ubuntu 22.0.4

※ 以 root 登入後,執行以下指令

apt update -y && apt dist-upgrade -y && apt-get install -y xz-utils openssl gawk file wget screen && screen -S os
wget --no-check-certificate -O NewReinstall.sh https://cdn.jsdelivr.net/gh/fcurrk/reinstall@master/NewReinstall.sh && chmod a+x NewReinstall.sh && bash NewReinstall.sh

※ 選 99 Custom install

Custom image URL:

https://dl.lamp.sh/vhd/en-us_win10_ltsc_uefi.xz

https://dl.lamp.sh/vhd/en-us_windows10_ltsc.xz

※ 接下來等大約半小時,就可以用 遠端桌面連線

※ 帳號:administrator

※ 密碼:Teddysun.com

How to install Docker on aaPanel in Ubuntu 22.04

apt update
apt upgrade
apt full-upgrade
apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

添加 Docker 的官方 GCP 密鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 官方安裝路徑:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新

apt update

安装最新 Docker CE

apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

查看 Docker 運行狀況

systemctl status docker.service

機器重開時自動啟動 Docker:

systemctl enable docker

安裝 Docker-composer

curl -L "https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

賦予可執行的權限

chmod +x /usr/local/bin/docker-compose

Docker 安裝 Chrome 瀏覽器

Intel / AMD

Github https://github.com/vital987/chrome-novnc

指令

docker run -d --name chrome-novnc -e PORT=5900 -p 5900:5900 -e VNC_PASS=密碼 vital987/chrome-novnc:latest

記得開 port 5900

連接

http://ip:5900

ARM64

DockerHub https://hub.docker.com/r/zsource/chrome-novnc

指令

docker run -d --name chrome-novnc -e PORT=5900 -p 5900:5900 -e VNC_PASSWD=密碼 zsource/chrome-novnc:arm64

記得開 port 5900

連接

http://ip:5900

香橙派 OrangePi 相關資源

非大陸地區使用海外網站來查詢、下載

http://www.orangepi.org/

使用 ubuntu 安裝 aapanel 需要環境

sudo sed -i 's/nosuid/&,size=2G/' /etc/fstab
sudo reboot

重啟後再以root執行安裝

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel

aapanel 舊版 破解版

https://github.com/AaronYES/aaPanel/blob/main/README_zh.md

安裝 ZeroTier 內網穿透

官網Github https://github.com/zerotier/ZeroTierOne

curl -s https://install.zerotier.com | sudo bash
sudo zerotier-cli join 你的network ID

連接 wifi

nmcli d
nmcli r wifi on
nmcli d wifi list
nmcli d wifi connect <wifi名稱> password <wifi密碼>

ARM aarch64 CentOS 7 安裝 ffmepg

登入root

下載安裝包

wget https://ffmpeg.org//releases/ffmpeg-6.1.tar.gz

解壓縮

tar -zxvf ffmpeg-6.1.tar.gz

編譯

cd ffmpeg-6.1
./configure --target-os=linux --prefix=/usr/local/ffmpeg --arch=arm64
make && make install

設置環境變數

vi /etc/profile

在最後一行加入

export PATH=$PATH:/usr/local/ffmpeg/bin

保存後退出

重新載入 /etc/profile

source /etc/profile

確認版本及安裝

ffmpeg -version

dkim 是什麼?

DKIM (Domain Keys Identified Mail),網域金鑰認證郵件。

DKIM 和ssl(https)的運作機制相似,一樣採用公私鑰數位簽章方式。在發送郵件時由發信服務器對郵件以私鑰進行簽章,而在郵件接收伺務器上,會透過 DNS 查詢寄件者網域的dkim 公鑰資料,然後對這封郵件做簽章解碼,如果解碼成功,代表郵件確實為原始郵件伺服器所寄出。

此舉可以避免假冒的伺服器寄信者來源,讓該網域確實由授權的伺服器所寄出,減少email被偽造來源的可能。

簡單來說 dkim 是用來驗證寄件者是否來自於合法伺服器的方法。

安裝dkim服務

yum -y install epel-release
yum install opendkim

產生公私鑰

mkdir /etc/opendkim/keys/mail.fisp.com.tw
opendkim-genkey -b 2048 -D /etc/opendkim/keys/mail.fisp.com.tw/ -d mail.fisp.com.tw -s mail

  • 參數的意義
  • -b 2048 bits,gmail要求要2048,沒帶此參數的話預設是1024
  • -D 產生的公私鑰目錄
  • -d 網域名
  • -s 稱之為選擇器(selector),可以隨便取,我用mail

將公私鑰的使用者和群組改為 opendkim

chown -R opendkim:opendkim /etc/opendkim/keys/mail.fisp.com.tw/

設定opendkim

vi opendkim.conf

# 修改為 Mode s,他有3種模式,Mode s, Mode v, Mode sv。s代表寄出時簽章、v代表收信時檢查簽章。

Mode    s

# 加上註解
#KeyFile    /etc/opendkim/keys/default.private

# 以下項目移除註解
KeyTable    /etc/opendkim/KeyTable
SigningTable    refile:/etc/opendkim/SigningTable
InternalHosts   refile:/etc/opendkim/TrustedHosts

vi /etc/opendkim/KeyTable

加上一行
[選擇器名]._domainkey.[網域名] [網域名]:[選擇器名]:[私鑰檔路徑]
mail._domainkey.mail.fisp.com.tw mail.fisp.com.tw:mail:/etc/opendkim/keys/mail.fisp.com.tw/mail.private

vi /etc/opendkim/SigningTable

加上一行
*@mail.fisp.com.tw mail._domainkey.mail.fisp.com.tw

vi /etc/opendkim/TrustedHosts

加上自己的ip,此文範例是使用InternalHosts,因此清單中寄信的來源ip都要加上簽章。
60.251.35.77

啟動 opendkim

systemctl restart opendkim
systemctl enable opendkim

設定postfix

vi /etc/postfix/main.cf

在最後加上
# DKIM Settings
# 8891是opendkim提供服務的port

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

重新啟動postfix

systemctl restart postfix

確認參數有沒有啟動

postconf -n

設定dns的記錄

接下來設定dns的記錄,dkim主要要新增二筆

第一筆是把/etc/opendkim/keys/mail.fisp.com.tw/mail.txt 打開,裡面大概長這樣:

mail._domainkey IN      TXT     ( “v=DKIM1; k=rsa; ”     

     “p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2lv/zWzwbHh/GC4S9MDxNhAG9GZ+ROqb2KqocQdZigb9r3wM3W6uKP/y0mI6pwTpcad6YXYoxjMOOjxe4yntzRZWPzKBrO0ewWAic3oRbd7/TZGrWghj4OmGj4TjJHXwL/uRNcOwi044L1lnVHcWYHFQ4stpD+iW1C2CJ6duPmJrlM5pauo4YSqTig3Rn1BuFQ6enzhJ0bad5f”

          “W8qo1uVudpL24LsTdADLiLgTnvn7xbbPZK0EneJz6T/bARRt4jym35zDzlHFS+hdItJ1ZVXvTliw5I7nxRrC57MQn3K4WWmVUiNffF2kWPwCHcULZmNF7sBdeOc2XxjaZ/Srq6KwIDAQAB” )  ; —– DKIM key mail for mail.fisp.com.tw

依照內容在DNS上新增一筆TXT紀錄,如圖:

注意,三角形的地方記得要空格,對照mail.txt的內容就知道了

第二筆是adsp,Author Domain Signing Practices(adsp) 簡單來說就是dkim的認證機制dkim= 的值可以用 ”all””unknown””discardable”

“all” 指定所有此網域的信都會有簽章
“discardable” 指定所有此網域的信都會有簽章,如果沒有的話請丟棄(最嚴格)。如要dkim 有意義的運作,最好把他設為這個。
“unknown” 指定所有此網域的信有可能會有簽章 (最寬鬆看待,等於沒設)。

spf紀錄

測試及驗證

寄一封信給自己,然後看那封信的原始檔,大致上會長這樣,看到紅字部分就表示郵件寄出時會加入dkim的數位簽章

Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from [192.168.1.168] (unknown [106.104.166.116])
by mail.fisp.com.tw (Postfix) with ESMTPSA id E7E4F40566BC
for <[email protected]>; Wed, 31 Jan 2024 15:04:20 +0800 (CST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.fisp.com.tw E7E4F40566BC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.fisp.com.tw;
s=mail; t=1706684661;
bh=Bynm51C7RZD/vZ81iEMKjxxLoAJtSmKFcwU/eyFzPs8=;
h=Date:To:From:Subject:From;
b=R1s0ZTGXoJlof6ISeYfH2S9B9hrqUESd1Vlja0n9mgWszg8BIQ7x/ReC0/uafzIRE
iry1/gscdR7sQif5y8PxMduy0I+MVc1kdacQplaI7PJHAL8C+72eDOMfo+eWws3DxJ
PlWb+MUzVBJ89MTMuuzznbcwthIzymrDX1apQpUiDnfZ+noQww0XUJPS/ikfDis74E
UcifCRab9sM9JQ2zq3hcY2BDpDUNnU+WJMcFig/GlIq9fCEI7Yty596P5b+87uww37
RQvP58jdVxp473xOJnSioJsstroDqNqgkbHGewhDbWPxp/sXvQwDChQd426oK2v+fY
59AKQa8yQg+jQ==

Message-ID: <05dcbd87-c0e8-45fb-8ecf-344daf5936be@ash
Date: Wed, 31 Jan 2024 15:04:21 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: t017@ashFrom: =?UTF-8?B?6JeN5ZyL6IiI?= <t017@ash
Subject: 測試郵件
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
測試郵件

dkim測試

https://mxtoolbox.com/dkim.aspx

spf測試

https://mxtoolbox.com/spf.aspx

Win10 安裝 NBA

下載檔案

https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe
https://sourceforge.net/projects/openssl-for-windows/files/latest/download
https://www.sqlite.org/snapshot/sqlite-tools-win-x64-202311231212.zip
https://www.sqlite.org/2023/sqlite-dll-win-x64-3440100.zip
https://github.com/git-for-windows/git/releases/download/v2.43.0.windows.1/Git-2.43.0-64-bit.exe

安裝 sqlite3

解壓 sqlite-tools-win-x64-202311231212.zip 及 sqlite-dll-win-x64-3440100.zip

將解壓的檔案複製到 C:\Program Files\sqlite 中

安裝 openssl 1.1.1q

解壓 OpenSSL-1.1.1q_win32

將解壓的檔案複製到 C:\Program Files\OpenSSL-1.1.1q_win32

配置環境變數

在系統環境變數裡的 Path 裡 新增

C:\Program Files\sqlite

C:\Program Files\OpenSSL-1.1.1q_win32

C:\Users\使用者\AppData\Roaming\Python\Python310\Scripts

安裝 Python 3.10.0

執行 python-3.10.0-amd64.exe

記得將 Add python.exe to PATH 打勾

選 Customize Installation -> 下一步

將 Install Python 3.10.0 for all user 打勾 -> 安裝

點 Disable path length limit

安裝完成後,開 終端機

pip install --upgrade pip
python
import ssl
ssl.OPENSSL_VERSION

安裝 Git

執行 Git-2.43.0-64-bit.exe -> next -> next

將 (NEW!) Add a Git Bash Profile to Windows Terminal 打勾 -> 一路 next -> Install

下載 NBA

在桌面建立一個 NBA 資料夾

執行 Git GUI

Repository -> Clone

Source Location: https://github.com/kyleskom/NBA-Machine-Learning-Sports-Betting.git

Target Directory: C:\Users\使用者\Desktop\NBA\NBA-Machine-Learning-Sports-Betting

clone

建 NBA 環境

在 終端機 內

cd C:\Users\使用者\Desktop\NBA\NBA-Machine-Learning-Sports-Betting

修改 requirements.txt 文件, 如下:

colorama
pandas==2.1.0
sbrscrape
tensorflow==2.11.0
#tensorflow-metal==1.1.0
xgboost
tqdm
flask
scikit-learn

修改完存檔

pip install -r requirements.txt

取完整資料

cd src/Process-Data
python -m Get_Data
python -m Get_Odds_Data
python -m Create_Games

訓練模型

cd ..\Train-Models
python -m XGBoost_Model_ML
python -m XGBoost_Model_UO

測試(下載完新資料,訓練完模型,就不會有錯誤訊息)

python main.py -xgb -odds=fanduel

包含 fanduel, draftkings, betmgm, pointsbet, caesars, wynn, bet_rivers_ny

開啟 web 連線

cd C:\Users\使用者\Desktop\NBA\NBA-Machine-Learning-Sports-Betting
flask --debug run --host=0.0.0.0

CentOS 7 上安裝 NBA

全部以root執行

環境安裝

yum -y update
yum -y install epel-release
yum -y install wget make cmake gcc bzip2-devel libffi-devel zlib-devel sqlite-devel git
yum -y groupinstall "Development Tools"

關閉 SELinux

getenforce
setenforce 0
vi /etc/sysconfig/selinux

將 SELINUX=enforcing改為 SELINUX=disabled

開 防火牆 及 port 5000

systemctl start firewalld
systemctl status firewalld
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewall-cmd --reload

安裝 openssl 1.1.1

yum -y remove openssl openssl-devel
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar xvf openssl-1.1.1w.tar.gz
cd openssl-1.1*/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make -j $(nproc)
make install
ldconfig
tee /etc/profile.d/openssl.sh<<EOF
export PATH=/usr/local/openssl/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH
EOF
source /etc/profile.d/openssl.sh
logout

再登入

which openssl

安裝 Python 3.11

cd
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
tar xvf Python-3.11.4.tgz
cd Python-3.11*/
LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/local/openssl/lib" ./configure --with-openssl=/usr/local/openssl --enable-loadable-sqlite-extensions && make && make altinstall
python3.11
import ssl
ssl.OPENSSL_VERSION
pip3.11 --version
pip3.11 install --upgrade pip

安裝 NBA

cd
git clone https://github.com/kyleskom/NBA-Machine-Learning-Sports-Betting.git
cd NBA-Machine-Learning-Sports-Betting
pip3.11 install -r requirements.txt
python3.11 main.py -xgb -odds=fanduel

包含 fanduel, draftkings, betmgm, pointsbet, caesars, wynn, bet_rivers_ny

取完整資料

cd src/Process-Data
python3.11 -m Get_Data
python3.11 -m Get_Odds_Data
python3.11 -m Create_Games

訓練模型

cd ../Train-Models
python3.11 -m XGBoost_Model_ML
python3.11 -m XGBoost_Model_UO

開啟 web 連線

cd NBA-Machine-Learning-Sports-Betting/Flask
vi app.py

將 python 改為 python3.11

flask --debug run --host=0.0.0.0

CentOS 7 安裝 cmake 3.5.2, OpenCC, opencc4php

cmake 的部份

sudo su
cd
yum remove cmake -y
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
tar -zxvf cmake-3.6.2.tar.gz
cd cmake-3.6.2
./bootstrap --prefix=/usr/local
make
make install
vi ~/.bash_profile
PATH=/usr/local/bin:$PATH:$HOME/bin
source ~/.bash_profile
cmake --version

OpenCC 的部份

cd
wget https://github.com/BYVoid/OpenCC/archive/refs/tags/ver.1.1.0.tar.gz
tar zxvf ver.1.1.0.tar.gz
cd OpenCC-ver.1.1.0/
yum -y install doxygen doxygen-latex doxygen-doxywizard
make
make install

64位元系統再加入以下這指令

ln -s /usr/lib/libopencc.so.2 /usr/lib64/libopencc.so.2

opencc4php 的部份

cd
git clone https://github.com/NauxLiu/opencc4php.git --depth 1
cd opencc4php/
phpize

php 7.1:

./configure --with-opencc=/usr/local/OpenCC --with-php-config=/www/server/php/71/bin/php-config

php 8.0:

./configure --with-opencc=/usr/local/OpenCC --with-php-config=/www/server/php/80/bin/php-config
make test
make
make install

修改 php 設定檔

php 7.1:

extension = /www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/opencc.so

php 8.0:

extension = /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/opencc.so

重啟 php