0基础搭建Misskey教程
写在前面
1. 为什么选择Misskey?
- 当然是因为可爱,毕竟颜值第一嘛(●'◡'●)
2. 针对人群:
- 没有编程基础
- 不懂网络技术
3. 可能产生的花费:
- 域名购买及续费——$5~20每年
- VPS购买及续费——$5~10每月
4. 会有后续维护成本,包括但不限于:
- 开通邮箱服务
- 扩展储存
- 进一步学习编程知识、网络技术等
购买域名
支付方式
- 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信
域名选购
- 域名的选择和注意事项可具体参考以下博文及讨论:
注册域名
- 本文以Namesilo为例,请根据自己的需求和喜好选择域名注册商
- 访问Namesilo主页
- 注册账户
这项不具体演示,按照要求填写信息就可以 - 搜索你想好的域名
记得起个好记有特色的名字,不然以后记不住自己站点的域名可不好办 - 点击Add将选好的域名加入购物车
注意:- 查看一下续费价格,有些域名第一年很便宜,但是续费会比较贵
-
- dale.ns.cloudflare.com
- fish.ns.cloudflare.com
购买VPS
支付方式
- 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信
选择供应商
- 可以参考最好的国外VPS推荐
- 本文以Amazon Lightsail为例
创建实例
- 选择实例位置:日本或新加坡
- 选择实例映像:
- 平台:Linux/Unix
- 蓝图:仅限操作系统:Debian10或Ubuntu20
- 选择实例计划:$5或$10的计划
SSH登录
创建静态IP
防火墙设置
DNS解析
- 选择DNS解析服务商
- 通常域名注册商也提供DNS解析服务
- 本文选择Cloudflare的服务
-
- 想要知道是否解析成功可以进行以下操作:
- 在windows操作系统上运行cmd命令:win+R,在窗口输入cmd
- 输入命令:ping #你的域名
- 如果正确解析,则会回复带有服务器IP地址的相关信息
如果失败请再等一段时间
- 创建SSL证书
- 点击SSL/TLS,点击Origin Service
- 将SSL证书上传到服务器
- 通过PuTTY登录VPS,按顺序输入以下命令
sudo passwd root #设置root用户密码,务必记住密码 su root #换成root用户登录,输入刚刚设置的密码 mkdir /etc/nginx/ssl/misskey #创建一个新目录 nano /etc/nginx/ssl/misskey/sever_name.pem #sever_name改成你的域名
- 使用*记事本*打开.pem文件,全选复制,回到PuTTY右击
- ctrl+x退出,y,enter保存
- 将.key文件也复制到/etc/nginx/ssl/misskey目录下
Misskey使用Docker部署
- 环境配置
- 必要依赖
apt install git curl nginx -y
- 安装Docker
bash <(curl -L -s https://get.docker.com)
- 安装Docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 下载Misskey
- 克隆Misskey
git clone -b master git://github.com/syuilo/misskey.git
- 打开misskey文件夹
cd misskey
- 检查是否最新版本
git checkout master
- 配置Misskey
- 可以按照如下方式创建配置文件
cd .config cp example.yml default.yml cp docker_example.env docker.env
- 配置Docker
- 回到misskey根目录
cd ~/misskey
- 编辑docker-compose.yml,根据下面的代码适当修改
version: "3" services: web: # build: . image: misskey/misskey:latest #自动更新 restart: always links: - db - redis # - es ports: - "127.0.0.1:3000:3000" networks: - internal_network - external_network volumes: - ./files:/misskey/files - ./.config:/misskey/.config #卷映射 redis: restart: always image: redis:latest networks: - internal_network volumes: - ./redis:/data db: restart: always image: postgres:12.2-alpine networks: - internal_network env_file: - .config/docker.env volumes: - ./db:/var/lib/postgresql/data # es: # restart: always # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 # environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # networks: # -internal_network # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data networks: internal_network: internal: ture external_network:
- 构建Misskey
- 使用如下方式构建Misskey
docker-compose build
- 失败的话,请尝试如下命令,再执行上一条命令
service docker start
- 初始化数据库
docker-compose run --rm web yarn run init
- 如果失败,可能是内存不够,请参考这篇教程Linux解决内存不足-添加SWAP交换分区
- 正常启动
docker-compose up -d
- 反代配置
nano /etc/nginx/conf.d/misskey.conf
根据以下代码做适当修改
# Sample nginx configuration for Misskey # # 1. Replace example.tld to your domain # 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/ # or copy to /etc/nginx/conf.d/ # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_tem$ server { listen 80; listen [::]:80; server_name f.jymuoyu.com; #你的域名 return 301 https://$host$request_uri; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name f.jymuoyu.com; #你的域名 ssl_session_cache shared:ssl_session_cache:10m; # To use Let's Encrypt certificate ssl_certificate /etc/v2ray/rss.jymuoyu.pem; #你的ssl证书存放路径 ssl_certificate_key /etc/v2ray/rss.jymuoyu.key; # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; # SSL protocol settings ssl_protocols TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SH$ ssl_prefer_server_ciphers on; # Change to your upload limit client_max_body_size 80m; #上传文件的最大限制 # Proxy to Node location / { proxy_pass http://127.0.0.1:3000; proxy_cache_bypass $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; proxy_http_version 1.1; proxy_redirect off; # For WebSocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # Cache settings proxy_cache cache1; proxy_cache_lock on; proxy_cache_use_stale updating; add_header X-Cache $upstream_cache_status; } }
- 执行控制台命令
- 执行此项命令前,先去你的网站注册一个用户
docker-compose run --rm web node built/tools/mark-admin @example #example换成你的用户名