Skip to content

进阶设置

Timothy edited this page Dec 2, 2017 · 12 revisions

使用Caddy配置域名访问

使用Systemd管理go-ignite进程

使用Caddy配置域名访问

通常情况,你会配置自己的域名来访问相应的服务。如果服务器上80,443端口已经占用,你需要配置反向代理访问到ignite服务使用的5000端口,ignite-admin服务使用的8000端口。

如果服务器上80,443端口并未占用,这里提供一种简单的容器化Caddy服务方式来绑定域名。定义caddy服务:

version: '2'

services:
  caddy:
    container_name: caddy
    image: abiosoft/caddy
    volumes:
      - "./certs:/etc/caddycerts"
      - "./Caddyfile:/etc/Caddyfile"
    ports:
      - 80:80
      - 443:443
    network_mode: "host"
    restart: always
    environment:
      CADDYPATH: /etc/caddycerts

修改示例Caddyfile配置的域名和邮箱。

ignite.xxxx.com {
    tls your@email.com
    proxy / localhost:5000 {
        transparent
    }
}

ignite-admin.xxxx.com {
    tls your@email.com
    proxy / localhost:8000 {
        transparent
    }
}

配置项

通过设置容器的environment来覆盖默认的配置项,这里列举可以配置的环境变量。

  • ignite
    • DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认sqlite3
    • DB_CONNECT -- 数据库连接字符串,默认./data/ignite.db
    • HOST_ADDRESS -- 展示在用户界面上的SS的连接IP,默认localhost
    • HOST_FROM -- 创建SS容器的起始可用端口范围,默认5001
    • HOST_TO -- 创建SS容器的截止可用端口范围,默认6000
  • ignite-admin
    • DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认sqlite3
    • DB_CONNECT -- 数据库连接字符串,默认../ignite/data/ignite.db
    • AUTH_USERNAME -- 管理用户名,默认admin
    • AUTH_PASSWORD -- 管理密码,默认123
    • Auth_SECRET -- 生成JWT Token的秘钥,默认123

使用Systemd管理go-ignite进程

通常nohup启动的程序,会随着程序运行异常,或者服务器重启后,程序退出而终止运行,通常我们会使用upstart/systemd/supervisor来作为系统守护进程,来管理我们的应用程序,这样在程序异常退出,或者服务器重启后,程序会自动启动并运行。这里介绍如何用Systemd来管理go-ignite进程。

在ignite和ignite-admin的daemon目录中,能分别找到ignite.service 和 ignite-admin.service 配置模板,将它们分别拷贝到系统 /lib/systemd/system

修改配置模板中的几个关键配置项:

WorkingDirectory=/path/to/ignite
ExecStart=/path/to/ignite/executable
User=root
  • WorkingDirectory: 程序工作目录,指向ignite或者ignite-admin所部署的目录
  • ExecStart: 可执行程序路径,指向ignite或者ignite-admin可执行程序路径
  • User: 程序运行时所使用的系统账户,可根据系统已有账户进行修改,请注意,改账户必须有权限访问ignite或者ignite-admin部署目录,并且改账户应当加入系统docker用户组,这样才有权限与docker进行交互。

配置完成后,分别enable ignite与ignite-admin的service,并启动:

sudo systemctl enable ignite && sudo systemctl start ignite
sudo systemctl enable ignite-admin && sudo systemctl start ignite-admin
Clone this wiki locally