吐槽

misskey相对于mastodon来说UI比较好看好操作,但是mastodon有好看的Android客户端但misskey没有。

而且可以关闭中继带来的远程用户缓存,原先用mastodon的时候,开了中继几天不到20G的空间分配就用完了。。

象群的用户多(虽然一样都很少,但比misskey用户多了不知道几十倍),但是misskey的中继是和mastodon是一样的,所以其实没啥差别。

Mastodon用的Ruby来写的,misskey用的TypeScript(JS)来写的,运行上来说misskey的速度和运存占用相对占优势。

misskey的话可以上传任意大小文件并引用此文件发笔记,mastodon如果不魔改的话是只能上传图片和视频的并且有文件和分辨率大小限制。而且misskey可以随时在自己的网盘删除自己不用了的文件,而且如果上传但是忘记写文了,可以从网盘中再次选取,并不会像mastodon那样必须再次上传。misskey有网盘大小限制可以避免用户炸对象储存空间。

部署

这里就懒得写了毕竟有官方文档和dogcraft的参考

官方安装文档参考(含ubuntu,raspberry pi和aws的安装方法)

国内安装文档参考

接下的图片教程适合面板和非面板用户参考,这是我摸索出来最好的 。

misskeynodejs.png
反正是1.15及以上就行了。
misskeypostgresql.png
postgresql不会出什么叉子了的。
S102132242089111.png
这个要nodejs,postgresql,nginx,redis等等完全搞好了之后才进行。

其它部分有些省略的走官方的那个就都可以了,好了,接下来是nginx和redis,非面板用户按官网的来就行了,接下来的是给面板用户

redis的话直接用宝塔面板那个就OK了

S10213-230511581
下好了就行。。。无需去配置

在nginx那里如果你用的是宝塔(小皮)面板请删除和nginx和ssl有关的任何操作,不然出错了emmm,没人为你负责!

这里nginx作反代,宝塔(小皮)面板用户请复制以下配置,不然会出现ssl无法开启或强制跳转ssl等错误,并将sk.wos.la换成你自己的域名,并且提前把ssl开启了,不然会提示错误的。

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_temp_path=off;

server {
    listen 80;
   	listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name sk.wos.la;
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
        }
    ssl_certificate    /www/server/panel/vhost/cert/sk.wos.la/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/sk.wos.la/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
    client_max_body_size 80m;
    
      # Proxy to Node
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_redirect off;

        # If it's behind another reverse proxy or CDN, remove the following.
        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;

        # 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;
        
        #超时设置
        proxy_connect_timeout 5400s;
            proxy_read_timeout 5400s;
            proxy_send_timeout 5400s;
            send_timeout 5400s;
    }
}

请注意,请不要使用除CF以外的CDN服务器,不然websocks会出问题,导致一直提示服务器已断开

.config/default.yml的配置请参考以下,注意,如果提示在执行 npm run init时出错请直接复制这份模板,改域名和postgresql的密码即可,如果还是不行就连那个版权信息也别删

S10213222056201.png

P102132234091.jpg

#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Misskey configuration
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

#   ┌─────┐
#───┘ URL └─────────────────────────────────────────────────────

# Final accessible URL seen by a user.
url: https://sk.wos.la/

# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# URL SETTINGS AFTER THAT!

#   ┌───────────────────────┐
#───┘ Port and TLS settings └───────────────────────────────────

# To use option 1, uncomment below line.
port: 3000    # A port that your Misskey server should listen.

# To use option 2, uncomment below lines.
#port: 443

#https:
#  # path for certification
#  key: /etc/letsencrypt/live/example.tld/privkey.pem
#  cert: /etc/letsencrypt/live/example.tld/fullchain.pem

#   ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────

db:
  host: localhost
  port: 5432

  # Database name
  db: misskey

  # Auth
  user: misskey
  pass: your paasword

  # Whether disable Caching queries
  #disableCache: true

  # Extra Connection options
  #extra:
  #  ssl: true

#   ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────

redis:
  host: localhost
  port: 6379
  #pass: example-pass
  #prefix: example-prefix
  #db: 1

#   ┌─────────────────────────────┐
#───┘ Elasticsearch configuration └─────────────────────────────

