项目背景
最近想搭建一套开源的微博客系统,刚好发现了MissKey,这是一款可以自己搭建服务器、界面高度自定义,并且能跨站点互通的开源分布式微博社交软件,再合适不过
如何部署MissKey
话不多说,直接上手进行部署
root@ubuntu01:mkdir -p /data/misskey
root@ubuntu01:cd /data/misskey
root@ubuntu01:/data/misskey# mkdir -p .config files db redis
root@ubuntu01:/data/misskey# vim .config/docker.env输入以下内容
POSTGRES_USER=misskey
POSTGRES_PASSWORD=设置你的数据库强密码
POSTGRES_DB=misskeyroot@ubuntu01:/data/misskey# vim .config/default.yml输入以下内容
# 站点完整访问地址,一旦正式使用绝对不可修改!
url: https://你的域名.com
# 容器内监听端口,无需改动
port: 3000
# 数据库配置(密码与 docker.env 保持完全一致)
db:
host: db
port: 5432
db: misskey
user: misskey
pass: 你的数据库强密码
# Redis 配置,无需改动
redis:
host: redis
port: 6379
# 单文件上传上限(默认 250MB)
maxFileSize: 262144000
# 主键生成方式,推荐 aidx
id: aidx编写compose文件
root@ubuntu01:/data/misskey# vim .config/default.ymlversion: "3.8"
services:
# Misskey 主服务
web:
image: misskey/misskey:latest
restart: always
ports:
- "3500:3000" # 宿主机端口:容器端口,可修改宿主机端口
volumes:
- ./files:/misskey/files # 用户上传文件
- ./.config:/misskey/.config:ro # 配置文件(只读挂载)
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
# PostgreSQL 数据库
db:
image: postgres:15-alpine
restart: always
env_file:
- ./.config/docker.env
volumes:
- ./db:/var/lib/postgresql/data # 数据库数据持久化
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 5s
retries: 5
# Redis 缓存
redis:
image: redis:7-alpine
restart: always
command: redis-server --appendonly yes # 开启持久化
volumes:
- ./redis:/data # Redis 数据持久化
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5拉取镜像(misskey镜像很大,如果拉取失败可以私信博主哦)
root@ubuntu01:/home/guzman# cd /data/misskey/
root@ubuntu01:/data/misskey# docker compose pull
WARN[0000] /data/misskey/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] pull 3/3
✔ Image redis:7-alpine Pulled 1.0s
✔ Image misskey/misskey:latest Pulled 11.0s
✔ Image postgres:15-alpine Pulled 初始化数据库
root@ubuntu01:/data/misskey# docker compose run --rm web pnpm run init
WARN[0000] /data/misskey/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] 3/3t 3/33
✔ Network misskey_default Created 0.1s
✔ Container misskey-redis-1 Started 0.4s
✔ Container misskey-db-1 Started 0.4s
Container misskey-db-1 Waiting
Container misskey-redis-1 Waiting
Container misskey-db-1 Healthy
Container misskey-redis-1 Healthy
Container misskey-web-run-74d09dcdca22 Creating
Container misskey-web-run-74d09dcdca22 Created
Migration NoteIdIndexForPinAndFavorite1780059833698 has been executed successfully.启动容器
root@ubuntu01:/data/misskey# docker compose up -d
WARN[0000] /data/misskey/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] up 3/3
✔ Container misskey-redis-1 Healthy 0.6s
✔ Container misskey-db-1 Healthy 0.6s
✔ Container misskey-web-1 Started 0.8s
root@ubuntu01:/data/misskey#
root@ubuntu01:/data/misskey# docker compose ps
WARN[0000] /data/misskey/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
misskey-db-1 postgres:15-alpine "docker-entrypoint.s…" db 50 seconds ago Up 50 seconds (healthy) 5432/tcp
misskey-redis-1 redis:7-alpine "docker-entrypoint.s…" redis 50 seconds ago Up 50 seconds (healthy) 6379/tcp
misskey-web-1 misskey/misskey:latest "/usr/bin/tini -- pn…" web 10 seconds ago Up 9 seconds (health: starting) 0.0.0.0:3500->3000/tcp, [::]:3500->3000/tcp
root@ubuntu01:/data/misskey#初始化配置
第一个注册用户会成为管理员,至于Nginx代理及域名配置请参考前面章节,这里不再赘述, 直接来看成果吧~
https://misskey.zxit.to
目前已经对外开放,链接入口同步挂载到博客首页,想记录属于自己的小时光又不想发到朋友圈,小红书,那就来体验吧,欢迎大家~~
https://zxit.top
评论区