个人常用项目的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