feat(prod): add allow register and chatgpt model into env file

This commit is contained in:
Leons Aleksandrovs
2025-07-13 21:59:42 +03:00
parent 6d13680e99
commit dd93438ad2
5 changed files with 21 additions and 3 deletions

View File

@@ -1,4 +1,9 @@
# API key for chatgpt
CHATGPT_KEY=api key for chatgpt
# Chat gpt model
CHATGPT_MODEL=gpt-4o
# This is secret key for jwt signature
JWT_SECRET=just a random string here
# Set to false to disable registration
ALLOW_REGISTER=true

View File

@@ -1,6 +1,9 @@
package config
import "os"
import (
"log"
"os"
)
func defaultValue(val string, def string) string {
if val == "" {
@@ -20,4 +23,8 @@ func LoadEnv() {
Env["JWT_SECRET"] = defaultValue(os.Getenv("JWT_SECRET"), "just a random string here")
Env["Environment"] = defaultValue(os.Getenv("Environment"), "dev")
Env["CHATGPT_KEY"] = defaultValue(os.Getenv("CHATGPT_KEY"), "")
Env["REGISTER"] = defaultValue(os.Getenv("ALLOW_REGISTER"), "true")
log.Printf("[INFO] Register set to '%s'\n", Env["REGISTER"])
Env["CHATGPT_MODEL"] = defaultValue(os.Getenv("CHATGPT_MODEL"), "gpt-4o")
log.Printf("[INFO] ChatGPT model set to '%s'\n", Env["CHATGPT_MODEL"])
}

View File

@@ -25,6 +25,12 @@ type RegisterForm struct {
}
func Register(c *gin.Context) {
// Check for register environment
if config.Env["REGISTER"] != "true" {
res.Error(c, "Registration is disabled", http.StatusForbidden)
return
}
// Receive data from frontend, check if data is okay, hash password, call model
var data RegisterForm
if err := c.ShouldBindJSON(&data); err != nil {

View File

@@ -37,7 +37,7 @@ func GenerateCoverLetter(templateHTML string, jobHTML string) (GeneratedCover, e
}
payload := ChatRequest{
Model: "gpt-4o", // o4-mini
Model: config.Env["CHATGPT_MODEL"],
ResponseFormat: &ResponseFormat{Type: "json_object"},
Messages: []ChatMessage{
{

View File

@@ -30,7 +30,7 @@ services:
container_name: cover-letter-frontend
ports:
- 80:8080
- 8000:8080
networks:
- cover-letter-network
db: