作者: 启鑫

  • Docker安装wiki.js知识共享平台

    通过 Docker 部署 Wiki.js 可以帮助团队快速建立起知识共享平台,Wiki.js 是一个现代化的、功能强大的 Wiki 引擎,基于 Node.js 开发,支持多种数据库(如 PostgreSQL 和 MySQL)。它提供了丰富的功能,包括实时协作、Markdown 支持、权限管理、搜索功能等,非常适合团队内部使用,帮助知识共享和文档管理。

    1. 安装Docker

    curl -fsSL https://get.docker.com -o get-docker.sh
    sh get-docker.sh

    2. 使用 Docker 部署 Wiki.js

    需要创建一个 docker-compose.yaml 文件,用于定义 Docker 服务的配置。

    nano docker-compose.yaml

    文件内容如下:

    services:
    
      db:
        image: postgres:15-alpine
        environment:
          POSTGRES_DB: wiki
          POSTGRES_PASSWORD: wikijsrocks
          POSTGRES_USER: wikijs
        logging:
          driver: none
        restart: unless-stopped
        volumes:
          - db-data:/var/lib/postgresql/data
    
      wiki:
        image: ghcr.io/requarks/wiki:2
        depends_on:
          - db
        environment:
          DB_TYPE: postgres
          DB_HOST: db
          DB_PORT: 5432
          DB_USER: wikijs
          DB_PASS: wikijsrocks
          DB_NAME: wiki
        restart: unless-stopped
        ports:
          - "80:3000"
    
    volumes:
      db-data:

    3. 启动容器

    通过 docker-compose 启动 Wiki.js 和 PostgreSQL 数据库:

    docker-compose up -d

    命令执行后,Docker 会下载必要的镜像并启动容器。

    Wiki.js 将绑定到主机的 80 端口
    你可以通过浏览器访问 http://<你的服务器 IP>:80 来完成 Wiki.js 的配置。

  • Linux系统配置时区和时间同步服务的两种方法

    在 Linux 系统中,配置时区和启用时间同步服务可以通过不同的方式完成。下面我们将介绍两种常见的方法:一种使用传统命令,另一种使用 timedatectl 命令来进行配置。

    方法一:使用传统命令配置时区

    1. 配置时区为 Asia/Singapore

    你可以通过以下命令来设置时区:

    echo "Asia/Singapore" | tee /etc/timezone

    然后,将本地时间设置为 Asia/Singapore 时区:

    ln -sf /usr/share/zoneinfo/Asia/Singapore /etc/localtime
    1. 查看当前系统时间

    使用 date 命令查看系统时间,确保时区设置生效:

    date

    方法二:使用 timedatectl 配置时区

    1. 配置时区为 Asia/Singapore

    使用 timedatectl 直接设置时区:

    timedatectl set-timezone Asia/Singapore
    1. 查看当前系统时间

    使用 timedatectl 查看当前系统时区设置:

    timedatectl
    1. 安装并启动时间同步服务

    如果系统没有启用时间同步服务,可以通过以下命令来安装和启动 systemd-timesyncd 服务:

    apt install systemd-timesyncd
    systemctl start systemd-timesyncd
    systemctl status systemd-timesyncd
    1. 确认时间同步

    使用 timedatectl 再次查看同步状态:

    timedatectl
  • 通过 SCP自动同步远程备份文件到本地

    使用 scp 命令在 Linux 环境中实现自动备份。通过脚本并结合 cron 定时任务,实现每天自动从远程服务器拉取指定目录的备份数据到本地指定路径。

    1. 配置密钥登录

    1. 更新系统并安装所需的软件:
    apt update
    apt install -y openssh-client nano cron
    1. 创建 .ssh 目录:
    mkdir .ssh
    1. 将私钥文件放入 .ssh 目录,并设置正确的权限:
    nano /root/.ssh/id_rsa
    chmod 600 /root/.ssh/id_rsa

    2. 设置备份脚本

    1. 创建并编辑备份脚本:
    nano /root/backup.sh
    1. backup.sh 中添加以下内容:
    #!/bin/bash
    
    # Set the SFTP private key path and remote host information
    PRIVATE_KEY="/root/.ssh/id_rsa"
    REMOTE_USER="qixin"
    REMOTE_HOST="192.168.1.100"
    REMOTE_PATH="/opt/backup/*"
    LOCAL_PATH="/opt/web-backup"
    
    # Loop through files in remote directory and skip existing ones
    for remote_file in $(ssh -i "$PRIVATE_KEY" "$REMOTE_USER@$REMOTE_HOST" "ls $REMOTE_PATH"); do
        local_file="$LOCAL_PATH/$(basename $remote_file)"
    
        # Check if the file already exists locally
        if [ ! -f "$local_file" ]; then
            echo "Downloading $remote_file..."
            /usr/bin/scp -i "$PRIVATE_KEY" "$REMOTE_USER@$REMOTE_HOST:$remote_file" "$LOCAL_PATH"
        else
            echo "$remote_file already exists, skipping."
        fi
    done
    
    # Exit the script
    exit 0

    说明

    • PRIVATE_KEY 设置私钥路径
    • REMOTE_USER 设置用户名
    • REMOTE_HOST 设置IP地址
    • REMOTE_PATH 远程文件目录路径
    • LOCAL_PATH 本地文件目录路径
    1. 设置脚本执行权限:
    chmod +x /root/backup.sh

    3. 设置定时任务

    1. 编辑 crontab 配置,设置每天凌晨三点执行备份脚本:
    crontab -e
    1. 在 crontab 文件中添加以下内容:
    0 3 * * * /root/backup.sh >> /var/log/backup.log 2>&1

  • macOS 禁止在 SMB 共享上创建 .DS_Store 文件

    macOS 禁止在 SMB 共享上创建 .DS_Store 文件

    命令:

    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

    执行命令后,重启电脑生效

    作用:

    • 防止在网络共享文件夹中生成 .DS_Store 文件,保持文件夹整洁。
    • 避免将 macOS 特有的文件传播到其他操作系统,例如 Windows 或 Linux。
    • 减少网络共享上的不必要数据,从而节省存储空间和带宽。

    还原操作:

    要恢复默认设置,允许 macOS 在网络共享上创建 .DS_Store 文件,请在终端中执行以下命令:

    命令:

    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE

    执行命令后,重启电脑生效

  • 使用Docker部署ONLYOFFICE 社区版文档服务器

    ONLYOFFICE 文档服务器是一款在线办公套件,包含文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

    主要特点:

    • 实时协作:支持多人同时编辑同一个文档,提升团队协作效率。
    • 多种格式支持:兼容主流 Office 格式(如 .docx.xlsx.pptx),无缝处理不同类型的文件。
    • 跨平台支持:适用于 Windows、Linux、macOS 等多平台,方便部署和使用。
    • 高效文档管理:提供强大的文档查看、编辑、共享功能,适用于个人及小型团队使用。

    1. 克隆 ONLYOFFICE 社区版仓库

    首先,打开终端并克隆 ONLYOFFICE 的社区版 Docker 配置库:

    git clone https://github.com/ONLYOFFICE/Docker-CommunityServer

    2. 进入项目目录

    克隆完成后,进入项目目录:

    cd Docker-CommunityServer

    3. 启动 Docker 容器

    使用 docker-compose 启动 ONLYOFFICE 社区版文档服务器:

    docker-compose -f docker-compose.workspace.yml up -d

    4. 配置访问

    部署完成后,你可以通过访问服务器的 IP 地址或域名来使用 ONLYOFFICE 文档服务器。默认端口为 80,你可以在浏览器中输入服务器地址,例如:

    http://<服务器IP地址>/
  • Ollama 与 LangChain构建本地化且强大的 LLM 生态系统

    在大型语言模型(LLM)的快速发展中,Ollama 将继续简化本地部署流程,帮助开发者更加便捷地运行 LLM,而 LangChain 将扩展更多数据源和功能模块,帮助开发者构建更加丰富、复杂的 AI 应用。

    1. LangChain:构建 LLM 应用的强大框架

    LangChain 是一个用于构建 LLM 驱动的应用程序的开发框架,它提供了一系列强大的工具和组件,使得开发者能够轻松构建出复杂的、数据驱动的应用。LangChain 支持与各种外部数据源、API 和工具的集成,极大地扩展了 LLM 的应用场景。

    LangChain 的核心功能包括多种提示管理、链式调用、数据增强等,能够帮助开发者构建更加智能、灵活的 AI 应用,如智能问答、聊天机器人、文档分析系统等。

    LangChain 的特点

    1. 丰富的组件与工具:LangChain 提供了提示模板(Prompt Templates)、链式调用(Chains)、智能体(Agents)等多种组件,帮助开发者实现复杂的功能。
    2. 数据集成:LangChain 可以与多种数据源集成,包括文件、数据库、向量数据库、Web API 等,扩展了 LLM 的应用范围。
    3. 应用开发能力:开发者可以通过 LangChain 构建复杂的应用,如问答系统、聊天机器人、数据增强应用等,为实际业务提供智能支持。
    4. 会话记忆管理:LangChain 支持多轮对话和会话记忆,使得开发者能够创建更加自然的对话流和用户交互体验。

    2. Ollama:简化本地 LLM 部署

    Ollama 是一个工具平台,旨在简化本地 LLM 的部署过程。它为用户提供了一个简单、直观的方式,让开发者能够快速在本地计算机上运行各种开源的 LLM,无需复杂的配置或环境搭建。通过 Ollama,开发者可以轻松下载、安装并运行大多数流行的 LLM,从而降低了 LLM 使用的技术门槛。

    Ollama 的特点

    1. 简洁易用的命令行工具:通过简短的命令即可下载并启动 LLM,极大简化了模型的部署流程。
    2. 本地运行,隐私保障:Ollama 允许用户在本地计算机上运行模型,避免了将数据上传至云端的隐私风险。
    3. 灵活的模型管理:用户可以方便地下载、管理并切换多个不同的 LLM,例如 LLaMA、Mistral、Gemma 等,满足不同应用需求。
    4. 跨平台支持:Ollama 支持 macOS、Linux 和部分 Windows 系统,确保各种开发环境都能顺利使用。

    3. Ollama与LangChain的协同作用

    虽然 Ollama 和 LangChain 各自有独立的功能,但它们实际上是互为补充的工具,可以在多个开发场景中协同工作,帮助开发者更高效地利用 LLM 技术。

    例如,开发者可以在本地使用 Ollama 运行 LLAMA 模型,然后结合 LangChain 构建一个智能问答系统,该系统能够与外部数据源(如本地文件或数据库)交互。Ollama 提供了本地模型的运行环境,而 LangChain 则帮助开发者设计和实现复杂的应用逻辑。

    4. 应用场景

    场景Ollama 角色LangChain 角色
    本地文档问答系统提供本地运行的 LLM 推理能力管理文档解析、嵌入、问答流程
    离线智能助理本地运行模型(如LLAMA)处理会话管理、记忆、工具调用
    多模型测试与对比快速切换多个 LLM 进行测试提供统一接口进行多模型测试

    通过将 Ollama 与 LangChain 结合,开发者不仅能够在本地高效运行 LLM,还能够快速构建复杂的 LLM 应用,充分发挥 LLM 的能力。