0 package config
1
2 import "github.com/kkyr/fig"
3
4 var Cfg Config
5
6 type Config struct {
7 Title string `validate:"required"`
8 Database struct {
9 Type string `validate:"required"`
10 Url string `validate:"required"`
11 }
12 Gemini struct {
13 Certificate string `validate:"required"`
14 Key string `validate:"required"`
15 Address string `validate:"required"`
16 Port string `validate:"required"`
17 Templates string `validate:"required"`
18 }
19 Git struct {
20 Https bool
21 Domain string `validate:"required"`
22 Remote struct {
23 Enabled bool
24 Url string
25 Address string
26 Key string
27 }
28 Address string `validate:"required"`
29 Port int `validate:"required"`
30 Key string
31 }
32 Ldap struct {
33 Enabled bool
34 Url string
35 Attribute string
36 Binding string
37 }
38 Users struct {
39 Registration bool `validate:"required"`
40 }
41 Protection struct {
42 Ip int `validate:"required"`
43 Account int `validate:"required"`
44 Reset int `validate:"required"`
45 }
46 }
47
48 func LoadConfig() error {
49 err := fig.Load(
50 &Cfg,
51 fig.File("config.yaml"),
52 fig.Dirs(".", "/etc/gemigit", "/usr/local/etc/gemigit"),
53 )
54 if err == nil && Cfg.Ldap.Enabled {
55 Cfg.Users.Registration = false
56 }
57 return err
58 }
59