Moebooru是流行的贴图版程序,可以放很多好东西。
主要参考的这篇文章,但是有不少区别。
机器是Ubuntu 16.04。安装在 CentOS 的尝试失败了,因为没搞懂PostgreSQL的各种依赖。
可能因为时效而失效,发现到的人可以邮件提醒我。
安装需要的依赖
apt update && apt upgrade
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs imagemagick jhead libxslt-dev libyaml-dev git libreadline-dev libpcre3-dev libssl-dev build-essential postgresql-server-dev-all postgresql postgresql-contrib nginx
Node.Js 安装参考的此处,node 是被需要的。
apt-get
这些依赖都是moebooru的README里面写的,但是各个发行版的包名不同。
创建用户
adduser moebooru --disabled-password
创建一个独立的用户,剩余的东西几乎都在这个用户上做。
用户禁用了密码,只能用su
等方式登陆。
配置数据库
sudo -u postgres psql
用管理员进入数据库的命令行。
CREATE user moebooru WITH password 'your_password' CREATEDB;
ALTER ROLE moebooru superuser;
\q
创建一个和刚才的 Linux 用户同名的数据库用户,然后将它改为超级用户。普通用户在后面的步骤会遇到权限问题,所以只是权宜之计,之后要改回来应该也行。
用户内
sudo -i -u moebooru
登入用户。然后安装 rbenv:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
# Restart shell
exec bash
# Check if rbenv is correctly installed
type rbenv
# Install ruby-build as rbenv plugin
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~
rbenv install 2.5.1
rbenv global 2.5.1
这里参考的是mastodon的文档。
安装配置 moebooru
git clone https://github.com/moebooru/moebooru.git ~/live
cd live
mkdir public/data
mkdir -p public/data/{avatars,frame,frame-preview,image,inline,jpeg,preview,sample,search}
cp config/database.yml.example config/database.yml
cp config/local_config.rb.example config/local_config.rb
bundle exec rake secret
下载代码、初始化目录、复制配置文件、最后一步生成密钥。
然后复制生成出来的密钥,去修改 config/local_config.rb
然后修改 config/database.yml
。
之后就可以初始化了:
bundle exec rake db:create
bundle exec rake db:reset
bundle exec rake db:migrate
bundle exec rake i18n:js:export
bundle exec rake assets:precompile
外围设施配置
从moebooru账户登出。
然后编辑 /etc/nginx/nginx.conf
。这些属性值是建议的:
client_max_body_size 200m;
sendfile on;
keepalive_timeout 65;
gzip on;
在/etc/nginx/sites-avaliable/
里面增加一个 Nginx 虚拟主机文件moebooru
:
server {
root /home/moebooru/live/public;
listen 80;
server_name _;
location / { try_files /cache/$uri /cache/$uri.html $uri @moe; }
location @moe {
expires off;
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
然后再在/etc/nginx/sites-enable/
里面增加软链接:
ln -s ../sites-avaliable/moebooru
最后用supervisor来管理服务器进程,在 /etc/supervisor/conf.d/moebooru.conf
:
[program:moebooru]
command=/home/moebooru/.rbenv/shims/bundle exec unicorn
user=moebooru
directory=/home/moebooru/live/
启动moebooru
sudo supervisorctl start moebooru
以上。