风过空庭,字句正徐来。
关于主页自述隐私政策版权声明
更多时间线友链
联系写留言发邮件
© 2021-2026 Jui-Ch'i Lau. | RSS 订阅 | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&
白い
.
| 蜀 ICP 备 2021022497 号 |
正在被0人看爆
纸白微明,未成篇章。

由 typecho 迁移至 Mix Space

(已编辑)
368
5
这篇文章上次修改于,可能部分内容已经不适用,如有疑问可询问作者。

由 typecho 迁移至 Mix Space

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 由 typecho 迁移至 Mix Space

    背景

    1. typcho 配合 百度智能云-内容审核 无法完全屏蔽来自俄语、英语及其他语言的垃圾评论,令人头疼;
    2. typecho更新不积极,生态不够完善;
    3. 有一台空余的阿里云ECS闲置未使用

    备份

    通过 URLOS 面板直接备份 typecho数据库,并保存至本地。


    导出文章

    更换pip源

    CodeBlock Loading...

    克隆项目

    CodeBlock Loading...

    配置参数

    CodeBlock Loading...

    按照服务器配置进行修改:

    CodeBlock Loading...

    修改好后,执行:

    CodeBlock Loading...

    typecho 保存的页面及文章就会保存在 post 目录中,下载到本地即可。


    部署 Mix Space

    安装 1Panel 并配置 Docker 镜像

    由于我的服务器系统是 Ubuntu ,通过下列命令进行安装

    CodeBlock Loading...

    安装好后,登入 1Panel 面板,通过 应用商店 安装 OpenResty 应用,并进入 容器 - 配置 - 基础配置 - 镜像加速 - 设置,将下列镜像源粘贴至右侧输入框:

    CodeBlock Loading...

    粘贴后,点击 确认 ,在弹出的对话框中输入 立即重启 并确认,完成 Docker 镜像的配置。

    安装 Mix Space

    按照 Docker 部署 这篇官方部署文档进行后端部署

    CodeBlock Loading...

    将 services - app -environment 中最后两行的配置进行修改(截取自部分 docker-compose.yml 文件):

    CodeBlock Loading...
    • JWT 密钥:需要填写长度不小于 16 个字符,不大于 32 个字符的字符串,用于加密用户的 JWT,务必保存好自己的密钥,不要泄露给他人。
    • 被允许的域名:需要填写被允许的域名,通常是前端的域名,如果允许多个域名访问,用英文逗号,分隔。

    修改好之后,按下键盘 ESC 键,并输入 :wq 进行保存。

    启动 Mix Space

    CodeBlock Loading...

    配置反向代理

    创建网站

    1. 通过 1Panel 面板,网站 - 证书 - 申请证书 或 上传证书 先申请或上传域名的 SSL 证书。

    2. 通过 1Panel 面板,网站 - 网站 - 创建网站 - 反向代理 ,在 主域名 处输入后端域名,在 代理地址 输入 127.0.0.1:2333 ,然后点击 确认 。
    3. 选择刚刚创建的网站的 配置 - HTTPS ,启用HTTPS 选择打开,在下面选择第一步上传或申请的 SSL 证书,然后 保存 。
    4. 点击 反向代理 - 源文 ,输入以下内容并确认:
    CodeBlock Loading...
    1. 现在已经配置好 Mix Space ,浏览器打开域名,进行设置即可。

    架构

    系统 面板 环境 服务
    Ubuntu URLOS Docker PHP(typecho) + AliSQL
    Ubuntu 1Panel Docker Mix Space + PHP(图床)
    OpenCloudOS 宝塔 Node.js Shiroi

    参考资料

    typecho2md

    1Panel 文档

    Docker 部署

    PYTH
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
    git clone https://github.com/ds19991999/typecho2md.git
    
    cd typcho2md
    rm -rf post/*.md 
    vi config.yaml
    
    YAML
    mysql:
      host: "127.0.0.1"
      port: 3306
      user: "数据库用户名"
      password: "数据库密码"
      database: "数据库名"
      db_table: "typecho_contents"
    
    python3 typecho2md.py
    
    curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
    
    TEX
    https://hub.jiuy.eu.org
    https://do.jiuy.eu.org
    
    cd && mkdir -p mx-space/core && cd $_
     
    # 拉取 docker-compose.yml 文件
    wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml
    
    vi docker-compose.yml
    
    YML
    services:
      app:
        container_name: mx-server
        image: innei/mx-server:latest
        environment:
          - TZ=Asia/Shanghai
          - NODE_ENV=production
          - DB_HOST=mongo
          - REDIS_HOST=redis
          - ALLOWED_ORIGINS=前端域名
          - JWT_SECRET=JWT密钥
    
    docker compose up -d
    
    NGINX
    location /socket.io {
          proxy_pass http://127.0.0.1:2333/socket.io; 
          proxy_set_header Host $host; 
          proxy_set_header X-Real-IP $remote_addr; 
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
          proxy_set_header REMOTE-HOST $remote_addr; 
          proxy_set_header Upgrade $http_upgrade; 
          proxy_set_header Connection "upgrade"; 
          proxy_buffering off;
          proxy_http_version 1.1; 
          add_header Cache-Control no-cache; 
        }
        ## Others
        location / {
          proxy_pass http://127.0.0.1:2333; 
          proxy_set_header Host $host; 
          proxy_set_header X-Real-IP $remote_addr; 
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
          proxy_set_header REMOTE-HOST $remote_addr; 
          add_header X-Cache $upstream_cache_status; 
        }
        location /proxy {
            proxy_pass http://127.0.0.1:2333/proxy;
        }
        location /qaqdmin {
            proxy_pass http://127.0.0.1:2333/proxy/qaqdmin;
        }
        location /api/v2 {
            proxy_pass http://127.0.0.1:2333/api/v2; 
        }