别浪费你的小钢炮!N305 2核4G迷你主机跑Misskey实战:从0到5000IP/日不掉链子 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

别浪费你的小钢炮!N305 2核4G迷你主机跑Misskey实战:从0到5000IP/日不掉链子

先说结论:别把 N305 只当成下载机,它真能跑Misskey,还能顶住5000 IP/日。本文是一份2核4G内存 Misskey安装教程,目录丢在 /www/ncn,内部 3000 端口,外部www.nervcn.com直接访问,不需要带端口号。全程口水话,照着敲就行。

目录

  1. 硬件确认:N305真·2核4G
  2. 系统选择:Ubuntu 22.04 LTS
  3. Node、pnpm、编译依赖
  4. PostgreSQL 15小内存优化
  5. Redis 256MB封顶
  6. Misskey源码:/www/ncn就位
  7. Nginx 443反代
  8. 开机自启+日志切割

0️⃣ 硬件确认:N305真·2核4G

无论是工控小盒子还是NUC,只要CPU显示Intel N305、内存4 GB,就照本文来。记得BIOS里把虚拟化VT打开,后面swap和性能都靠它。

1️⃣ 系统选择:Ubuntu 22.04 LTS

别装花里胡哨的发行版,Ubuntu 22.04 Server最稳。U盘刻录→开机→一路回车。装完第一件事:

sudo apt update && sudo apt full-upgrade -y

2️⃣ Node、pnpm、编译依赖

# Node 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs build-essential python3 pkg-config \
  libvips-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

# Misskey 官方锁 pnpm
corepack enable
corepack prepare pnpm@latest --activate

3️⃣ PostgreSQL 15小内存优化

# 官方源比Ubuntu自带新
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" >/etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update && sudo apt install -y postgresql-15 postgresql-client-15

# 2核4G专用配置
sudo -u postgres psql -c "CREATE USER misskey WITH PASSWORD 'dbpass';"
sudo -u postgres createdb -O misskey misskey
sudo tee /etc/postgresql/15/main/conf.d/misskey.conf <<'EOF'
shared_buffers = 512MB
effective_cache_size = 1GB
work_mem = 4MB
max_connections = 50
log_statement = 'ddl'
EOF
sudo systemctl restart postgresql

4️⃣ Redis 256MB封顶

sudo apt install -y redis-server
sudo tee -a /etc/redis/redis.conf <<'EOF'
maxmemory 256mb
maxmemory-policy allkeys-lru
save 900 1
save 60 10000
appendonly no
EOF
sudo systemctl restart redis

5️⃣ Misskey源码:/www/ncn就位

sudo useradd -r -s /bin/bash -d /home/misskey misskey
sudo mkdir -p /www/ncn
sudo chown -R misskey:misskey /www
sudo -iu misskey <<'EOF'
cd /www
git clone -b master https://github.com/misskey-dev/misskey.git ncn
cd ncn
cp .config/example.yml .config/default.yml
# 修改关键项
sed -i 's|url:.*|url: https://www.nervcn.com|' .config/default.yml
sed -i 's|port:.*|port: 3000|' .config/default.yml
sed -i 's|host:.*|host: /var/run/postgresql|' .config/default.yml
sed -i 's|user:.*|user: misskey|' .config/default.yml
sed -i 's|pass:.*|pass: dbpass|' .config/default.yml
EOF
# 编译
sudo -iu misskey <<'EOF'
cd /www/ncn
pnpm install --frozen-lockfile
NODE_ENV=production pnpm build
NODE_ENV=production pnpm run init
EOF

systemd 守护

sudo tee /etc/systemd/system/misskey.service <<'EOF'
[Unit]
Description=Misskey daemon
After=network.target postgresql.service redis.service

[Service]
Type=simple
User=misskey
WorkingDirectory=/www/ncn
ExecStart=/usr/bin/node packages/backend/built/index.js
Environment=NODE_ENV=production
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now misskey

6️⃣ Nginx 443反代

sudo apt install -y nginx-core
# /etc/nginx/sites-available/misskey
server {
    listen 80;
    server_name www.nervcn.com nervcn.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.nervcn.com nervcn.com;

    ssl_certificate      /etc/ssl/certs/nervcn.crt;
    ssl_certificate_key  /etc/ssl/private/nervcn.key;
    ssl_protocols TLSv1.2 TLSv1.3;

    client_max_body_size 64m;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "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 https;
    }
}
sudo ln -sf /etc/nginx/sites-available/misskey /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

7️⃣ 开机自启+日志切割

# 日志切割
sudo tee /etc/logrotate.d/misskey <<'EOF' /www/ncn/log/*.log { daily missingok rotate 14 compress delaycompress notifempty copytruncate su misskey misskey } EOF # 每天凌晨4点重启防内存泄漏 (crontab -l 2>/dev/null; echo "0 4 * * * /bin/systemctl try-reload-or-restart misskey") | crontab -

总结

一台N305 2核4G迷你主机,按本文Misskey安装教程走下来,/www/ncn部署完成,PostgreSQL 15 + Redis 256 MB调优,Nginx 443正常端口反代,日常5000 IP/日稳如老狗。别忘了把证书丢进去,浏览器打开www.nervcn.com即可开刷。祝各位折腾愉快!

请登录后发表评论

    没有回复内容

万事屋新帖