mirror of
				https://github.com/mickael-kerjean/filestash.git
				synced 2025-10-31 18:16:00 +08:00 
			
		
		
		
	 7d5719445c
			
		
	
	7d5719445c
	
	
	
		
			
			we can now create fat binary build, we've optimise a few corner case to make it nice to do so
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package common
 | |
| 
 | |
| import (
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| )
 | |
| 
 | |
| //go:generate go run ../generator/constants.go
 | |
| const (
 | |
| 	APP_VERSION       = "v0.5"
 | |
| 	LOG_PATH          = "data/state/log/"
 | |
| 	CONFIG_PATH       = "data/state/config/"
 | |
| 	DB_PATH           = "data/state/db/"
 | |
| 	FTS_PATH          = "data/state/search/"
 | |
| 	CERT_PATH         = "data/state/certs/"
 | |
| 	TMP_PATH          = "data/cache/tmp/"
 | |
| 	COOKIE_NAME_AUTH  = "auth"
 | |
| 	COOKIE_NAME_PROOF = "proof"
 | |
| 	COOKIE_NAME_ADMIN = "admin"
 | |
| 	COOKIE_PATH_ADMIN = "/admin/api/"
 | |
| 	COOKIE_PATH       = "/api/"
 | |
| 	URL_SETUP         = "/admin/setup"
 | |
| )
 | |
| 
 | |
| func init() {
 | |
| 	os.MkdirAll(filepath.Join(GetCurrentDir(), LOG_PATH), os.ModePerm)
 | |
| 	os.MkdirAll(filepath.Join(GetCurrentDir(), FTS_PATH), os.ModePerm)
 | |
| 	os.RemoveAll(filepath.Join(GetCurrentDir(), TMP_PATH))
 | |
| 	os.MkdirAll(filepath.Join(GetCurrentDir(), TMP_PATH), os.ModePerm)
 | |
| }
 | |
| 
 | |
| var (
 | |
| 	BUILD_REF                     string
 | |
| 	BUILD_DATE                    string
 | |
| 	LICENSE                       string = "agpl"
 | |
| 	SECRET_KEY                    string
 | |
| 	SECRET_KEY_DERIVATE_FOR_PROOF string
 | |
| 	SECRET_KEY_DERIVATE_FOR_ADMIN string
 | |
| 	SECRET_KEY_DERIVATE_FOR_USER  string
 | |
| 	SECRET_KEY_DERIVATE_FOR_HASH  string
 | |
| )
 | |
| 
 | |
| /*
 | |
|  * Improve security by calculating derivative of the secret key to restrict the attack surface
 | |
|  * in the worst case scenario with one compromise secret key
 | |
|  */
 | |
| func InitSecretDerivate(secret string) {
 | |
| 	SECRET_KEY = secret
 | |
| 	SECRET_KEY_DERIVATE_FOR_PROOF = Hash("PROOF_"+SECRET_KEY, len(SECRET_KEY))
 | |
| 	SECRET_KEY_DERIVATE_FOR_ADMIN = Hash("ADMIN_"+SECRET_KEY, len(SECRET_KEY))
 | |
| 	SECRET_KEY_DERIVATE_FOR_USER = Hash("USER_"+SECRET_KEY, len(SECRET_KEY))
 | |
| 	SECRET_KEY_DERIVATE_FOR_HASH = Hash("HASH_"+SECRET_KEY, len(SECRET_KEY))
 | |
| }
 |