config.go 736 B

1234567891011121314151617181920212223242526272829303132
  1. package config
  2. import "os"
  3. // Config 应用配置
  4. type Config struct {
  5. Port string // 服务端口
  6. DBPath string // SQLite 数据库文件路径
  7. PageSize int // 默认分页大小
  8. AdminPass string // 后台管理密码
  9. UploadDir string // 图片上传目录
  10. }
  11. // Load 加载配置,支持环境变量覆盖
  12. func Load() *Config {
  13. uploadDir := getEnv("UPLOAD_DIR", "uploads")
  14. cfg := &Config{
  15. Port: getEnv("PORT", "8080"),
  16. DBPath: getEnv("DB_PATH", "data/notes.db"),
  17. PageSize: 20,
  18. AdminPass: getEnv("ADMIN_PASS", "admin123"),
  19. UploadDir: uploadDir,
  20. }
  21. return cfg
  22. }
  23. func getEnv(key, defaultValue string) string {
  24. if value := os.Getenv(key); value != "" {
  25. return value
  26. }
  27. return defaultValue
  28. }