差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
0基础搭建misskey [2021/01/23 09:09] – [购买域名] ooorange0基础搭建misskey [2021/01/23 13:04] (当前版本) – [购买VPS] ooorange
行 14: 行 14:
     * 进一步学习编程知识、网络技术等     * 进一步学习编程知识、网络技术等
 ====购买域名==== ====购买域名====
-  - 支付方式+===支付方式===
     * 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信     * 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信
-  - 域名选购\\+===域名选购===
       * 域名的选择和注意事项可具体参考以下博文及讨论:       * 域名的选择和注意事项可具体参考以下博文及讨论:
         * [[https://blog.bgme.me/posts/precautions-for-registering-domains/|注册域名时的注意事项 - 影子屋]]         * [[https://blog.bgme.me/posts/precautions-for-registering-domains/|注册域名时的注意事项 - 影子屋]]
         * [[https://o3o.ca/@salt/104303577562930405|有关建站前域名选择的建议 Mastodon 讨论串]]         * [[https://o3o.ca/@salt/104303577562930405|有关建站前域名选择的建议 Mastodon 讨论串]]
-  - 注册域名+===注册域名===
       * 本文以Namesilo为例,请根据自己的需求和喜好选择域名注册商\\       * 本文以Namesilo为例,请根据自己的需求和喜好选择域名注册商\\
       - 访问[[https://www.namesilo.com|Namesilo]]主页       - 访问[[https://www.namesilo.com|Namesilo]]主页
行 27: 行 27:
       - 点击Add将选好的域名加入购物车\\ 注意:       - 点击Add将选好的域名加入购物车\\ 注意:
         * 查看一下续费价格,有些域名第一年很便宜,但是续费会比较贵         * 查看一下续费价格,有些域名第一年很便宜,但是续费会比较贵
-      - 付款购买\\ 注意:Namesilo是附赠WHOIS的,请选WHOIS privacy保护你的隐私\\ {{wiki:misskey建站:namesilo购物车.jpg?}} +      - 付款购买\\ 注意:Namesilo是附赠WHOIS的,请选WHOIS privacy保护你的隐私\\ {{wiki:misskey建站:namesilo购物车.jpg}} 
-      - 进入Domain Manager管理域名 +      - 进入Domain Manager管理域名\\ {{wiki:misskey建站:domain_manager.png}}\\ 选中你的域名,点击Change Nameservice\\ 把原来的nameservice删除换成之后我们会使用的DNS解析服务商Cloudflare的\\ 
-      - +         * dale.ns.cloudflare.com 
 +         * fish.ns.cloudflare.com 
 +====购买VPS==== 
 +===支付方式=== 
 +     * 需要可以支付的账户,包括并不限于:Visa,Mastercard,Paypal,支付宝,微信 
 +===选择供应商=== 
 +    * 可以参考[[https://www.10besty.com/best-vps-hosting-services/|最好的国外VPS推荐]] 
 +    * 本文以Amazon Lightsail为例 
 +    * 访问[[https://aws.amazon.com/cn|AWS云服务主页]],注册并登录\\ 注意选择root user\\ 点击所有服务,找到Lightsail\\ {{wiki:misskey建站:aws_signin.png}}\\ {{wiki:misskey建站:lightsail.png}} 
 +===创建实例=== 
 +    - 选择实例位置:日本或新加坡 
 +    - 选择实例映像: 
 +        * 平台:Linux/Unix 
 +        * 蓝图:仅限操作系统:Debian10或Ubuntu20 
 +    - 选择实例计划:$5或$10的计划 
 +===SSH登录=== 
 +    * 参见[[https://lightsail.aws.amazon.com/ls/docs/zh_cn/articles/lightsail-how-to-set-up-putty-to-connect-using-ssh|下载 PuTTY 并将其设置为使用中的SSH 进行连接Amazon Lightsail]] 
 +===创建静态IP=== 
 +    * 参见[[https://lightsail.aws.amazon.com/ls/docs/zh_cn/articles/lightsail-create-static-ip|Create a static IP and attach it to an instance in Amazon Lightsail]] 
 +===防火墙设置=== 
 +    * 选中实例 
 +    * 选择联网 
 +    * 打开防火墙443和ping端口\\  
 + {{wiki:misskey建站:firewall.png}}  
 +==== DNS解析==== 
 +  - 选择DNS解析服务商 
 +     * 通常域名注册商也提供DNS解析服务 
 +     * 本文选择Cloudflare的服务 
 +  - 添加A记录\\ 点击DNS\\ {{wiki:misskey建站:dns.png}} 
 +      * 想要知道是否解析成功可以进行以下操作: 
 +             * 在windows操作系统上运行cmd命令:win+R,在窗口输入cmd 
 +             * 输入命令:ping #你的域名 
 +             * 如果正确解析,则会回复带有服务器IP地址的相关信息\\ 如果失败请再等一段时间 
 +  创建SSL证书 
 +     * 点击SSL/TLS,点击Origin Service 
 +     * Create Certificate\\ 填上你的域名\\ {{wiki:misskey建站:ssl.png}}\\ 将两段密码分别复制到记事本,保存\\ 注意:后缀.pem和.key不要搞错 
 +  - 将SSL证书上传到服务器 
 +       * 通过PuTTY登录VPS,按顺序输入以下命令<code>sudo passwd root #设置root用户密码,务必记住密码 
 +su root #换成root用户登录,输入刚刚设置的密码 
 +mkdir /etc/nginx/ssl/misskey #创建一个新目录 
 +nano /etc/nginx/ssl/misskey/sever_name.pem #sever_name改成你的域名 </code> 
 +          * 使用*记事本*打开.pem文件,全选复制,回到PuTTY右击 
 +          * ctrl+x退出,y,enter保存 
 +          * 将.key文件也复制到/etc/nginx/ssl/misskey目录下 
 +====Misskey使用Docker部署==== 
 +[[https://github.com/syuilo/misskey/blob/develop/docs/docker.zh.md|官方指南]]\\ [[https://candinya.com/posts/play-with-misskey/|喵窝站长的搭建过程]] 
 +  - 环境配置 
 +       * 必要依赖<code>apt install git curl nginx -y</code> 
 +       * 安装Docker\\ <code>bash <(curl -L -s https://get.docker.com)</code> 
 +       * 安装Docker-compose\\ <code>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</code> 
 +  - 下载Misskey 
 +       * 克隆Misskey\\ <code>git clone -b master git://github.com/syuilo/misskey.git</code> 
 +       * 打开misskey文件夹\\ <code>cd misskey</code> 
 +       * 检查是否最新版本\\ <code>git checkout master</code> 
 +  - 配置Misskey 
 +     * 可以按照如下方式创建配置文件\\ <code>cd .config 
 +cp example.yml default.yml 
 +cp docker_example.env docker.env</code> 
 +      * 编辑docker.env\\ <code>nano docker.env</code>\\ {{wiki:misskey建站:docker.env.png}} 
 +      * 编辑default.yml\\ 修改打勾的地方,注意db的用户名和密码是上一步中docker.env文件中设置的,请保持一致\\ <code>nano default.yml</code>\\ {{wiki:misskey建站:default.yml.jpg}} 
 +  - 配置Docker 
 +      * 回到misskey根目录<code>cd ~/misskey</code> 
 +      * 编辑docker-compose.yml,根据下面的代码适当修改\\ <code>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: </code> 
 +  - 构建Misskey 
 +      * 使用如下方式构建Misskey\\ <code>docker-compose build</code> 
 +      * 失败的话,请尝试如下命令,再执行上一条命令\\ <code>service docker start</code> 
 +  - 初始化数据库\\ <code>docker-compose run --rm web yarn run init</code> 
 +      * 如果失败,可能是内存不够,请参考这篇教程{{https://cloud.tencent.com/developer/article/1156834|Linux解决内存不足-添加SWAP交换分区}} 
 +  - 正常启动\\ <code>docker-compose up -d</code> 
 +  - 反代配置\\ <code>nano /etc/nginx/conf.d/misskey.conf</code>\\ 根据以下代码做适当修改\\  
 +<code># 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;
 +    }
 +}</code>
 +  - 执行控制台命令
 +      * 执行此项命令前,先去你的网站注册一个用户\\ <code>docker-compose run --rm web node built/tools/mark-admin @example    #example换成你的用户名</code>