标签: Linux

  • Docker安装Nextcloud

    Nextcloud 是一款开源的私有云存储服务,通过 Docker 部署 Nextcloud 可以快速搭建私有云存储服务,适用于个人和小型团队使用。

    1. 创建工作目录

    在服务器上创建一个专门用于存放 Nextcloud 数据的目录,并进入该目录:

    mkdir nextcloud && cd nextcloud

    2. 编写 docker-compose.yml 配置文件

    创建 docker-compose.yml 文件,并填入以下内容:

    services:
      db:
        image: postgres
        restart: always
        volumes:
          - db:/var/lib/postgresql/data
        environment:
          - POSTGRES_DB=nextcloud
          - POSTGRES_USER=nextcloud
          - POSTGRES_PASSWORD=nextcloud
    
      app:
        image: nextcloud
        restart: always
        ports:
          - 8080:80
        volumes:
          - nextcloud:/var/www/html
        environment:
          - POSTGRES_HOST=db
          - POSTGRES_DB=nextcloud
          - POSTGRES_USER=nextcloud
          - POSTGRES_PASSWORD=nextcloud
        depends_on:
          - db
    
      cron:
        image: nextcloud
        restart: always
        volumes:
          - nextcloud:/var/www/html
        entrypoint: /cron.sh
        depends_on:
          - db
    
    volumes:
      db:
      nextcloud:

    2.1 说明

    • 数据库服务 (db): 使用 PostgreSQL 作为 Nextcloud 的数据库存储。
    • Nextcloud 应用 (app): 主要的 Nextcloud 服务,映射端口 8080。
    • 定时任务 (cron): 运行 Nextcloud 的定期任务,如清理临时文件、维护数据库等。
    • 数据卷 (volumes): db 用于存储数据库数据,nextcloud 用于存储 Nextcloud 相关文件。

    3. 启动 Nextcloud

    使用 docker compose 命令启动 Nextcloud 容器:

    docker compose up -d

    4. 访问 Nextcloud

    在浏览器中打开以下地址访问 Nextcloud 界面:

    http://<服务器IP>:8080

    首次访问时,需要创建管理员账号并完成初始化。

  • Docker安装Stirling-PDF

    Stirling-PDF 是一款基于 Docker 容器的开源 PDF 处理工具,专为OCR设计,能够将扫描的 PDF 文件中的图像或文字转换为可编辑的文本。通过集成 Tesseract OCR 引擎,Stirling-PDF 使得用户能够轻松提取 PDF 文件中的文字,无论是扫描文档、图像还是其他类型的图文混合内容。

    该工具提供了一个简洁的 Web 界面,用户可以上传 PDF 文件进行批量处理、OCR 识别和文本提取。它支持多语言识别,适用于不同语言的 OCR 数据包,能够帮助用户处理多种语言的文档。

    1. 创建 stirling-pdf 目录并进入

    首先,我们需要在你的服务器上创建一个新的目录来存放相关文件,并进入该目录。

    mkdir stirling-pdf && cd stirling-pdf

    2. 下载 Tesseract OCR 库

    Stirling-PDF 使用 Tesseract OCR 库进行文字识别。因此,我们需要下载其相关的语言数据。

    git clone https://github.com/tesseract-ocr/tessdata.git

    3. 创建 docker-compose.yml 文件

    创建 docker-compose.yml 文件,以便使用 Docker Compose 部署 Stirling-PDF 服务。

    在 stirling-pdf 目录下,创建并编辑 docker-compose.yml 文件:

    services:
      stirling-pdf:
        restart: always
        image: frooodle/s-pdf:latest
        ports:
          - '8080:8080'  # 映射容器内的 8080 端口到宿主机的 8080 端口
        volumes:
          - ./tessdata:/usr/share/tessdata
          - ./extraConfigs:/configs
          - ./customFiles:/customFiles/
          - ./logs:/logs/
        environment:
          - DOCKER_ENABLE_SECURITY=false
          - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
          - LANGS=en_GB

    4. 启动 Stirling-PDF

    创建完 docker-compose.yml 文件后,可以使用以下命令启动 Stirling-PDF 服务:

    docker compose up -d

    该命令会自动下载所需的 Docker 镜像并启动容器。启动完成后,Stirling-PDF 服务将开始运行。

    5. 使用浏览器访问 Stirling-PDF

    启动成功后,你可以在浏览器中通过以下地址访问 Stirling-PDF:

    http://<IP>:8080
    • 替换 <IP> 为你的服务器的 IP 地址,你就可以在浏览器中访问并使用 Stirling-PDF 进行 PDF 文件的处理了。
  • Debian 12 部署 HIDS Wazuh 指南

    Wazuh 是一款 开源的 SIEM(安全信息和事件管理) 及 HIDS(主机入侵检测系统) 解决方案,能够实时监控系统日志、检测安全威胁、执行合规性审计,并提供可视化安全分析。
    Wazuh可用于入侵检测、日志分析、文件完整性监控、恶意软件检测、漏洞扫描等场景。Wazuh 适用于企业安全运营中心(SOC)、服务器与终端安全、DevSecOps 以及合规性管理,帮助企业和个人提升 IT 环境的安全性。

    1. 单节点部署 Wazuh

    首先,克隆 Wazuh 官方 Docker 仓库,并切换到指定版本:

    git clone https://github.com/wazuh/wazuh-docker.git -b v4.11.1

    进入 单节点部署目录:

    cd wazuh-docker/single-node

    2. 配置 Wazuh

    Wazuh 由 管理器(Manager)、索引器(Indexer) 和 仪表板(Dashboard) 组成。

    2.1 调整内核参数

    在主机(Linux)上,提升 vm.max_map_count 以支持 Wazuh 索引器(需要 root 权限):

    sysctl -w vm.max_map_count=262144

    2.2 生成 SSL 证书

    运行以下命令,生成用于组件间通信的证书:

    docker compose -f generate-indexer-certs.yml run --rm generator

    2.3 启动 Wazuh

    完成配置后,启动 Wazuh 服务:

    docker compose up -d

    2.4 访问 Wazuh 仪表板

    部署完成后,在浏览器中访问:

    https://<Wazuh_IP>

    默认的登录凭据为:

    • 用户名:admin
    • 密码:SecretPassword

    3. 添加 Wazuh Agent

    要将受监控的主机接入 Wazuh,请在 Web 仪表板中进行操作:

    在 Wazuh 仪表板中添加 Agent

    1. 登录 Wazuh 仪表板。
    2. 导航到 HOME — OVERVIEW — Deploy new agent。
    3. 选择要监控的操作系统。
    4. 输入要监控的服务器地址、Agent 名称和分组。
    5. 复制生成的 Agent 安装命令,并粘贴到要监控的主机中执行。

    验证 Agent 连接
    返回到 HOME — OVERVIEW 页面,您应该能够看到新添加的 Agent。

  • 使用 GoAccess 分析 Web 日志

    GoAccess 是一款轻量级、快速的 Web 日志分析工具,支持终端交互式查看和 HTML 报表生成。

    1. 安装 GoAccess

    1.1 安装 GoAccess

    apt install -y goaccess

    1.2 验证安装是否成功

    goaccess --version

    如果安装成功,你会看到类似 GoAccess - 1.x.x 的输出。

    2. 运行 GoAccess 进行日志分析

    2.1 在终端查看日志统计

    goaccess /var/log/nginx/access.log --log-format=COMBINED

    终端界面显示的内容包括:

    • 此命令将在终端中显示详细的日志统计信息,包括访客 IP、页面访问量、HTTP 状态码等。
    • 使用 Tab 键可以在不同的统计视图之间切换。

    3. 生成 HTML 报表

    goaccess /var/log/nginx/access.log --log-format=COMBINED -o /var/www/html/report.html
    • 此命令将生成一个静态的 HTML 报告,方便在浏览器中查看。

    3.1 让 GoAccess 实时更新 HTML 报表

    goaccess /var/log/nginx/access.log --log-format=COMBINED -o /var/www/html/report.html --real-time-html
    • 添加 --real-time-html 参数,使报告能够自动刷新,实时显示最新的日志分析结果。

    4. 其他日志格式支持

    4.1 解析 JSON 日志格式

    goaccess /var/log/nginx/access.log --log-format=JSON
    • 直接解析 JSON 格式的日志。

    4.2 解析自定义日志格式

    如果 Nginx 日志格式是:

    192.168.1.1 - - [19/Mar/2025:14:30:00 +0000] "GET /index.html HTTP/1.1" 200 512 "-" "Mozilla/5.0"

    使用:

    goaccess /var/log/nginx/access.log --log-format='%h %^ %^ [%d:%t %^] "%r" %s %b "%R" "%u"' --date-format='%d/%b/%Y' --time-format='%H:%M:%S'
    • 使用 --log-format、--date-format 和 --time-format 参数,可以解析自定义的日志格式。
  • 使用 SSH 端口转发访问 Docker Hub 拉取镜像

    1. 原理解析

    SSH 端口转发(Port Forwarding)是一种将本地端口流量通过 SSH 连接重定向到远程服务器的方式。在本方案中,我们将本地端口映射到 Docker Hub 服务器(registry-1.docker.io),让本地 Docker 以为它正在直接访问 Docker Hub。

    示意图:

    [本地 Docker 客户端] → [SSH 隧道] → [远程服务器] → [Docker Hub]

    这样,本地 Docker 发送的请求会通过 SSH 隧道访问 Docker Hub 并返回数据。


    2. 使用条件

    • 一台可访问 Docker Hub 的服务器
    • 服务器上安装了 SSH
    • 本地设备(Windows/Linux/macOS)可通过 SSH 连接到服务器

    3. 配置 SSH 端口转发

    3.1 在本地终端运行 SSH 端口转发

    ssh -N -L 5000:registry-1.docker.io:443 user@your-server-ip
    • -N:不执行远程命令,仅进行端口转发
    • -L 5000:registry-1.docker.io:443:将本地 5000 端口映射到远程 registry-1.docker.io 的 443 端口
    • user@your-server-ip:远程服务器的 SSH 账户

    保持这个 SSH 连接不关闭,否则端口转发会失效。


    4. 配置 Docker 访问代理

    4.1 在 daemon.json 中修改 Docker 配置

    编辑 Docker 的配置文件:

    nano /etc/docker/daemon.json

    添加以下内容:

    {
      "proxies": {
        "default": "http://127.0.0.1:5000"
      }
    }

    保存后,重启 Docker

    systemctl restart docker

    5. 测试 Docker 是否可以正常拉取

    执行拉取测试:

    docker pull ubuntu

    如果拉取成功,说明 SSH 端口转发生效。

  • Debian12 安装Dify大语言模型(LLM) 应用开发平台

    Dify 是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

    Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

    1. 安装 Docker 和 Docker Compose

    在服务器上运行以下命令安装 Docker:

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

    2. 安装 Dify

    2.1 克隆 Dify 源代码至本地环境

    git clone https://github.com/langgenius/dify.git --branch 1.0.1

    2.2 启动 Dify

    进入 Dify 源代码的 Docker 目录,并执行以下步骤:

    # 进入 Dify 源代码的 Docker 目录
    cd dify/docker
    
    # 复制环境配置文件
    cp .env.example .env
    
    # 启动 Docker 容器
    docker compose up -d
    
    # 最后检查是否所有容器都正常运行
    docker compose ps

    2.3 访问 Dify 进行安装

    在浏览器中访问以下地址,完成安装流程:

    http://your_server_ip/install

    3. 在 Dify 中接入模型

    在 Dify 控制面板中,进入 设置 > 模型供应商,然后点击 接入模型。
    按照界面指引,输入模型供应商相关 API 信息,并完成模型的接入配置。