Files
wonder 01ecdc8c23 feat: initialize project skeleton with Go backend, database, and config
- Go module with standard library + gorilla/sessions + mysql driver
- Config: env-based configuration with .env file support
- Database: MySQL connection with auto-migration for 6 tables
- Seed data: 12 system tags with options, 8 system snippets
- Auth: session cookie middleware
- Handlers: auth, tags, snippets, builder, claude, dashboard, suggestions, settings
- LLM: OpenAI-compatible client with 30s timeout
- Docker: Dockerfile + docker-compose.yml
- .env.example with all configuration options

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:58:15 +08:00

43 lines
1.0 KiB
Go

package config
import (
"os"
)
type Config struct {
ServerPort string
SessionSecret string
DBHost string
DBPort string
DBUser string
DBPassword string
DBName string
AuthPassword string
LLMAPIBaseURL string
LLMAPIKey string
LLMModelName string
}
func Load() *Config {
return &Config{
ServerPort: getEnv("SERVER_PORT", "8080"),
SessionSecret: getEnv("SESSION_SECRET", "default-secret-change-me"),
DBHost: getEnv("DB_HOST", "127.0.0.1"),
DBPort: getEnv("DB_PORT", "3306"),
DBUser: getEnv("DB_USER", "root"),
DBPassword: getEnv("DB_PASSWORD", ""),
DBName: getEnv("DB_NAME", "prompt_generator"),
AuthPassword: getEnv("AUTH_PASSWORD", "admin"),
LLMAPIBaseURL: getEnv("LLM_API_BASE_URL", "https://api.deepseek.com/v1"),
LLMAPIKey: getEnv("LLM_API_KEY", ""),
LLMModelName: getEnv("LLM_MODEL_NAME", "deepseek-chat"),
}
}
func getEnv(key, fallback string) string {
if v := os.Getenv(key); v != "" {
return v
}
return fallback
}