This commit is contained in:
nitezs 2023-09-17 16:59:02 +08:00
parent 4f4a633035
commit 354379b12a
4 changed files with 24 additions and 13 deletions

View File

@ -5,3 +5,4 @@ REQUEST_RETRY_TIMES=3
REQUEST_MAX_FILE_SIZE=1048576 REQUEST_MAX_FILE_SIZE=1048576
CACHE_EXPIRE=300 CACHE_EXPIRE=300
LOG_LEVEL=info LOG_LEVEL=info
BASE_PATH=/

View File

@ -25,15 +25,16 @@
可以通过编辑 .env 文件来修改默认配置docker 直接添加环境变量 可以通过编辑 .env 文件来修改默认配置docker 直接添加环境变量
| 变量名 | 说明 | 默认值 | | 变量名 | 说明 | 默认值 |
|-----------------------|----------------------------------------|-----------------------| |-----------------------|-----------------------------------------------------------|-----------------------|
| PORT | 端口 | `8011` | | BASE_PATH | 程序运行子路径,例如将服务反代在 `https://example.com/sub` 则此变量值应为 `/sub` | `/` |
| META_TEMPLATE | meta 模板文件名 | `template_meta.yaml` | | PORT | 端口 | `8011` |
| CLASH_TEMPLATE | clash 模板文件名 | `template_clash.yaml` | | META_TEMPLATE | meta 模板文件名 | `template_meta.yaml` |
| REQUEST_RETRY_TIMES | Get 请求重试次数 | `3` | | CLASH_TEMPLATE | clash 模板文件名 | `template_clash.yaml` |
| REQUEST_MAX_FILE_SIZE | Get 请求订阅文件最大大小byte | `1048576` | | REQUEST_RETRY_TIMES | Get 请求重试次数 | `3` |
| CACHE_EXPIRE | 订阅缓存时间(秒) | `300` | | REQUEST_MAX_FILE_SIZE | Get 请求订阅文件最大大小byte | `1048576` |
| LOG_LEVEL | 日志等级,可选值 `debug`,`info`,`warn`,`error` | `info` | | CACHE_EXPIRE | 订阅缓存时间(秒) | `300` |
| LOG_LEVEL | 日志等级,可选值 `debug`,`info`,`warn`,`error` | `info` |
### API ### API
@ -63,5 +64,3 @@
[代理链接解析](./parser)还没有经过严格测试,可能会出现解析错误的情况,如果出现问题请提交 issue [代理链接解析](./parser)还没有经过严格测试,可能会出现解析错误的情况,如果出现问题请提交 issue
## TODO ## TODO
- [x] 可视化面板

View File

@ -4,6 +4,8 @@ import (
"crypto/sha256" "crypto/sha256"
"encoding/hex" "encoding/hex"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"net/http"
"sub2clash/config"
"sub2clash/model" "sub2clash/model"
"sub2clash/utils/database" "sub2clash/utils/database"
"sub2clash/validator" "sub2clash/validator"
@ -46,5 +48,6 @@ func ShortLinkGetHandler(c *gin.Context) {
c.String(404, "未找到短链接") c.String(404, "未找到短链接")
return return
} }
c.Redirect(302, "../"+shortLink.Url) uri := config.Default.BasePath + shortLink.Url
c.Redirect(http.StatusTemporaryRedirect, uri)
} }

View File

@ -14,6 +14,7 @@ type Config struct {
RequestMaxFileSize int64 RequestMaxFileSize int64
CacheExpire int64 CacheExpire int64
LogLevel string LogLevel string
BasePath string
} }
var Default *Config var Default *Config
@ -27,6 +28,7 @@ func init() {
Port: 8011, Port: 8011,
CacheExpire: 60 * 5, CacheExpire: 60 * 5,
LogLevel: "info", LogLevel: "info",
BasePath: "/",
} }
err := godotenv.Load() err := godotenv.Load()
if err != nil { if err != nil {
@ -69,4 +71,10 @@ func init() {
if os.Getenv("LOG_LEVEL") != "" { if os.Getenv("LOG_LEVEL") != "" {
Default.LogLevel = os.Getenv("LOG_LEVEL") Default.LogLevel = os.Getenv("LOG_LEVEL")
} }
if os.Getenv("BASE_PATH") != "" {
Default.BasePath = os.Getenv("BASE_PATH")
if Default.BasePath[len(Default.BasePath)-1] != '/' {
Default.BasePath += "/"
}
}
} }