您的足迹: 0基础搭建misskey

0基础搭建Misskey教程

写在前面

1. 为什么选择Misskey?

  • 当然是因为可爱,毕竟颜值第一嘛(●'◡'●)

2. 针对人群:

  • 没有编程基础
  • 不懂网络技术

3. 可能产生的花费:

  • 域名购买及续费——$5~20每年
  • VPS购买及续费——$5~10每月

4. 会有后续维护成本,包括但不限于:

  • 开通邮箱服务
  • 扩展储存
  • 进一步学习编程知识、网络技术等

购买域名

支付方式

  • 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信

域名选购

注册域名

  • 本文以Namesilo为例,请根据自己的需求和喜好选择域名注册商
  1. 访问Namesilo主页
  2. 注册账户
    这项不具体演示,按照要求填写信息就可以
  3. 搜索你想好的域名
    记得起个好记有特色的名字,不然以后记不住自己站点的域名可不好办
  4. 点击Add将选好的域名加入购物车
    注意:
    • 查看一下续费价格,有些域名第一年很便宜,但是续费会比较贵
  5. 付款购买
    注意:Namesilo是附赠WHOIS的,请选WHOIS privacy保护你的隐私
    namesilo购物车.jpg
  6. 进入Domain Manager管理域名

    选中你的域名,点击Change Nameservice
    把原来的nameservice删除换成之后我们会使用的DNS解析服务商Cloudflare的
    • dale.ns.cloudflare.com
    • fish.ns.cloudflare.com

购买VPS

支付方式

  • 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信

选择供应商

创建实例

  1. 选择实例位置:日本或新加坡
  2. 选择实例映像:
    • 平台:Linux/Unix
    • 蓝图:仅限操作系统:Debian10或Ubuntu20
  3. 选择实例计划:$5或$10的计划

SSH登录

创建静态IP

防火墙设置

  • 选中实例
  • 选择联网
  • 打开防火墙443和ping端口

DNS解析

  1. 选择DNS解析服务商
    • 通常域名注册商也提供DNS解析服务
    • 本文选择Cloudflare的服务
  2. 添加A记录
    点击DNS
    • 想要知道是否解析成功可以进行以下操作:
      • 在windows操作系统上运行cmd命令:win+R,在窗口输入cmd
      • 输入命令:ping #你的域名
      • 如果正确解析,则会回复带有服务器IP地址的相关信息
        如果失败请再等一段时间
  3. 创建SSL证书
    • 点击SSL/TLS,点击Origin Service
    • Create Certificate
      填上你的域名

      将两段密码分别复制到记事本,保存
      注意:后缀.pem和.key不要搞错
  4. 将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部署

官方指南
喵窝站长的搭建过程

  1. 环境配置
    • 必要依赖
      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
  2. 下载Misskey
    • 克隆Misskey
      git clone -b master git://github.com/syuilo/misskey.git
    • 打开misskey文件夹
      cd misskey
    • 检查是否最新版本
      git checkout master
  3. 配置Misskey
    • 可以按照如下方式创建配置文件
      cd .config
      cp example.yml default.yml
      cp docker_example.env docker.env
      • 编辑docker.env
        nano docker.env


      • 编辑default.yml
        修改打勾的地方,注意db的用户名和密码是上一步中docker.env文件中设置的,请保持一致
        nano default.yml


        default.yml.jpg

  4. 配置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: 
  5. 构建Misskey
    • 使用如下方式构建Misskey
      docker-compose build
    • 失败的话,请尝试如下命令,再执行上一条命令
      service docker start
  6. 初始化数据库
    docker-compose run --rm web yarn run init
  7. 正常启动
    docker-compose up -d
  8. 反代配置
    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;
    }
}
  1. 执行控制台命令
    • 执行此项命令前,先去你的网站注册一个用户
      docker-compose run --rm web node built/tools/mark-admin @example    #example换成你的用户名