书签管理工具Servas的安装

最近抽空把老苏常用的 YesPlayMusic 更新了一下,客户端版本升级到了 v0.4.5API 版本升级到了 v4.8.2,有需要的可以升级一下

本文完成于 5 月底

什么是 Servas ?

Servas 是一个自托管的书签管理工具。基于 LaravelInertia.js,并使用 Tailwind CSSSvelte 作为前端。

特征

  • 标签:用标签组织你的书签。
  • 组:对您的书签进行分组。组可以嵌套。
  • 稍后列表:将书签添加到“稍后列表”以便以后访问它们。
  • Chrome 浏览器扩展:直接从您的浏览器将站点添加到 Servas
  • 多个用户:您可以创建多个用户帐户。
  • 响应式设计: Servas 在您的所有设备上看起来都不错。
  • 提供两因素身份验证。

前言

本次要安装的容器是基于 apache 的,如果安装完成后反复重启,并在日志中有下面的内容

1
Function not implemented: AH00141: Could not initialize random number generator

说明你的群晖内核版本太低

Your NAS is using a linux kernel < 3.16 and is missing some dependencies required by apache2 now.

这个问题在安装 NextCloudMonicaMediaWiki 时都遇到过,这里不展开讲了。

安装

建数据库

官方提供了docker-compose 安装方式,在这里能找到需要的文件:https://github.com/beromir/Servas/tree/main/docker

需要另外安装 MariaDB 镜像,老苏还是准备用群晖已经自带的 MariaDB 数据库。

phpMyAdmin 中创建了名为 servas 的空数据库。

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 servas ,选择第三个 beromir/servas,双击直接下载

docker 文件夹中,创建一个新文件夹 servas

需要将下面的内容保存为 .env 文件,并放入 servas 目录中

可以先在本地保存为 env.txt 上传后再重命名为 .env

1
2
3
4
5
6
7
8
9
10
11
12
APP_NAME=Servas
APP_ENV=production
APP_KEY=uGN294nJmwQN
APP_DEBUG=false
APP_URL=http://192.168.0.197:5388

DB_CONNECTION=mysql
DB_HOST=192.168.0.197
DB_PORT=3307
DB_DATABASE=servas
DB_USERNAME=servas
DB_PASSWORD=password
变量
APP_NAME 应用的名称,用默认的 Servas 就好了
APP_ENV 模式为 production
APP_KEY 相当于应用的密码
APP_DEBUG false 表示关闭调试模式
APP_URL 应用的访问地址
DB_CONNECTION 数据库的类型
DB_HOST 数据库的地址
DB_PORT 数据库的端口
DB_DATABASE 数据库的库名
DB_USERNAME 数据库的用户
DB_PASSWORD 数据库的密码

文件夹 装载路径 说明
docker/servas/.env /var/www/html/.env 环境设置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5388 80

常规

名称命名为 servas,这是为了方便后面进入容器内做设置

设置

完成上面设置后,容器就可以启动了

但是先别急着打开网页,因为在启动前,还有设置需要完成,否则你只会看到错误

但老苏尝试从终端机进入会导致容器停止,不确定是不是我的机器出了什么问题,只能通过命令行或者 portainer 才能进入到容器内部

  • SSH 客户端的命令行中执行下面的命令
1
2
3
4
5
6
7
8
# 进入容器
docker exec --user root -it servas /bin/bash

# 运行数据库迁移
php artisan migrate

# 生成应用程序密钥
php artisan key:generate

  • portainer 进入容器

1
2
3
4
5
# 运行数据库迁移
php artisan migrate

# 生成应用程序密钥
php artisan key:generate

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 新建文件夹 servas 和 子目录
mkdir -p /volume1/docker/servas

# 进入 servas 目录
cd /volume1/docker/servas

# 将 .env 文件放入当前目录

# 运行容器
docker run -d \
--restart unless-stopped \
--name servas \
-p 5388:80 \
-v $(pwd)/.env:/var/www/html/.env \
beromir/servas

# 运行数据库迁移
docker exec -it servas php artisan migrate

# 生成应用程序密钥
docker exec -it servas php artisan key:generate

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: "3"

services:
servas:
image: beromir/servas
container_name: servas
restart: unless-stopped
ports:
- "5388:80"
volumes:
- ./.env:/var/www/html/.env

然后执行下面的命令,在 portainer 中执行也是可以的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 servas 和 子目录
mkdir -p /volume1/docker/servas

# 进入目录
cd /volume2/docker/servas

# 将 .env 和 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

# 运行数据库迁移
docker exec -it servas php artisan migrate

# 生成应用程序密钥
docker exec -it servas php artisan key:generate

运行

在浏览器中输入 http://群晖IP:5388/register 注册新用户

如果你点 register 没反应,可能是密码太简单了,但没有任何提示

注册成功后,会进入到主界面

使用比较简单,直接省略了

参考文档

beromir/Servas: A self-hosted bookmark management tool.
地址:https://github.com/beromir/Servas