介绍
go-ignite是一个基于Docker实现,由Golang开发的多账户SS(R)管理面板。
对用户来说,SS(R)服务被隔离在单独的容器中,安全高效,一键创建服务,简单方便。
对管理员,提供后台管理页面,能够快捷的管理用户服务,重置流量等
说明
用户面板:
支持创建 SS 和 SSR,但是仅提供自定义加密方式,且只能在初始化激活账号的时候,创建之后无法更改;
SS 支持 AEAD 系加密;
SSR 密码由随机生成、协议默认 auth_aes128_md5、混淆默认 tls1.2_ticket_auth_compatible。
管理面板:
无法更改用户端口、服务类型;
用户使用的端口并非随机创建。
因为需要使用 Docker,所以请使用非 OpenVZ 构架的 VPS 进行。
安装
安装 Docker
curl -sSL https://get.daocloud.io/docker | sh
运行 Docker
service docker start
安装 Docker-Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
注意:版本号可以自行更改
给执行权限
chmod +x /usr/local/bin/docker-compose
前面步骤完成后,需要为当前登录帐号设置直接操作 Docker 的权限,也就是将当前用户帐号加入 Docker 用户组,下方命令中的 current_user 替换为当前用户名,如:usermod -aG docker root
usermod -aG docker current_user
添加完毕之后,用户重新登录即可生效,可用 docker ps 命令验证,如无错误,表示 Docker 环境设置成功。
创建和运行
创建一个目录并在其中创建一个文件名为 docker-compose.yml,然后键入以下任意一种方案的内容保存:
我就直接放在/opt 下
cd /opt
vi docker-compose.yml
方案一:通过 IP 访问(中文为了说明,使用时请删除)
version: '3'
services:
ignite:
container_name: ignite
image: goignite/ignite
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- HOST_ADDRESS=8.8.8.8
# 此处修改为VPS IP,是展示在用户界面上的 SS/R 的连接 IP
- HOST_FROM=5001
# SS/R 容器的起始可用端口范围,默认 5001
- HOST_TO=6000
# SS/R 容器的截止可用端口范围,默认 6000
ports:
- "80:5000"
# 用户界面访问端口,默认 80
restart: always
ignite-admin:
container_name: ignite-admin
image: goignite/ignite-admin
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- AUTH_USERNAME=admin
# 管理员用户名
- AUTH_PASSWORD=admin_password
# 管理员密码
- Auth_SECRET=ignite2017
# 生成 JWT Token 的密钥,随便修改
ports:
- "8080:8000"
# 管理界面访问端口,默认 8080
restart: always
方案二:通过域名访问(中文为了说明,使用时请删除)
version: '3'
services:
nginx-proxy:
container_name: nginx-proxy
image: jwilder/nginx-proxy
ports:
- "80:80"
# 访问端口,可以无需修改
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: always
ignite:
container_name: ignite
image: goignite/ignite
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- HOST_ADDRESS=8.8.8.8
# 此处修改为 VPS IP,是展示在用户界面上的 SS/R 的连接 IP
- HOST_FROM=5001
# SS/R 容器的起始可用端口范围,默认 5001
- HOST_TO=6000
# SS/R 容器的截止可用端口范围,默认 6000
- VIRTUAL_PORT=5000
- VIRTUAL_HOST=domain.com
# 用户面板的访问域名
restart: always
ignite-admin:
container_name: ignite-admin
image: goignite/ignite-admin
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- AUTH_USERNAME=admin
# 管理员用户名
- AUTH_PASSWORD=admin_password
# 管理员密码
- Auth_SECRET=ignite2017
# 生成 JWT Token 的密钥,随便修改
- VIRTUAL_PORT=8000
- VIRTUAL_HOST=admin.domain.com
# 管理面板的访问域名
restart: always
保存后,CD 至该目录,执行 docker-compose up -d 即可运行。
cd /opt
docker-compose up -d
管理
以下命令请 CD 至 docker-compose.yml 的目录下执行。
docker-compose up -d
# 运行
docker-compose down
# 停止
docker-compose pull
# 更新
如需修改 docker-compose.yml,请先停止后再修改。
以HMB为例,docker-compose.yml内容如下
version: '3'
services:
ignite:
container_name: ignite
image: goignite/ignite
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- HOST_ADDRESS=XXX.com
- HOST_FROM=12411
- HOST_TO=12417
ports:
- "12418:5000"
restart: always
ignite-admin:
container_name: ignite-admin
image: goignite/ignite-admin
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- AUTH_USERNAME=admin
- AUTH_PASSWORD=198704
- Auth_SECRET=ignite2017
ports:
- "12419:8000"
restart: always
参考来源:
https://github.com/go-ignite/ignite
https://anlan.ga/143