博客

  • 部署 TeamSpeak 3

    准备

    首先需要一台 Ubuntu 24.04 服务器。

    设置一下这几个端口:

    9987/udp:语音,必需
    30033/tcp:文件传输,必需
    10011/tcp:ServerQuery,可选

    从官网下载 TeamSpeak 3 服务端并解压

    sudo apt update
    sudo apt install -y curl bzip2 ca-certificates
    
    TS_VER="3.13.7"
    TS_SHA256="775a5731a9809801e4c8f9066cd9bc562a1b368553139c1249f2a0740d50041e"
    INSTALL_DIR="/opt/teamspeak3"
    
    sudo install -d -m 0755 "${INSTALL_DIR}"
    cd /tmp
    
    curl -fL -o "teamspeak3-server_linux_amd64-${TS_VER}.tar.bz2" \
      "https://files.teamspeak-services.com/releases/server/${TS_VER}/teamspeak3-server_linux_amd64-${TS_VER}.tar.bz2"
    
    echo "${TS_SHA256}  teamspeak3-server_linux_amd64-${TS_VER}.tar.bz2" | sha256sum -c -
    
    sudo tar -xjf "teamspeak3-server_linux_amd64-${TS_VER}.tar.bz2" \
      -C "${INSTALL_DIR}" \
      --strip-components=1

    创建一个 teamspeak3 用户,仅给予必要权限

    sudo useradd \
      --system \
      --home-dir /opt/teamspeak3 \
      --shell /usr/sbin/nologin \
      --user-group \
      teamspeak3
    
    sudo chown -R teamspeak3:teamspeak3 /opt/teamspeak3
    sudo chmod -R u=rwX,g=rX,o= /opt/teamspeak3

    以该用户身份运行 TeamSpeak 3 服务器

    sudo -u teamspeak3 -H bash -lc '
      cd /opt/teamspeak3
      touch .ts3server_license_accepted
      ./ts3server_minimal_runscript.sh
    '

    然后会拿到一个 Server Admin Token ID,记得用。

    添加开机自启动

    创建 systemd 单元文件:

    sudo tee /etc/systemd/system/teamspeak3.service > /dev/null <<'EOF'
    [Unit]
    Description=TeamSpeak 3 Server
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=simple
    User=teamspeak3
    Group=teamspeak3
    WorkingDirectory=/opt/teamspeak3
    ExecStart=/opt/teamspeak3/ts3server_minimal_runscript.sh
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=100000
    
    NoNewPrivileges=true
    PrivateTmp=true
    ProtectSystem=full
    ProtectHome=true
    ReadWritePaths=/opt/teamspeak3
    CapabilityBoundingSet=
    AmbientCapabilities=
    RestrictSUIDSGID=true
    LockPersonality=true
    
    [Install]
    WantedBy=multi-user.target
    EOF

    加载并启动:

    sudo systemctl daemon-reload
    sudo systemctl enable --now teamspeak3
    sudo systemctl status teamspeak3 --no-pager -l
    sudo journalctl -u teamspeak3 -n 50 --no-pager

    没问题的话可以 Ctrl + C 退出,然后:

    sudo systemctl start teamspeak3

    就可以在关闭终端时保持服务器开启了。

  • 部署 Hydro

    安装

    首先需要一台 Debian 12 服务器。

    一键安装脚本:

    LANG=zh . <(curl https://hydro.ac/setup.sh)

    搭建新 OJ

    供参考的官方文档:

    https://hydro.js.org/zh/docs/Hydro/install

    接下来浏览器访问:

    http://[数据删除]/

    注意是 http 不是 https。

    注册完用户后设置 SU:

    hydrooj cli user setSuperAdmin 2

    重启以使管理员更改立刻生效:

    pm2 restart hydrooj

    别忘记在这里关掉其他用户组不必要的权限:

    http://[数据删除]/domain/dashboard

    从旧 OJ 导入

    供参考的官方文档:

    https://hydro.js.org/zh/docs/Hydro/FAQ#%E6%80%8E%E4%B9%88%E5%A4%87%E4%BB%BD%E8%BF%98%E5%8E%9F%E5%A4%87%E4%BB%BD%E8%BF%81%E7%A7%BB%E6%95%B0%E6%8D%AE

    首先在旧服务器上:

    hydrooj backup

    会产生一个 zip 备份文件。

    接着:

    scp /path/to/备份文件.zip root@[数据删除]:/root/

    然后再新服务器上:

    hydrooj restore /root/备份文件.zip

    收尾

    最后访问配置管理改一些评测设置,从旧 OJ 导入时并不会带上这些东西:

    http://[数据删除]/manage/config
  • 世界,您好!

    欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!