先说结论:别把 N305 只当成下载机,它真能跑Misskey,还能顶住5000 IP/日。本文是一份2核4G内存 Misskey安装教程,目录丢在 /www/ncn
,内部 3000 端口,外部www.nervcn.com直接访问,不需要带端口号。全程口水话,照着敲就行。
目录
- 硬件确认:N305真·2核4G
- 系统选择:Ubuntu 22.04 LTS
- Node、pnpm、编译依赖
- PostgreSQL 15小内存优化
- Redis 256MB封顶
- Misskey源码:/www/ncn就位
- Nginx 443反代
- 开机自启+日志切割
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即可开刷。祝各位折腾愉快!
没有回复内容