1
0
forked from YaBL/app

chore: change env names

This commit is contained in:
Michael 2025-06-21 21:39:43 +03:00
parent 3a478cb28d
commit 2435088eef
3 changed files with 56 additions and 66 deletions

View File

@ -38,7 +38,6 @@ import (
"golang.org/x/image/font"
"golang.org/x/image/math/fixed"
"golang.org/x/net/html/charset"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
@ -237,36 +236,36 @@ func init() {
func main() {
gin.SetMode(gin.ReleaseMode)
var dbType string
var dbLink string
// var dbType string
var DATA_DIR string
var LIBRARY_DIR string
var UPLOADS_DIR string
var bindAddr string
var BASE_PATH string
var UPLOADS_PATH string
if db_type, exist := os.LookupEnv("DB_TYPE"); exist {
dbType = db_type
// if db_type, exist := os.LookupEnv("DB_TYPE"); exist {
// dbType = db_type
// } else {
// log.Fatalln("Not found DB_TYPE env")
// }
if env, exist := os.LookupEnv("DATA_DIR"); exist {
DATA_DIR = env
} else {
log.Fatalln("Not found DB_TYPE env")
log.Fatalln("Not found DATA_DIR env")
}
if db_link, exist := os.LookupEnv("DB_LINK"); exist {
dbLink = db_link
} else {
log.Fatalln("Not found DB_LINK env")
}
if bind, exist := os.LookupEnv("BIND_ADDR"); exist {
bindAddr = bind
if env, exist := os.LookupEnv("BIND_ADDR"); exist {
bindAddr = env
} else {
bindAddr = ":8080"
}
if basePath, exist := os.LookupEnv("BASE_PATH"); exist {
BASE_PATH = basePath
if env, exist := os.LookupEnv("LIBRARY_DIR"); exist {
LIBRARY_DIR = env
} else {
log.Fatalln("Not found BASE_PATH env")
log.Fatalln("Not found LIBRARY_DIR env")
}
if uploadsPath, exist := os.LookupEnv("UPLOADS_PATH"); exist {
UPLOADS_PATH = uploadsPath
if env, exist := os.LookupEnv("UPLOADS_DIR"); exist {
UPLOADS_DIR = env
} else {
log.Fatalln("Not found UPLOADS_PATH env")
log.Fatalln("Not found UPLOADS_DIR env")
}
//if _, exist := os.LookupEnv("WHITELIST_FILE"); !exist {
//log.Fatalln("Not found WHITELIST_FILE env")
@ -275,16 +274,16 @@ func main() {
log.Println("connecting...")
var db *gorm.DB
var err error
switch dbType {
case "sqlite":
db, err = gorm.Open(sqlite.Open(dbLink), &gorm.Config{
// switch dbType {
// case "sqlite":
db, err = gorm.Open(sqlite.Open(DATA_DIR+"./YaBL.db"), &gorm.Config{
Logger: logger.Default.LogMode(logger.Error),
})
case "posgresql":
db, err = gorm.Open(postgres.Open(dbLink), &gorm.Config{
Logger: logger.Default.LogMode(logger.Error),
})
}
// case "posgresql":
// db, err = gorm.Open(postgres.Open(dbLink), &gorm.Config{
// Logger: logger.Default.LogMode(logger.Error),
// })
// }
if err != nil {
panic(err)
}
@ -321,13 +320,8 @@ func main() {
END;
`)
log.Println("migrated!")
var keysPath string
if keysPathEnv, exist := os.LookupEnv("KEYS_PATH"); exist {
keysPath = keysPathEnv
} else {
log.Fatalln("Not found KEYS_PATH env")
}
priv, pub := loadOrGenerateKeys(keysPath)
priv, pub := loadOrGenerateKeys(DATA_DIR + "/keys")
if len(os.Args) == 3 && os.Args[1] == "--authors-whitelist" {
GenWhitelist(db, os.Args[2])
@ -538,10 +532,10 @@ func main() {
var bookFile zip.File
var filename string
if book.Bookcase == nil {
bookReader, _ = os.Open(UPLOADS_PATH + "/books/" + book.Filename)
bookReader, _ = os.Open(UPLOADS_DIR + "/books/" + book.Filename)
filename = book.Filename
} else {
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
if err != nil {
if os.IsNotExist(err) {
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)
var bookContent []byte
if book.Bookcase != nil {
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
if err != nil {
if os.IsNotExist(err) {
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()
bookContent, _ = io.ReadAll(bookReader)
} else {
bookContent, _ = os.ReadFile(UPLOADS_PATH + "/books/" + book.Filename)
bookContent, _ = os.ReadFile(UPLOADS_DIR + "/books/" + book.Filename)
}
switch book.Filetype {
case "fb2":
@ -687,7 +681,7 @@ func main() {
}
var bookReader io.ReadCloser
if book.Bookcase != nil {
bookcase, err := zip.OpenReader(BASE_PATH + "/" + *book.Bookcase)
bookcase, err := zip.OpenReader(LIBRARY_DIR + "/" + *book.Bookcase)
if err != nil {
if os.IsNotExist(err) {
ctx.JSON(200, []ChapterJSON{})
@ -706,7 +700,7 @@ func main() {
}
bookReader, _ = bookFile.Open()
} else {
bookReader, _ = os.Open(UPLOADS_PATH + "/books/" + book.Filename)
bookReader, _ = os.Open(UPLOADS_DIR + "/books/" + book.Filename)
}
var bookBody BookBody
@ -789,7 +783,7 @@ func main() {
var decodedImage []byte
if book.Bookcase == 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 {
ctx.Data(200, "image/png", genCover(book.Title))
return
@ -822,7 +816,7 @@ func main() {
return
}
} else {
decodedImage, err = os.ReadFile(UPLOADS_PATH + "/covers/" + *book.ExternalCover)
decodedImage, err = os.ReadFile(UPLOADS_DIR + "/covers/" + *book.ExternalCover)
if err != nil {
ctx.Data(200, "image/png", genCover(book.Title))
return
@ -830,7 +824,7 @@ func main() {
}
} else {
// 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 {
ctx.Data(200, "image/png", genCover(book.Title))
return
@ -1137,8 +1131,8 @@ func main() {
return
}
// Пути к файлам
bookPath := filepath.Join(UPLOADS_PATH, "books", bookUUID+".pdf")
coverPath := filepath.Join(UPLOADS_PATH, "covers", bookUUID+".png")
bookPath := filepath.Join(UPLOADS_DIR, "books", bookUUID+".pdf")
coverPath := filepath.Join(UPLOADS_DIR, "covers", bookUUID+".png")
// Создать директории если их нет
os.MkdirAll(filepath.Dir(bookPath), os.ModePerm)
@ -1186,7 +1180,7 @@ func main() {
case "application/x-fictionbook+xml":
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)

View File

@ -11,15 +11,15 @@ type Config struct {
}
func Load() (*Config, error) {
dir := os.Getenv("BASE_PATH")
db := os.Getenv("DB_LINK")
libDir := os.Getenv("LIBRARY_DIR")
dataDir := os.Getenv("DATA_DIR")
if dir == "" || db == "" {
return nil, errors.New("must set BASE_PATH and DB_LINK in env")
if libDir == "" || dataDir == "" {
return nil, errors.New("must set LIBRARY_DIR and DATA_DIR in env")
}
return &Config{
BaseDir: dir,
DBPath: db,
BaseDir: libDir,
DBPath: dataDir + "/YaBL.db",
}, nil
}

View File

@ -4,17 +4,13 @@ services:
container_name: yabl
restart: unless-stopped
ports:
- "8080:8080" # если API слушает на 8080
- "8080:8080"
environment:
- DB_TYPE=sqlite
- DB_LINK=./yabl.db
- BASE_PATH=/app/lib
- BIND_ADDR=:8080
- KEYS_PATH=/app/keys
- UPLOADS_PATH=/app/uploads
- DATA_DIR=/app/data
- LIBRARY_DIR=/app/lib
- UPLOADS_DIR=/app/uploads
# - BIND_ADDR=:8080
volumes:
- ./lib:/app/lib
- ./uploads:/app/uploads
- ./keys:/app/keys
- ./yabl.db:/app/yabl.db
- ./data:/app/data