Loading...
superuser's blog
登陆
search
menu
Misskey:一个日产开源SNS系统
check
评论:
2 条
remove_red_eye
浏览量:
3520
change_history
Tags:
学无止境
作者 :
superuser
date_range
日期 : 2018-11-27
好几个月没写文章了,这几天按照`lala大佬`的文章搭了个SNS系统,还是踩了几个坑,打算把搭建过程分享一下 [参考链接](https://lala.im/4291.html "参考链接"): `https://lala.im/4291.html` (需要过墙梯) [项目地址](https://github.com/syuilo/misskey "项目地址"):`https://github.com/syuilo/misskey` ## 项目简介 Misskey是一个基于Node.js的日产开源微博系统。 这套系统有两个非常亮眼的地方: 1. Misskey和Mastodon一样都是使用的Fediverse,所以Misskey可以与Mastodon等其他SNS平台互通,也就是说你可以跨平台交流。换句话说,Misskey也是一个“去中心化”的SNS平台。 2. Misskey的前端设计是真的太漂亮了,有兴趣可以去Misskey的官方实例注册个账号体验一下:  https://misskey.xyz/ ## 准备安装 首先你需要: 1. 一台内存**大于2GB**的VPS,内存小于2G就别折腾了。 2. 一个顶级域名已经解析到你的VPS的IP,这个程序必须要用域名,并且强制SSL。 ## 开始安装 系统:CentOS7 X64 首先更新下系统: `yum -y update` 然后装个epel源 `yum -y install epel-release` 接着是开发工具包 `yum -y groupinstall "Development Tools"` 然后是基本组件 `yum -y install wget git openssl-devel` Node.js也装一下 `curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -` `yum -y install nodejs` 还有Radis `yum -y install redis` 启动并设置Radis开机自启 `systemctl start redis` `systemctl enable redis` Misskey使用Mongodb,所以现在先新建一个源: `vim /etc/yum.repos.d/mongodb-org-3.6.repo` 写入: [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc 然后安装一下Mongodb `yum -y install mongodb-org` 启动Mongodb并设置开机启动: `systemctl enable mongod.service` `systemctl start mongod.service` 创建数据库: `mongo` `use misskey` `db.users.save( {dummy:"dummy"} )` `db.createUser( { user: "misskey", pwd: "
", roles: [ { role: "readWrite", db: "misskey" } ] } )` `exit` **注:password修改成一个你的高强度密码,确保数据安全。** **修改Redis密码,提高安全性** 参考链接:https://www.cnblogs.com/suanshun/p/7699084.html 现在拉取项目文件并进入项目目录: `git clone -b master` git://github.com/syuilo/misskey.git` `cd misskey` 检查最新版本: `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` 安装项目所需依赖: `npm install` 复制一份配置文件并编辑: `cp .config/example.yml .config/default.yml` `vi .config/default.yml` 配置文件如下  **其中url的地址必须是https;redis的pass默认不修改的话为null** 编辑好了之后安装node-gyp: `npm install -g node-gyp` 继续使用node-gyp安装项目所需依赖: `node-gyp configure` `node-gyp build` 开始构建: `NODE_ENV=production npm run build` 完成之后,新建一个系统服务: `vi /etc/systemd/system/misskey.service` 写入: [Unit] Description=Misskey daemon [Service] Type=simple User=root ExecStart=/usr/bin/npm start WorkingDirectory=/root/misskey TimeoutSec=60 StandardOutput=syslog StandardError=syslog SyslogIdentifier=misskey Restart=always Environment=NODE_ENV=production [Install] WantedBy=multi-user.target 现在我们就可以用systemd来启动Misskey了: `systemctl enable misskey` `systemctl start misskey` 现在我们关闭SELinux(防火墙规则请自行修改): `vi /etc/selinux/config` 将 **SELINUX** 改为 **disabled** `SELINUX=disabled` 保存退出后执行 `setenforce 0` 使用lnmp创建免费证书 `lnmp ssl add` 创建后的证书路径在 `/usr/local/nginx/conf/ssl/[域名]` 编辑站点的Nginx配置文件用于反向代理 `vim /usr/local/nginx/conf/vhost/[域名].conf` 写入: map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; listen 443 ssl http2; server_name [域名]; client_max_body_size 100m; client_body_buffer_size 2048k; if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } ssl_certificate /usr/local/nginx/conf/ssl/[域名]/fullchain.cer; ssl_certificate_key /usr/local/nginx/conf/ssl/[域名]/[域名].key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; location / { 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 https; proxy_set_header Proxy ""; proxy_pass_header Server; proxy_pass http://127.0.0.1:3000; proxy_buffering off; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; tcp_nodelay on; } } 最后重载Nginx: `lnmp nginx reload` 现在,打开你的站点域名,你应该可以看到一个Misskey的实例了。现在你应该注册一个账号,接着回到终端内。 把你的账号设置为管理员: node cli/mark-admin @[用户名]
favorite
赞赏
chevron_left
2019-2-18记
记一次数据库恢复经历
chevron_right
已有 2 条评论
正在回复给
 
去登陆?
spam
提交评论
reply
回复
Ray Wolf
2018 - 12 - 27 19 : 40
终于更新了,好评。
reply
回复
superuser
2018 - 12 - 27 19 : 45
qwq
标签云
日常闲聊
Typecho
LNMP
Nginx
VPS主机
优化
Kali Linux
Linux
mysql
CTF
隐写
音频隐写
舞萌
maimai
深圳
NFC
门禁
msfconsole
metasploit
MediaWiki
备案
中国电信
光猫超级密码
友华PT926G
PT926G
Keil
注册机
文章留名
Ray Wolf
superuser's blog
There is superuser's Blog,这里是superuser的博客
深圳舞萌音游地图
友情链接
留言板
关于
文章归档
RSS
终于更新了,好评。
qwq