#elasticsearch:
#  host: localhost
#  port: 9200
#  ssl: false
#  user: 
#  pass: 

#   ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────

id: 'aid'

#   ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────

# Whether disable HSTS
#disableHsts: true

# Number of worker processes
clusterLimit: 20

# Job concurrency per worker
deliverJobConcurrency: 512
inboxJobConcurrency: 512

# Job rate limiter
deliverJobPerSec: 512
inboxJobPerSec: 512

# Job attempts
deliverJobMaxAttempts: 128
inboxJobMaxAttempts: 128

# IP address family used for outgoing request (ipv4, ipv6 or dual)
outgoingAddressFamily: ipv4

# Syslog option
#syslog:
#  host: localhost
#  port: 514

# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128

#proxyBypassHosts: [;
#  'example.com',
#  '192.0.2.8'
#]

# Proxy for SMTP/SMTPS
#proxySmtp: http://127.0.0.1:3128   # use HTTP/1.1 CONNECT
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5

# Media Proxy
#mediaProxy: https://example.com/proxy

# Sign to ActivityPub GET request (default: false)
signToActivityPubGet: true

其他就按操作来就行了!

运营
1.SMTP的话很简单,按操作来就行了。 2.OSS的话,如果你的服务器在国外就请选择香港的OSS,(misskey已经兼容阿里云的oss了,请关闭oss代理和s3pathstyle),如果oss地区选择错误的话会导致: 2.1.上传文件会卡在100% 2.2哔哩哔哩搬运机器人会出错

3.机器人,现在有dogcraft大大写的哔哩哔哩机器人,按照操作来基本没事,如果出错3.1.源码需要修改一下,

S10211143002871.png

3.2.rsshub的问题,可以使用我git来的rsshub

http://193.187.116.148:1200/ https://rsshub.wi51.cc/

4.类似于mastodon的tootctl statuses remove的脚本,由dogcraft大大写的一键删库脚本{},Github
5.贴文翻译:https://dogcraft.top/archives/196/
6.中文中继:https://relay.mastodon.fun/inbox ;我的还在路上马上就好。


7.备份,由于2.12晚上的事件,我需要郑重声明,必须备份全部文件,缺一个直接跑路得了,包括redis,postgres和misskey的主目录等等!!!图中没有的一个操作是在切换到postgres用户后执行以下代码,然后生成文件在/var/lib/postgresql里!

pg_dump -C misskey > misskey_$(date +%Y%m%d_%H_%M_%S).sql

S1021323012739.png

但是你很快就会发现postgresql没办法用宝塔面板的定时任务

第一步:把postgresql的超级权限给root,并设置为可登录

CREATE ROLE root superuser PASSWORD '密码建议用随机密码生成' login;

第二步:你再添加定时任务你会发现没有任何输出只有一个成功的提示,但并没有备份,也就是无法执行这个,我试过多种方式,但是只有这个成功了。

#!/bin/bash

# 备份存放位置
BACKUP_DIR=/root/
# 如果不存在就创建
if [ ! -d "$BACKUP_DIR" ]; then
    mkdir -p "$BACKUP_DIR"
fi
cd $BACKUP_DIR

# 删除30天之前的备份
deleteDIR=$(date --date='30 day ago' +%Y-%m-%d)
rm -rf $deleteDIR

# 假设每天凌晨执行 备份数据文件夹名为昨日 yyyy-MM-dd 格式
dateDIR=$(date --date='1 day ago' +%Y-%m-%d_%H-%M-%S)
mkdir $dateDIR

# 备份指定的数据库
backupDB=(misskey)
backupDBArr=$(echo ${backupDB[@]})

# 使用压缩转储每一个数据库
for i in $backupDBArr; do
    pg_dump misskey > $BACKUP_DIR$dateDIR/${i}_${dateDIR}.sql
done

8.请注意部署misskey后千万不要安装vnc和gnome或xfce4什么的。不然只有还原了。。。。。

这里要感谢dogcraft大大给我讲解misskey有关的内容

mashiro大大给我讲解Mastodon相关的内容

mashiro的b站空间:https://b23.tv/OUoPkj;

dogcraft的b站空间https://b23.tv/OS8zxe

Q.E.D.