summaryrefslogtreecommitdiff
path: root/shrine/config/env.go
blob: 8057e7aeb507d48deddd6a5049aea251ff014ffd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package config

import "time"

type server struct {
	Host        string        `env:"HOST" default:"0.0.0.0"`
	Port        int           `env:"PORT" default:"3000"`
	Secret      string        `env:"SECRET" default:"pagoda-secret"`
	Debug       bool          `env:"DEBUG" default:"false"`
	CorsOrigins string        `env:"CORS_ORIGINS" default:"*"`
	TokenExpiry time.Duration `env:"TOKEN_EXPIRY" default:"720h"`
}

type database struct {
	Driver string `env:"DB_DRIVER" default:"sqlite"`
	DSN    string `env:"DSN" default:"pagoda.db"`
}

type smtp struct {
	Host        string `env:"SMTP_HOST" default:"localhost"`
	Port        int    `env:"SMTP_PORT" default:"587"`
	Username    string `env:"SMTP_USERNAME" default:""`
	Password    string `env:"SMTP_PASSWORD" default:""`
	From        string `env:"SMTP_FROM" default:"[email protected]"`
	FrontendURL string `env:"FRONTEND_URL" default:"http://localhost:5173"`
}

type storage struct {
	Endpoint       string `env:"MINIO_ENDPOINT" default:"localhost:9000"`
	AccessKey      string `env:"MINIO_ACCESS_KEY" default:""`
	SecretKey      string `env:"MINIO_SECRET_KEY" default:""`
	Bucket         string `env:"MINIO_BUCKET" default:"pagoda"`
	UseSSL         bool   `env:"MINIO_USE_SSL" default:"false"`
	CDN            string `env:"CDN_URL" default:""`
	MaxFileSize    int64  `env:"MAX_FILE_SIZE" default:"33554432"`
	MaxAttachments int    `env:"MAX_ATTACHMENTS" default:"8"`
}