神殇
发布于 2024-09-25 / 100 阅读
4
0

EVE Online 的军团管理工具SeAT搭建教程

玩EVE Online的同学应该都对SeAT这款军团管理工具有所了解,绝大多数军团在成员加入之前都会要求玩家提交SeAT以供审查。由于SeAT的搭建教程在中文互联网上几乎没有,导致本人在搭建时研究了很久。今天本文将详细的介绍SeAT的搭建方式,SeAT的安装方法有两种,分别是通过PHP手动安装和Docker安装,由于手动安装收到操作系统不同会有不同的命令,本文将只介绍Docker的安装过程。(注:部署SeAT的前提是能够连接外网)
68747470733a2f2f692e696d6775722e636f6d2f5058484f5943702e706e67.png


安装Docker

Linux

如果您没有安装Docker,请使用以下命令进行安装:

sh <(curl -fsSL get.docker.com)

Windows

如果您使用的是Windows系统,请下载并安装Docker Desktop:Docker Desktop下载


安装Docker Compose

Linux

如果您没有安装Docker Compose,请使用以下命令进行安装:

Centos/RHEL
yum install -y epel-release
yum install -y docker-compose
Ubuntu
sudo apt-get update
sudo apt-get install docker-compose-plugin

Windows

Docker Compose 包含在 Windows 上的 Docker Desktop 中,不需要单独安装


下载SeAT模板文件

Linux

创造一个目录来存放SeAT文件,比如/opt/seat-docker,然后下载并解压SeAT的Docker模板:

mkdir -p /opt/seat-docker
cd /opt/seat-docker
curl -fsSL https://github.com/eveseat/seat-docker/archive/refs/heads/master.zip -o seat-docker.zip
unzip seat-docker.zip -d /opt/seat-docker -j

接下来将 seat-docker 根目录中的 .env.example 文件重命名为 .env

mv /opt/seat-docker/.env.example /opt/seat-docker/.env

接下来,将生成一个唯一的密钥,用于内部加密:

sed -i -- 's/APP_KEY=insecure/APP_KEY='$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c32 ; echo '')'/g' .env

Windows

(注意!!!Windows需要使用PowerShell而不是cmd)创造一个目录来存放SeAT文件,比如/opt/seat-docker,然后下载并解压SeAT的Docker模板:

mkdir C:\seat-docker
cd C:\seat-docker
Invoke-WebRequest -Uri https://github.com/eveseat/seat-docker/archive/refs/heads/master.zip -OutFile seat-docker.zip
Expand-Archive -Path c:\seat-docker\seat-docker.zip -DestinationPath c:\seat-docker

接下来将 seat-docker 根目录中的 .env.example 文件重命名为 .env

Rename-Item -Path "c:\seat-docker\.env.example" -NewName ".env"

接下来,将生成一个唯一的密钥,用于内部加密:

$appkey = (-join ((65..90) + (97..122) | Get-Random -Count 32 | % {[char]$_})); (Get-Content .env -Raw) -replace "APP_KEY=insecure", "APP_KEY=$appkey" | Set-Content .env


ESI 配置

登录EVE Online 开发者门户并创建一个新的应用程序。
创建应用程序.png

为您的应用程序填写名称和描述,用户在查看第三方应用程序对其帐户的访问权限时会看到此名称。
命名.png
接下来,将连接类型设置为身份验证和 API 访问,选择全部的ESI 范围并指定回调 URL
权限.png
回调地址是身份验证成功后,用户应重定向到的回调 URL。应设置为:

https://你的域名/auth/eve/callback

创建新应用程序后,需要记住EVE_CLIENT_ID和EVE_CLIENT_SECRET这两个值后面会用到。


修改配置项

使用 Traefik

Traefik 是一款开源的反向代理与负载均衡工具,它监听后端的变化并自动更新服务配置。
如果您计划使用Traefik部署SeAT,它将自动在Let's Encrypt注册您的帐户,它将为您提供免费的域名证书,请使用以下命令创建ACME配置文件:

mkdir acme
touch acme/acme.json
chmod 600 acme/acme.json

自行代理

如果您有Nginx等代理服务器可以跳过以上步骤。

修改.env文件

  1. 自行代理的服务端口,请修改为服务器未占用的端口。如果使用Traefik可以注释掉
PROXY_BACKEND_HTTP_PORT=8080
  1. Traefik部署使用的端口,如果服务器没有开放80端口,ACME可能无法正常获取到证书。如果使用自行代理可以注释掉。
TRAEFIK_HTTP_PORT=80 # Only used for ACME, SeAT won't listen here.
TRAEFIK_HTTPS_PORT=443
  1. Traefik部署时ACME获取证书所用的邮箱,要求真实有效。如果使用自行代理可以注释掉。
TRAEFIK_ACME_EMAIL=you@domain.tld
  1. 部署的SeAT的域名。
SEAT_DOMAIN=seat.xxxxx
  1. SeAT使用的数据库地址,SeAT默认会生成一个mariadb数据库容器,如果你想使用外置数据库请修改以下配置项并注释掉docker-compose.yml中对mariadb容器的依赖。请勿使用mysql数据库,而是使用mariadb,否则会报错。
DB_CONNECTION=mysql
DB_DATABASE=seat
DB_USERNAME=seat
DB_HOST=mariadb
DB_PORT=3306
DB_PASSWORD=i_should_be_changed
  1. SeAT默认并不使用redis作为缓存,如果你想要使用redis作为缓存在后续配置项中将缓存设置为redis。
REDIS_HOST=cache
REDIS_PORT=6379
REDIS_PASSWORD= #如果有密码

7.SeAT所使用的邮件通知服务。如果你不知道如何设置请自行搜索smtp服务的相关教程。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=noreply@localhost.local
MAIL_FROM_NAME='SeAT Administrator'
  1. 之前在 ESI 配置时生成的内容。
EVE_CLIENT_ID=
EVE_CLIENT_SECRET=
EVE_CALLBACK_URL=${APP_URL}/auth/eve/callback
  1. SeAT可以添加的额外软件包,可在官方文档中获取,将包名填入以下配置项,每项之间用逗号隔开。
SEAT_PLUGINS=
  1. SeAT默认使用文件作为缓存,如果你想要使用redis作为缓存请在第六项中设置好redis地址,并将下列项改为redis。
ESEYE_CACHE_DRIVER=file

启动SeAT服务

自行代理

docker compose -f docker-compose.yml -f docker-compose.mariadb.yml -f docker-compose.traefik.yml up

如果采用外置数据库可以去掉 -f docker-compose.mariadb.yml
如果需要后台启动请使用以下命令:

docker compose -f docker-compose.yml -f docker-compose.mariadb.yml -f docker-compose.traefik.yml up -d

容器启动后便可以通过设置的 APP_URL访问您的SeAT。

使用 Traefik

docker compose -f docker-compose.yml -f docker-compose.mariadb.yml -f docker-compose.proxy.yml up

如果采用外置数据库可以去掉 -f docker-compose.mariadb.yml
如果需要后台启动请使用以下命令:

docker compose -f docker-compose.yml -f docker-compose.mariadb.yml --f docker-compose.proxy.yml up -d

容器启动后便可以通过设置的 http://host:port访问您的SeAT。host为您的服务器地址,port为您之前设置的 PROXY_BACKEND_HTTP_PORT


管理员登录

您登录SeAT之后默认是没有管理员权限的。需要使用内置的管理员账户给其他账户进行授权,过程如下,

  1. 进入seat-docker目录并执行以下命令:
cd /opt/seat-docker
docker-compose exec seat-web php artisan seat:admin:login
  1. 之后会显示一个链接,通过该链接登录SeAT。
  2. 在左侧列表中选择设置-用户。
    用户.png
  3. 选择您要授予管理员权限的用户,点击修改,勾选超级用户并保存。
    修改.png

监控SeAT

当容器启动或运行一段时间时,您可以随时进入文件所在的目录并运行logs命令以查看所有容器的输出情况。

cd /opt/seat-docker
docker compose logs --tail 10 -f

配置变更

所有相关配置都位于.env文件中,如果您修改了.env文件,请重新启动容器。


评论