531 字
1 分钟
使用Docker部署Misskey实例
前言
Misskey 是一个开源的、去中心化的社交网络平台,它提供了丰富的功能和高度的自定义性,让用户能够自由地构建和管理自己的社交空间。与传统社交媒体不同,Misskey 支持联邦宇宙(Fediverse)协议,允许不同实例之间的用户相互交流,同时保持数据的控制权和隐私性。
开始部署你的 Misskey 实例
拉取代码
git clone -b master https://github.com/misskey-dev/misskey.gitcd misskey复制配置文件示例
cp .config/docker_example.yml .config/default.ymlcp .config/docker_example.env .config/docker.envcp ./compose_example.yml ./compose.yml编辑 default.yml
default.yml 是 Misskey 的核心配置文件。以下列出需要关注的关键配置项:
url: https://example.tld/ # 必改:替换为你的实际域名
port: 3000 # Misskey 监听端口,通常无需修改
db: host: db # 数据库主机名 port: 5432 # 数据库端口号 db: misskey # 数据库名称 user: example-misskey-user # 数据库用户名 pass: example-misskey-pass # 数据库密码
dbReplications: false # 数据库复制,建议关闭
redis: host: redis # Redis 主机名 port: 6379 # Redis 端口号
id: 'aidx' # ID 生成方式,启动后请勿更改
fulltextSearch: provider: sqlLike # 全文搜索,可选 sqlLike / sqlPgroonga / meilisearch
proxyBypassHosts: # 反向代理绕过主机名,用于访问外部服务 - api.deepl.com # DeepL API 主机名 - api-free.deepl.com # DeepL API 主机名,用于免费翻译 - www.recaptcha.net # reCAPTCHA 主机名,用于验证码 - hcaptcha.com # hCaptcha 主机名,用于验证码 - challenges.cloudflare.com # Cloudflare 主机名,用于验证码注意事项:
url和id这两项一旦启动实例后不可更改,请务必在首次启动前确认正确。- 更多可选配置(如 Sentry 错误追踪、Meilisearch、Redis 分离等)可参考 Misskey 官方文档,此处不一一展开。
编辑 docker.env
docker.env 包含 PostgreSQL 的连接凭据,必须与 default.yml 中的 db 配置保持一致:
POSTGRES_PASSWORD=example-misskey-passPOSTGRES_USER=example-misskey-userPOSTGRES_DB=misskeyDATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}"如果修改了
default.yml中的数据库用户名、密码或数据库名,请同步修改此处,否则 Misskey 将无法连接数据库。
编辑compose.yml
compose.yml文件定义了 Docker 容器的配置:
services: web: build: . restart: always links: - db - redis# - mcaptcha# - meilisearch depends_on: db: condition: service_healthy redis: condition: service_healthy ports: - "3000:3000" # 映射主机端口到容器端口 networks: - internal_network - external_network # env_file: # - .config/docker.env volumes: - ./files:/misskey/files - ./.config:/misskey/.config:ro
redis: restart: always image: redis:7-alpine networks: - internal_network volumes: - ./redis:/data healthcheck: test: "redis-cli ping" interval: 5s retries: 20
db: restart: always image: postgres:18-alpine networks: - internal_network env_file: - .config/docker.env volumes: - ./db:/var/lib/postgresql healthcheck: test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB" interval: 5s retries: 20
# mcaptcha:# restart: always# image: mcaptcha/mcaptcha:latest# networks:# internal_network:# external_network:# aliases:# - localhost# ports:# - 7493:7493# env_file:# - .config/docker.env# environment:# PORT: 7493# MCAPTCHA_redis_URL: "redis://mcaptcha_redis/"# depends_on:# db:# condition: service_healthy# mcaptcha_redis:# condition: service_healthy## mcaptcha_redis:# image: mcaptcha/cache:latest# networks:# - internal_network# healthcheck:# test: "redis-cli ping"# interval: 5s# retries: 20
# meilisearch:# restart: always# image: getmeili/meilisearch:v1.3.4# environment:# - MEILI_NO_ANALYTICS=true# - MEILI_ENV=production# env_file:# - .config/meilisearch.env# networks:# - internal_network# volumes:# - ./meili_data:/meili_data
networks: internal_network: internal: true external_network:构建镜像与初始化数据库
使用以下命令进行Misskey的构建和数据库初始化。这可能需要一些时间。
docker compose build # 构建 Docker 镜像(首次较慢)docker compose run --rm web pnpm run init # 初始化数据库启动Misskey实例
完成构建和初始化后,使用以下命令启动Misskey容器:
docker compose up -d故障排除
INTERNAL_ERROR错误处理
访问实例时出现 Misskey Internal error occurred,通常是文件权限问题:
chmod -R 777 ./filesdocker compose restart web更新Misskey
当有新版本发布时,可以使用以下步骤更新Misskey实例:
git stash # 保存当前工作目录的更改git checkout master # 切换到master分支git pull # 拉取最新代码git submodule update --init # 更新子模块git stash pop # 恢复之前的更改docker compose build # 构建新镜像docker compose stop && docker compose up -d # 重启容器结语
通过本教程,你已经完成了 Misskey 实例的部署。日常维护中,定期执行更新命令并关注日志输出,可以确保实例的稳定运行。
如需进一步配置(如对象存储、邮件发送、防垃圾措施等),请参考 Misskey Hub 官方文档。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
使用Docker部署Misskey实例
https://blog.yuk1.uk/posts/misskey-docker/ 部分信息可能已经过时
相关文章 智能推荐
1
Windows下的ADB配置指南
Tutorial 详细介绍如何在Windows系统上配置ADB,包括下载SDK Platform-Tools、设置环境变量和验证配置
2
词频统计与Federation机制的实现
Tutorial Hadoop词频统计与Federation机制实现指南
3
拒绝技术造神,重识理性认知
Technology 在 AI 狂热的浪潮中,我们应当拨开喧嚣的迷雾,回归技术本质,警惕那些利用焦虑收割韭菜的"生意经"。
4
部署Hadoop完全分布式集群
Tutorial Hadoop 3.1.3完全分布式集群部署详细指南
5
Mizuki实现Giscus评论区
Tutorial 在Mizuki主题中实现Giscus评论区的教程