本地代码通过git上传到vps


本地代码通过git上传到vps

使用 Git 不仅能备份你的代码,还能让你在本地修改后,轻松同步到 VPS 服务器上。

但是,在上传之前,有一个极其重要的安全隐患需要处理。

以下是“最佳实践”的操作指南,分为三个阶段:

🛑 第一阶段:安全处理(必须做!)

你的 app.py,如果里面直接写了 Channel SecretToken。 如果直接上传到 GitHub(即使是私有仓库),这些密钥也很容易泄露。一旦泄露,别人可以用你的 Bot 发送任何消息。

请先修改代码,把敏感信息分离出来:

  1. 在本地项目文件夹里,新建一个文件叫 config.py

    # config.py
    CHANNEL_ID = "******"
    CHANNEL_SECRET = "*******"
    USER_IDS = [
        "******",
        "******"
    ]
  2. 修改 app.py 导入配置: 删除原来的定义,改为:

    import config  # 导入刚才的文件
    
    # 调用时改成 config.CHANNEL_ID 等
    # 例如:
    # access_token = get_access_token(config.CHANNEL_ID, config.CHANNEL_SECRET)
  3. 创建 .gitignore 文件: 这个文件告诉 Git:“这些文件我不上传”。 新建文件 .gitignore,写入以下内容:

    config.py
    sent_cards.json
    __pycache__/
    *.log
    .DS_Store
    • config.py: 保护你的密钥。
    • sent_cards.json: 这是记录“已发送卡片”的状态文件。服务器上运行脚本会修改它,如果你把它上传了,每次服务器一跑,你本地代码就会冲突。让服务器自己维护这个文件就好。

🚀 第二阶段:初始化 Git 并上传 (本地操作)

假设你已经在本地安装了 Git(如果没有,去 git-scm.com 下载)。

  1. 打开终端,进入你的项目文件夹

    cd ~/myproject  # 你的文件夹路径
  2. 初始化仓库

    git init
  3. 添加文件

    git add .

    (这一步会自动忽略 .gitignore 里的文件)

  4. 提交第一次版本

    git commit -m "Initial commit: LINE Bot basic logic"
  5. 在 GitHub 上创建仓库

    • 登录 GitHub,点击右上角 + -> New repository
    • 起个名(比如 daily-line-bot)。
    • 建议选 Private (私有),虽然我们分离了密钥,但私人项目还是私有好。
    • 点击 Create repository
  6. 连接并推送: GitHub 会给你两行代码,类似下面这样(复制你页面上的,终端运行):

    git remote add origin https://github.com/你的用户名/daily-line-bot.git
    git push -u origin main

☁️ 第三阶段:在 VPS 上部署和更新

现在代码已经在云端了,我们需要把 VPS 和它连接起来。

第一次部署(在 VPS 上):

  1. 登录 VPS

  2. 克隆代码

    git clone https://github.com/你的用户名/daily-line-bot.git line_jp

    (它会让你输入 GitHub 用户名和密码。注意:现在的密码通常需要用 Personal Access Token)

  3. 补充被忽略的文件: 因为 config.py 被忽略了,你需要手动在 VPS 上创建它:

    cd line_jp
    nano config.py
    # 把密钥填进去,保存退出

    同理,sent_cards.json 第一次运行会自动生成,不用管。

以后如何“经常更新”:

当你本地修改了代码(比如优化了逻辑):

  1. 本地 (Local)

    git add .
    git commit -m "优化了发送逻辑"
    git push
  2. 服务器 (VPS)

    cd ~/daily-line-jp-bot
    git pull

    这就搞定了!代码瞬间同步成最新的,而且不会覆盖你服务器上独有的 config.pysent_cards.json


💡 进阶小贴士:免密更新

如果你觉得每次 git pull 都要输入密码很烦,可以在 VPS 上配置 SSH Key

  1. VPS 上运行 ssh-keygen
  2. 把生成的 ~/.ssh/id_rsa.pub 内容复制到 GitHub 的 Settings -> SSH and GPG keys 里。
  3. 以后用 git clone git@github.com:... 的方式,就再也不用输密码了。