Docker 配置

个人常用项目的Docker的Compose配置方案 一、NapCat 接入QQ消息框架 # docker-compose.yml services: napcat: environment: - NAPCAT_UID=0 - NAPCAT_GID=0 po

个人常用项目的Docker的Compose配置方案

一、NapCat

接入QQ消息框架

# docker-compose.yml
services:
  napcat:
    environment:
      - NAPCAT_UID=0
      - NAPCAT_GID=0
    ports:
      - 3000:3000
      - 3001:3001
      - 6099:6099
    container_name: napcat
    network_mode: bridge
    restart: always
    image: mlikiowa/napcat-docker:latest
    volumes:
      - ./napcat/config:/app/napcat/config
      - ./ntqq:/app/.config/QQ
      - /volume1/docker/app:/app/sharedFolder

二、AsrtBot

AI智能体

version: '3.8'
​
# 当接入 QQ NapCat 时,请使用这个 compose 文件一键部署: https://github.com/NapNeko/NapCat-Docker/blob/main/compose/astrbot.yml
​
services:
  astrbot:
    image: soulter/astrbot:latest
    container_name: astrbot
    restart: always
    ports: # mappings description: https://github.com/AstrBotDevs/AstrBot/issues/497
      - "6185:6185" # 必选,AstrBot WebUI 端口
      - "6199:6199" # 可选, QQ 个人号 WebSocket 端口
      # - "6195:6195" # 可选, 企业微信 Webhook 端口
      # - "6196:6196" # 可选, QQ 官方接口 Webhook 端口
      - "8899:8899" # 表情包偷取插件
      - "1451:1451" # 读空气插件
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./data:/AstrBot/data
      # - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /volume1/docker/app:/app/sharedFolder

三、AsrtBot-t2i

给AsrtBot使用的一个渲染HTML为图片的服务

version: "3.9"
​
services:
  astrbot-t2i:
    image: soulter/astrbot-t2i-service:latest
    container_name: astrbot-t2i
    restart: always
    ports:
      - "8999:8999"
    stdin_open: true
    tty: true

四、Halo

个人建站

services:
  halo:
    image: registry.fit2cloud.com/halo/halo-pro:2.25.4
    container_name: halo
    restart: on-failure:3
​
    depends_on:
      halodb:
        condition: service_healthy
​
    networks:
      - halo_network
​
    volumes:
      - ./halo2:/root/.halo2
​
    ports:
      - "8090:8090"
​
    healthcheck:
      test:
        - CMD
        - curl
        - -f
        - http://localhost:8090/actuator/health/readiness
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 60s
​
    environment:
      JVM_OPTS: "-Xmx256m -Xms256m"
      TZ: "Asia/Shanghai"
​
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb:5432/halo
      - --spring.r2dbc.username=halo
      - --spring.r2dbc.password=openpostgresqlqsc
      - --spring.sql.init.platform=postgresql
      - --halo.external-url=http://服务器IP:8090/
​
  halodb:
    image: postgres:15.4
    container_name: halodb
    restart: on-failure:3
​
    networks:
      - halo_network
​
    volumes:
      - ./db:/var/lib/postgresql/data
​
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U halo -d halo
      interval: 10s
      timeout: 5s
      retries: 10
      start_period: 20s
​
    environment:
      POSTGRES_PASSWORD: "openpostgresqlqsc"
      POSTGRES_USER: "halo"
      POSTGRES_DB: "halo"
      PGUSER: "halo"
      TZ: "Asia/Shanghai"
​
networks:
  halo_network:
    driver: bridge

五、FRP客户端

frp内网穿透客户端

services:
    frpc:
        container_name: frpc
        image: ghcr.io/fatedier/frpc:v0.69.1
        network_mode: host
        restart: unless-stopped
        volumes:
            - ./data/frpc.toml:/etc/frp/frpc.toml
            - /etc/localtime:/etc/localtime:ro
        command: ["-c", "/etc/frp/frpc.toml"]

frpc.toml 文件内容

serverAddr = "frp服务的IP地址"
serverPort = 7000  
​
auth.method = "token"
auth.token = "服务端配置密钥"
​
[[proxies]]
name = "www"
type = "tcp"
localIP = "192.168.1.5"
localPort = 8090
remotePort = 5203
​
[[proxies]]
name = "asrtbot"
type = "tcp"
localIP = "192.168.1.5"
localPort = 6185
remotePort = 5300
​
[[proxies]]
name = "napcat"
type = "tcp"
localIP = "192.168.1.5"
localPort = 6099
remotePort = 5301

六、Gitea

私人代码管理平台

services:
  gitea:
    image: docker.gitea.com/gitea:1.26.4
    container_name: gitea
    restart: unless-stopped
​
    environment:
      USER_UID: "1000"
      USER_GID: "1000"
      TZ: "Asia/Shanghai"
​
      # SQLite
      GITEA__database__DB_TYPE: "sqlite3"
      GITEA__database__PATH: "/data/gitea/gitea.db"
​
      # 平台名称
      GITEA__DEFAULT__APP_NAME: "私人代码管理平台"
​
      # Gitea 容器内部仍然使用 HTTP
      GITEA__server__PROTOCOL: "http"
      GITEA__server__HTTP_PORT: "3000"
​
      # 对外统一访问域名
      GITEA__server__DOMAIN: "git.fxdyz.com"
      GITEA__server__ROOT_URL: "https://git.fxdyz.com/"
​
      # SSH,可选
      GITEA__server__SSH_DOMAIN: "git.fxdyz.com"
      GITEA__server__SSH_PORT: "2222"
​
      # Git LFS
      GITEA__server__LFS_START_SERVER: "true"
​
      # 安全设置
      GITEA__service__DISABLE_REGISTRATION: "true"
      GITEA__service__REQUIRE_SIGNIN_VIEW: "true"
​
    volumes:
      - ./data:/data
​
    ports:
      # 保留局域网直接访问入口
      - "2000:3000"
​
      # SSH,可选
      - "2222:22"

七、思源笔记

个人知识管理平台

services:
  siyuan:
    image: b3log/siyuan:latest
    container_name: siyuan
    restart: unless-stopped

    command:
      - serve
      - --workspace=/siyuan/workspace/
      - --accessAuthCode=123456  #密码

    environment:
      TZ: Asia/Shanghai
      PUID: "1000"		
      PGID: "10"

    ports:
      - "6806:6806"
      - "6808:6808"
    volumes:
      - ./workspace:/siyuan/workspace

免费登录Telegram方法 2026-06-18
远程桌面允许空密码访问 2026-05-26

评论区