Skip to content

Instantly share code, notes, and snippets.

@FishHawk
Last active July 26, 2025 13:44
Show Gist options
  • Select an option

  • Save FishHawk/796cd6b8ebb27767d19b0a46b995d819 to your computer and use it in GitHub Desktop.

Select an option

Save FishHawk/796cd6b8ebb27767d19b0a46b995d819 to your computer and use it in GitHub Desktop.
机翻站部署流程

机翻站部署流程

安装 OS

curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh $_
bash reinstall.sh debian 12 --password "password"

服务器准备

apt install vim
> /etc/motd # 清空登录信息

https://github.com/yboetz/motd

关闭 ssh 密码登录

shuf -i 10000-60000 -n 1 # 生成随机端口

vim /etc/ssh/sshd_config
# Port 47679
# PasswordAuthentication no

systemctl restart sshd

使用以下命令测试:

ssh xxx -o PubkeyAuthentication=no -o PreferredAuthentications=password

配置 bash

修改hostname

hostname xxx
# ~/.bashrc: executed by bash(1) for non-login shells.

PS1='\[\e[35;1m\][\u@core \[\e[94;1m\]\w\[\e[35;1m\]]\$\[\e[m\] '

export LS_OPTIONS='--color=auto'
eval "$(dircolors)"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

配置防火墙

注意要改 ssh 的端口号

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0; policy drop;
                ct state invalid counter drop comment "early drop of invalid packets"
                ct state {established, related} counter accept comment "accept all connections related to connections made by us"
                iif lo accept comment "accept loopback"
                iif != lo ip daddr 127.0.0.1/8 counter drop comment "drop connections to loopback not coming from loopback"
                iif != lo ip6 daddr ::1/128 counter drop comment "drop connections to loopback not coming from loopback"
                ip protocol icmp counter accept comment "accept all ICMP types"
                meta l4proto ipv6-icmp counter accept comment "accept all ICMP types"
                udp dport mdns ip daddr 224.0.0.251 counter accept comment "IPv4 mDNS"
                udp dport mdns ip6 daddr ff02::fb counter accept comment "IPv6 mDNS"
                tcp dport 47679 counter accept comment "accept SSH"
                counter comment "count dropped packets"
        }

        chain forward {
                type filter hook forward priority 0; policy accept;
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                iifname "docker0" masquerade
                iifname "br-*" masquerade 
        }
}
vim /etc/nftables.conf
systemctl restart nftable

部署网站

安装 docker

# Add Docker's official GPG key:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

# Install the Docker packages:
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装 Cloudflared

# Add Cloudflare's package signing key:
mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

# Add Cloudflare's apt repo to your apt repositories:
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main" | tee /etc/apt/sources.list.d/cloudflared.list

# Update repositories and install cloudflared:
apt-get update && apt-get install cloudflared

安装 ES 插件

cd auto-novel
mkdir -p data/es/plugins
chmod 777 -R data/es/plugins
chmod 777 -R data/es/data
docker run --rm -it --entrypoint bash -v ${PWD}/data/es/plugins:/usr/share/elasticsearch/plugins elasticsearch:8.6.1

# In container
bin/elasticsearch-plugin install analysis-icu

启动网站

cd auto-novel
vim docker-compose.yml
vim .env
docker-compose up -d

使用以下命令测试:

curl http://127.0.0.1

上线网站

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment