建议直接使用VM方便配置和管理,推荐使用PVE的Container功能。版权敏感地区可以考虑使用海外VPS。
本教程默认使用Ubuntu 22.10,需要预先安装RabbitMQ服务、Python3以及Docker和Docker Compose。虽然Docker自带有Compose,但是由于脚本原因并没有使用docker自己的compose而是直接执行docker-compose命令,所以需要手动安装docker-compose。
RabbitMQ可以使用Docker镜像或直接安装native版本。如果使用的是远端或云的方式运行RabbitMQ服务,则需要记录服务的IP地址以便后期配置用。
首先确认你的用户是否不是root,直接使用root账户会导致docker的postgres无法正常安装(无限循环postgres:5432 - no response
原因不明),如果默认root,则运行adduser 用户名
来创建新用户,之后运行adduser 用户名 sudo
来给新用户分配sudo权限,最后运行su 用户名
切换至该用户。
执行git clone
https://github.com/bi119aTe5hXk/mira-docker将mira-docker项目clone到本地。
cd mira-docker/
进入项目目录。执行sudo ./init.sh
开始初始化配置。
执行后会开始询问安装相关问题:
Enter the base folder for docker-compose files, web assets and other configs, (press ENTER to use default: /root/mira)
输入docker-compose
和网页资源以及其他设置的保存地址,默认为/root/mira。如果希望文件保存至别的路径,这里可以输入(例如外部储存的话可以是/mnt/device等,具体根据你的环境设置)。
version tag of download manager image:
version tag of video manager image:
version tag of albireo image:
这三个问题主要是为了确认使用部件的版本,可以分别在Mira Download Manager,Mira Video Manager以及Albireo的Release页面看到最新的版本tag(例如v1.2.1, v1.3.1, v4.2.5等)
Use amqp url or amqp config object:
1. amqp url
2. amqp object
这里则是需要选择刚才创建的RabbitMQ服务连接方式,根据实际情况选择使用URL或者Object连接方式,URL的格式为amqp://<username>:<password>@<IP address>
,如果使用的是Object连接方式,则是会询问IP地址、用户名密码等详细信息。
enter login credentials to connect qbittorrent daemon
qbittorrent username (press enter to use admin):
qbittorent password (press enter to generate a random one):
输入qbittorrent的用户名密码,默认为admin,密码随机生成
data path for albireo, press enter to use /data/albireo:
输入albireo的路径,默认是/data/albireo
Do you want to use the postgres service in the docker-compos file? y for yes, n for no:
是否使用docker的postgres,这里建议直接y,除非你自己有安装postgres数据库
username for postgres (press ENTER to use postgres):
password for postgres (press ENTER to use randomly generated password):
postgres数据库的用户名密码,默认postgres,密码随机生成
database name for albireo (default is albireo):
database name for video manager (default is mira_video):
database name for download manager (default is mira_download):
数据库里给各服务创建的数据库名称,不知道啥原因脚本默认的数据库名和各组件使用的不一致,使用我的frok可以直接默认继续video manager
的数据库名请设置为mira_video_manager
,download manager
的数据库名请设置为mira_downloader
。
location for postgres data (press ENTER to use /data/postgres):
数据库保存路径,默认/data/postgres
Enable https for download manager server? y for yes, n for no:
Enable https for video manager server? y for yes, n for no:
是否给服务开启HTTPS,建议如果只是在本地使用不经由互联网的话不使用HTTPS会比较方便。如果要使用HTTPS则需要准备SSL证书,如有外出使用需求,建议内网HTTP+VPN或者使用Cloudflare Tunnel
Enter the default admin user for albireo (Enter to use admin):
Enter the default admin user password for albireo (Enter to use generated password):
Albireo服务的用户名密码,默认admin,密码随机
docker network for docker-compose services, (default will be mira):
docker网络名,默认mira
Do you want to initialize albireo database, in case you are migrating from the old Albireo, select no (y for yes, n for n):
是否初始化数据库,除非你之前有搭建过albireo服务,不然直接y
之后则开始安装,显示的管理员账户密码记得保存下来。每次init都会随机生成管理员密码。
如果安装中途出现错误,需要重试的话,不要忘记先删除上面设置的/root/mira、/data/albireo、/data/postgres这几个文件夹再重试。另外不要忘记停止正在运行的docke容器,可以输入sudo docker container ls
查看正在运行的容器,运行sudo docker stop <容器ID>
即可关闭容器
如果出现127.0.0.1:8091拒绝连接,也打开docker-compose.yml文件看一下qbittorrent的ports里是否注释了使用我的fork应该不会有这个问题'8091:${QBT_HTTP_PORT:-8091}'
,可以解除注释或者修改WEBUI_PORT为默认的8080。
如果安装提示"err":{"type":"DatabaseError","message":"database \"mira_downloader\" does not exist","stack":"error: database \"mira_downloader\" does not exist\n
或者"err":{"type":"DatabaseError","message":"database \"mira_video_manager\" does not exist","stack":"error: database \"mira_video_manager\" does not exist\n
的话,修改init_helper.py大约80行位置,将原本的 请根据上记在询问数据库名称时输入正确的数据库名称。mira_video
和mira_download
分别改成mira_video_manager
和mira_downloader
,删除旧数据后重新运行init.sh即可
如果需要手动调整数据库内容,则建议使用tmux多开终端,首先执行sudo docker-compose -f /root/mira/docker-compose.yml --profile db up
启动数据库。这里的/root/mira/docker-compose.yml
改成你实际安装mira的位置。启动数据库后执行sudo docker run -it --rm --network mira postgres:12.8 psql -h postgres -U postgres
来开启bash终端访问postgres数据库。
以上能成功跑完,则最难也最容易失败的部分已经完成。经过一段时间安装后会提示:
Do you want to build a new picfit image, if you have previously built a image. you can choose no, y for yes, n for no:
是否build picfit,默认直接y
完成之后执行./build.sh
开始编译前端服务。
Do you want to use last used target folder path: /root/mira, y for yes, n for no
是否使用之前的/root/mira路径,默认直接y
Enter CHROME_EXTENSION_ID:
FIREFOX_EXTENSION_ID:
Enter FIREFOX_EXTENSION_URL:
如果你有使用专用的bangumi同步浏览器插件,则在这里填入插件信息,默认直接留空
Enter SITE_TITLE:
输入网站标题,必须全小写否则最后会报错docker: invalid reference format: repository name must be lowercase.
Enter http proxy for docker container, if you need to access github via proxy:
Enter https proxy for docker container, press Enter to use the same with http proxy:
国内用户需要翻墙才能访问github的话,这里输入代理信息
Do you want to use tag for building? y for yes, n for no
是否使用tag信息来编译,不需要指定版本的话直接输入n用最新版本
编译完成后安装基本就准备好了。
由于需要设置使用邮件功能验证邮箱后才可以进行admin操作,所以需要修改安装路径下的/mira/albireo/config.yml文件。Mira使用的是Flask-mail插件来发送邮件,建议直接用免费的Mailtrap或者Mailgun。
之后回到安装好的mira路径(默认~/mira或者/root/mira),执行
docker-compose --profile prod up
如果提示network networks_local declared as external, but could not be found
,那么运行docker network create networks_local
之后再次运行一次以上命令。