File tree Expand file tree Collapse file tree 6 files changed +81
-39
lines changed Expand file tree Collapse file tree 6 files changed +81
-39
lines changed Original file line number Diff line number Diff line change 1+ # ## Database
2+ DB_HOST = 
3+ DB_PORT = 3306 
4+ DB_USERNAME = 
5+ DB_PASSWORD = 
6+ DB_NAME = 
7+ TZ = Europe/Paris 
8+ 
9+ # ## Database Migration
10+ # TARGET_DB_HOST=
11+ # TARGET_DB_PORT=3306
12+ # TARGET_DB_NAME=
13+ # TARGET_DB_USERNAME=
14+ # TARGET_DB_PASSWORD=
15+ 
16+ # ## Backup restoration
17+ # FILE_NAME=
18+ # ## AWS  S3 Storage
19+ # ACCESS_KEY=
20+ # SECRET_KEY=
21+ # AWS_S3_BUCKET_NAME=
22+ # AWS_S3_ENDPOINT=
23+ # AWS_REGION=
24+ # AWS_S3_PATH=
25+ # AWS_DISABLE_SSL=false
26+ # AWS_FORCE_PATH_STYLE=true
27+ 
28+ # ## Backup Cron Expression
29+ # BACKUP_CRON_EXPRESSION=@midnight
30+ 
31+ # ###SSH Storage
32+ # SSH_HOST_NAME=
33+ # SSH_PORT=22
34+ # SSH_USER=
35+ # SSH_PASSWORD=
36+ # SSH_IDENTIFY_FILE=/tmp/id_ed25519
37+ 
38+ # ###FTP Storage
39+ # FTP_PASSWORD=
40+ # FTP_HOST_NAME=
41+ # FTP_USER=
42+ # FTP_PORT=21
43+ # REMOTE_PATH=
44+ # ### Backup encryption
45+ # GPG_PUBLIC_KEY=/config/public_key.asc
46+ # GPG_PRIVATE_KEY=/config/private_key.asc
47+ # GPG_PASSPHRASE=Your strong passphrase
48+ # # For multiple database backup on Docker or Docker in Swarm mode
49+ # BACKUP_CONFIG_FILE=/config/config.yaml
50+ # ## Database restoration
51+ # FILE_NAME=
52+ # ## Notification
53+ # BACKUP_REFERENCE=K8s/Paris cluster
54+ # # Telegram
55+ # TG_TOKEN=
56+ # TG_CHAT_ID=
57+ # ## Email
58+ # MAIL_HOST=
59+ # MAIL_PORT=
60+ # MAIL_USERNAME=
61+ # MAIL_PASSWORD=
62+ # MAIL_FROM=Backup Jobs <backup-jobs@example.com>
63+ # MAIL_TO=backup@example.com,me@example.com,team@example.com
64+ # MAIL_SKIP_TLS=false
65+ 
66+ 
67+ 
Original file line number Diff line number Diff line change @@ -10,48 +10,16 @@ RUN go mod download
1010RUN  CGO_ENABLED=0 GOOS=linux go build -o /app/mysql-bkup
1111
1212FROM  alpine:3.20.3
13- ENV  DB_HOST="" 
14- ENV  DB_NAME="" 
15- ENV  DB_USERNAME="" 
16- ENV  DB_PASSWORD="" 
17- ENV  DB_PORT=3306
18- ENV  STORAGE=local
19- ENV  AWS_S3_ENDPOINT="" 
20- ENV  AWS_S3_BUCKET_NAME="" 
21- ENV  AWS_ACCESS_KEY="" 
22- ENV  AWS_SECRET_KEY="" 
23- ENV  AWS_S3_PATH="" 
24- ENV  AWS_REGION="us-west-2" 
25- ENV  AWS_DISABLE_SSL="false" 
26- ENV  AWS_FORCE_PATH_STYLE="true" 
27- ENV  GPG_PASSPHRASE="" 
28- ENV  SSH_USER="" 
29- ENV  SSH_PASSWORD="" 
30- ENV  SSH_HOST="" 
31- ENV  SSH_IDENTIFY_FILE="" 
32- ENV  SSH_PORT=22
33- ENV  REMOTE_PATH="" 
34- ENV  FTP_HOST="" 
35- ENV  FTP_PORT=21
36- ENV  FTP_USER="" 
37- ENV  FTP_PASSWORD="" 
38- ENV  TARGET_DB_HOST="" 
39- ENV  TARGET_DB_PORT=3306
40- ENV  TARGET_DB_NAME="" 
41- ENV  TARGET_DB_USERNAME="" 
42- ENV  TARGET_DB_PASSWORD="" 
43- ENV  BACKUP_CRON_EXPRESSION="" 
44- ENV  TG_TOKEN="" 
45- ENV  TG_CHAT_ID="" 
4613ENV  TZ=UTC
4714ARG  WORKDIR="/config" 
4815ARG  BACKUPDIR="/backup" 
4916ARG  BACKUP_TMP_DIR="/tmp/backup" 
5017ARG  TEMPLATES_DIR="/config/templates" 
51- ARG  appVersion="v1.2.12 " 
18+ ARG  appVersion="" 
5219ENV  VERSION=${appVersion}
5320LABEL  author="Jonas Kaninda" 
5421LABEL  version=${appVersion}
22+ LABEL  github="github.com/jkaninda/mysql-bkup" 
5523
5624RUN  apk --update add --no-cache mysql-client mariadb-connector-c tzdata ca-certificates
5725RUN  mkdir $WORKDIR
Original file line number Diff line number Diff line change @@ -99,7 +99,7 @@ networks:
9999 -e "DB_HOST=hostname" \ 
100100 -e "DB_USERNAME=user" \ 
101101 -e "DB_PASSWORD=password" \ 
102-  jkaninda/mysql-bkup backup -d dbName --cron-expression "@every 1m"  
102+  jkaninda/mysql-bkup backup -d dbName --cron-expression "@every 15m"   # @midnight 
103103``` 
104104See: https://jkaninda.github.io/mysql-bkup/reference/#predefined-schedules 
105105
Original file line number Diff line number Diff line change @@ -91,7 +91,7 @@ networks:
9191 -e "DB_HOST=hostname" \ 
9292 -e "DB_USERNAME=user" \ 
9393 -e "DB_PASSWORD=password" \ 
94-  jkaninda/mysql-bkup backup -d dbName --cron-expression "@every 1m"  
94+  jkaninda/mysql-bkup backup -d dbName --cron-expression "@every 15m"   # @midnight 
9595``` 
9696See: https://jkaninda.github.io/mysql-bkup/reference/#predefined-schedules 
9797
Original file line number Diff line number Diff line change @@ -154,11 +154,11 @@ func initAWSConfig() *AWSConfig {
154154	aConfig .region  =  os .Getenv ("AWS_REGION" )
155155	disableSsl , err  :=  strconv .ParseBool (os .Getenv ("AWS_DISABLE_SSL" ))
156156	if  err  !=  nil  {
157- 		utils . Fatal ( "Unable to parse AWS_DISABLE_SSL env var: %s" ,  err ) 
157+ 		disableSsl   =   false 
158158	}
159159	forcePathStyle , err  :=  strconv .ParseBool (os .Getenv ("AWS_FORCE_PATH_STYLE" ))
160160	if  err  !=  nil  {
161- 		utils . Fatal ( "Unable to parse AWS_FORCE_PATH_STYLE env var: %s" ,  err ) 
161+ 		forcePathStyle   =   false 
162162	}
163163	aConfig .disableSsl  =  disableSsl 
164164	aConfig .forcePathStyle  =  forcePathStyle 
@@ -253,7 +253,7 @@ func initRestoreConfig(cmd *cobra.Command) *RestoreConfig {
253253func  initTargetDbConfig () * targetDbConfig  {
254254	tdbConfig  :=  targetDbConfig {}
255255	tdbConfig .targetDbHost  =  os .Getenv ("TARGET_DB_HOST" )
256- 	tdbConfig .targetDbPort  =  os . Getenv ("TARGET_DB_PORT" )
256+ 	tdbConfig .targetDbPort  =  utils . EnvWithDefault ("TARGET_DB_PORT"  ,  "3306 "
257257	tdbConfig .targetDbName  =  os .Getenv ("TARGET_DB_NAME" )
258258	tdbConfig .targetDbUserName  =  os .Getenv ("TARGET_DB_USERNAME" )
259259	tdbConfig .targetDbPassword  =  os .Getenv ("TARGET_DB_PASSWORD" )
Original file line number Diff line number Diff line change @@ -180,3 +180,10 @@ func GetIntEnv(envName string) int {
180180	}
181181	return  ret 
182182}
183+ func  EnvWithDefault (envName  string , defaultValue  string ) string  {
184+ 	value  :=  os .Getenv (envName )
185+ 	if  value  ==  ""  {
186+ 		return  defaultValue 
187+ 	}
188+ 	return  value 
189+ }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments