chore: change env names
This commit is contained in:
parent
3a478cb28d
commit
2435088eef
@ -38,7 +38,6 @@ import (
|
|||||||
"golang.org/x/image/font"
|
"golang.org/x/image/font"
|
||||||
"golang.org/x/image/math/fixed"
|
"golang.org/x/image/math/fixed"
|
||||||
"golang.org/x/net/html/charset"
|
"golang.org/x/net/html/charset"
|
||||||
"gorm.io/driver/postgres"
|
|
||||||
"gorm.io/driver/sqlite"
|
"gorm.io/driver/sqlite"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/logger"
|
"gorm.io/gorm/logger"
|
||||||
@ -237,36 +236,36 @@ func init() {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
var dbType string
|
// var dbType string
|
||||||
var dbLink string
|
var DATA_DIR string
|
||||||
|
var LIBRARY_DIR string
|
||||||
|
var UPLOADS_DIR string
|
||||||
var bindAddr string
|
var bindAddr string
|
||||||
var BASE_PATH string
|
|
||||||
var UPLOADS_PATH string
|
|
||||||
|
|
||||||
if db_type, exist := os.LookupEnv("DB_TYPE"); exist {
|
// if db_type, exist := os.LookupEnv("DB_TYPE"); exist {
|
||||||
dbType = db_type
|
// dbType = db_type
|
||||||
|
// } else {
|
||||||
|
// log.Fatalln("Not found DB_TYPE env")
|
||||||
|
// }
|
||||||
|
if env, exist := os.LookupEnv("DATA_DIR"); exist {
|
||||||
|
DATA_DIR = env
|
||||||
} else {
|
} else {
|
||||||
log.Fatalln("Not found DB_TYPE env")
|
log.Fatalln("Not found DATA_DIR env")
|
||||||
}
|
}
|
||||||
if db_link, exist := os.LookupEnv("DB_LINK"); exist {
|
if env, exist := os.LookupEnv("BIND_ADDR"); exist {
|
||||||
dbLink = db_link
|
bindAddr = env
|
||||||
} else {
|
|
||||||
log.Fatalln("Not found DB_LINK env")
|
|
||||||
}
|
|
||||||
if bind, exist := os.LookupEnv("BIND_ADDR"); exist {
|
|
||||||
bindAddr = bind
|
|
||||||
} else {
|
} else {
|
||||||
bindAddr = ":8080"
|
bindAddr = ":8080"
|
||||||
}
|
}
|
||||||
if basePath, exist := os.LookupEnv("BASE_PATH"); exist {
|
if env, exist := os.LookupEnv("LIBRARY_DIR"); exist {
|
||||||
BASE_PATH = basePath
|
LIBRARY_DIR = env
|
||||||
} else {
|
} else {
|
||||||
log.Fatalln("Not found BASE_PATH env")
|
log.Fatalln("Not found LIBRARY_DIR env")
|
||||||
}
|
}
|
||||||
if uploadsPath, exist := os.LookupEnv("UPLOADS_PATH"); exist {
|
if env, exist := os.LookupEnv("UPLOADS_DIR"); exist {
|
||||||
UPLOADS_PATH = uploadsPath
|
UPLOADS_DIR = env
|
||||||
} else {
|
} else {
|
||||||
log.Fatalln("Not found UPLOADS_PATH env")
|
log.Fatalln("Not found UPLOADS_DIR env")
|
||||||
}
|
}
|
||||||
//if _, exist := os.LookupEnv("WHITELIST_FILE"); !exist {
|
//if _, exist := os.LookupEnv("WHITELIST_FILE"); !exist {
|
||||||
//log.Fatalln("Not found WHITELIST_FILE env")
|
//log.Fatalln("Not found WHITELIST_FILE env")
|
||||||
@ -275,16 +274,16 @@ func main() {
|
|||||||
log.Println("connecting...")
|
log.Println("connecting...")
|
||||||
var db *gorm.DB
|
var db *gorm.DB
|
||||||
var err error
|
var err error
|
||||||
switch dbType {
|
// switch dbType {
|
||||||
case "sqlite":
|
// case "sqlite":
|
||||||
db, err = gorm.Open(sqlite.Open(dbLink), &gorm.Config{
|
db, err = gorm.Open(sqlite.Open(DATA_DIR+"./YaBL.db"), &gorm.Config{
|
||||||
Logger: logger.Default.LogMode(logger.Error),
|
Logger: logger.Default.LogMode(logger.Error),
|
||||||
})
|
})
|
||||||
case "posgresql":
|
// case "posgresql":
|
||||||
db, err = gorm.Open(postgres.Open(dbLink), &gorm.Config{
|
// db, err = gorm.Open(postgres.Open(dbLink), &gorm.Config{
|
||||||
Logger: logger.Default.LogMode(logger.Error),
|
// Logger: logger.Default.LogMode(logger.Error),
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -321,13 +320,8 @@ func main() {
|
|||||||
END;
|
END;
|
||||||
`)
|
`)
|
||||||
log.Println("migrated!")
|
log.Println("migrated!")
|
||||||
var keysPath string
|
|
||||||
if keysPathEnv, exist := os.LookupEnv("KEYS_PATH"); exist {
|
priv, pub := loadOrGenerateKeys(DATA_DIR + "/keys")
|
||||||
keysPath = keysPathEnv
|
|
||||||
} else {
|
|
||||||
log.Fatalln("Not found KEYS_PATH env")
|
|
||||||
}
|
|
||||||
priv, pub := loadOrGenerateKeys(keysPath)
|
|
||||||
|
|
||||||
if len(os.Args) == 3 && os.Args[1] == "--authors-whitelist" {
|
if len(os.Args) == 3 && os.Args[1] == "--authors-whitelist" {
|
||||||
GenWhitelist(db, os.Args[2])
|
GenWhitelist(db, os.Args[2])
|
||||||
@ -538,10 +532,10 @@ func main() {
|
|||||||
var bookFile zip.File
|
var bookFile zip.File
|
||||||
var filename string
|
var filename string
|
||||||
if book.Bookcase == nil {
|
if book.Bookcase == nil {
|
||||||
bookReader, _ = os.Open(UPLOADS_PATH + "/books/" + book.Filename)
|
bookReader, _ = os.Open(UPLOADS_DIR + "/books/" + book.Filename)
|
||||||
filename = book.Filename
|
filename = book.Filename
|
||||||
} else {
|
} else {
|
||||||
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
|
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
ctx.JSON(404, gin.H{"err": "file not exists"})
|
ctx.JSON(404, gin.H{"err": "file not exists"})
|
||||||
@ -574,7 +568,7 @@ func main() {
|
|||||||
db.Model(&schemas.Book{}).Where("ID = ?", ctx.Param("id")).First(&book)
|
db.Model(&schemas.Book{}).Where("ID = ?", ctx.Param("id")).First(&book)
|
||||||
var bookContent []byte
|
var bookContent []byte
|
||||||
if book.Bookcase != nil {
|
if book.Bookcase != nil {
|
||||||
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
|
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
ctx.Data(200, "", []byte("<section><h2>404</h2><epigraph><span>текст книги не найден на сервере</span></epigraph><br/><p>обратитесь к администратору библиотеки</p></section>"))
|
ctx.Data(200, "", []byte("<section><h2>404</h2><epigraph><span>текст книги не найден на сервере</span></epigraph><br/><p>обратитесь к администратору библиотеки</p></section>"))
|
||||||
@ -594,7 +588,7 @@ func main() {
|
|||||||
bookReader, _ := bookFile.Open()
|
bookReader, _ := bookFile.Open()
|
||||||
bookContent, _ = io.ReadAll(bookReader)
|
bookContent, _ = io.ReadAll(bookReader)
|
||||||
} else {
|
} else {
|
||||||
bookContent, _ = os.ReadFile(UPLOADS_PATH + "/books/" + book.Filename)
|
bookContent, _ = os.ReadFile(UPLOADS_DIR + "/books/" + book.Filename)
|
||||||
}
|
}
|
||||||
switch book.Filetype {
|
switch book.Filetype {
|
||||||
case "fb2":
|
case "fb2":
|
||||||
@ -687,7 +681,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
var bookReader io.ReadCloser
|
var bookReader io.ReadCloser
|
||||||
if book.Bookcase != nil {
|
if book.Bookcase != nil {
|
||||||
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
|
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
ctx.JSON(200, []ChapterJSON{})
|
ctx.JSON(200, []ChapterJSON{})
|
||||||
@ -706,7 +700,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
bookReader, _ = bookFile.Open()
|
bookReader, _ = bookFile.Open()
|
||||||
} else {
|
} else {
|
||||||
bookReader, _ = os.Open(UPLOADS_PATH + "/books/" + book.Filename)
|
bookReader, _ = os.Open(UPLOADS_DIR + "/books/" + book.Filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
var bookBody BookBody
|
var bookBody BookBody
|
||||||
@ -789,7 +783,7 @@ func main() {
|
|||||||
var decodedImage []byte
|
var decodedImage []byte
|
||||||
if book.Bookcase == nil {
|
if book.Bookcase == nil {
|
||||||
if book.ExternalCover == nil {
|
if book.ExternalCover == nil {
|
||||||
bookFile, err := os.Open(UPLOADS_PATH + "/books/" + book.Filename)
|
bookFile, err := os.Open(UPLOADS_DIR + "/books/" + book.Filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Data(200, "image/png", genCover(book.Title))
|
ctx.Data(200, "image/png", genCover(book.Title))
|
||||||
return
|
return
|
||||||
@ -822,7 +816,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
decodedImage, err = os.ReadFile(UPLOADS_PATH + "/covers/" + *book.ExternalCover)
|
decodedImage, err = os.ReadFile(UPLOADS_DIR + "/covers/" + *book.ExternalCover)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Data(200, "image/png", genCover(book.Title))
|
ctx.Data(200, "image/png", genCover(book.Title))
|
||||||
return
|
return
|
||||||
@ -830,7 +824,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO: normal handling of missing file should be here...
|
// TODO: normal handling of missing file should be here...
|
||||||
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
|
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Data(200, "image/png", genCover(book.Title))
|
ctx.Data(200, "image/png", genCover(book.Title))
|
||||||
return
|
return
|
||||||
@ -1137,8 +1131,8 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Пути к файлам
|
// Пути к файлам
|
||||||
bookPath := filepath.Join(UPLOADS_PATH, "books", bookUUID+".pdf")
|
bookPath := filepath.Join(UPLOADS_DIR, "books", bookUUID+".pdf")
|
||||||
coverPath := filepath.Join(UPLOADS_PATH, "covers", bookUUID+".png")
|
coverPath := filepath.Join(UPLOADS_DIR, "covers", bookUUID+".png")
|
||||||
|
|
||||||
// Создать директории если их нет
|
// Создать директории если их нет
|
||||||
os.MkdirAll(filepath.Dir(bookPath), os.ModePerm)
|
os.MkdirAll(filepath.Dir(bookPath), os.ModePerm)
|
||||||
@ -1186,7 +1180,7 @@ func main() {
|
|||||||
case "application/x-fictionbook+xml":
|
case "application/x-fictionbook+xml":
|
||||||
rawFB2 := reaper.Parse(bytes.NewReader(fileData))
|
rawFB2 := reaper.Parse(bytes.NewReader(fileData))
|
||||||
// Пути к файлам
|
// Пути к файлам
|
||||||
bookPath := filepath.Join(UPLOADS_PATH, "books", bookUUID+".fb2")
|
bookPath := filepath.Join(UPLOADS_DIR, "books", bookUUID+".fb2")
|
||||||
|
|
||||||
// Создать директории если их нет
|
// Создать директории если их нет
|
||||||
os.MkdirAll(filepath.Dir(bookPath), os.ModePerm)
|
os.MkdirAll(filepath.Dir(bookPath), os.ModePerm)
|
||||||
|
|||||||
@ -11,15 +11,15 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Load() (*Config, error) {
|
func Load() (*Config, error) {
|
||||||
dir := os.Getenv("BASE_PATH")
|
libDir := os.Getenv("LIBRARY_DIR")
|
||||||
db := os.Getenv("DB_LINK")
|
dataDir := os.Getenv("DATA_DIR")
|
||||||
|
|
||||||
if dir == "" || db == "" {
|
if libDir == "" || dataDir == "" {
|
||||||
return nil, errors.New("must set BASE_PATH and DB_LINK in env")
|
return nil, errors.New("must set LIBRARY_DIR and DATA_DIR in env")
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Config{
|
return &Config{
|
||||||
BaseDir: dir,
|
BaseDir: libDir,
|
||||||
DBPath: db,
|
DBPath: dataDir + "/YaBL.db",
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,17 +4,13 @@ services:
|
|||||||
container_name: yabl
|
container_name: yabl
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080" # если API слушает на 8080
|
- "8080:8080"
|
||||||
environment:
|
environment:
|
||||||
- DB_TYPE=sqlite
|
- DATA_DIR=/app/data
|
||||||
- DB_LINK=./yabl.db
|
- LIBRARY_DIR=/app/lib
|
||||||
- BASE_PATH=/app/lib
|
- UPLOADS_DIR=/app/uploads
|
||||||
- BIND_ADDR=:8080
|
# - BIND_ADDR=:8080
|
||||||
- KEYS_PATH=/app/keys
|
|
||||||
- UPLOADS_PATH=/app/uploads
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./lib:/app/lib
|
- ./lib:/app/lib
|
||||||
- ./uploads:/app/uploads
|
- ./uploads:/app/uploads
|
||||||
- ./keys:/app/keys
|
- ./data:/app/data
|
||||||
- ./yabl.db:/app/yabl.db
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user