update go app
This commit is contained in:
10
Dockerfile
Normal file
10
Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
FROM golang:1.23.4
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN go build && chmod +x tui-ssh-app
|
||||||
|
|
||||||
|
CMD [/app/tui-ssh-app]
|
||||||
|
|
||||||
38
db/mysql.go
38
db/mysql.go
@@ -12,8 +12,11 @@ import (
|
|||||||
|
|
||||||
var DB *sql.DB
|
var DB *sql.DB
|
||||||
|
|
||||||
|
// ConnectDB establishes the database connection and initializes tables.
|
||||||
func ConnectDB() {
|
func ConnectDB() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
// Form the DSN (Data Source Name)
|
||||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s",
|
||||||
config.GetEnv("DB_USER"),
|
config.GetEnv("DB_USER"),
|
||||||
config.GetEnv("DB_PASSWORD"),
|
config.GetEnv("DB_PASSWORD"),
|
||||||
@@ -21,8 +24,43 @@ func ConnectDB() {
|
|||||||
config.GetEnv("DB_PORT"),
|
config.GetEnv("DB_PORT"),
|
||||||
config.GetEnv("DB_NAME"),
|
config.GetEnv("DB_NAME"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Open the connection
|
||||||
DB, err = sql.Open("mysql", dsn)
|
DB, err = sql.Open("mysql", dsn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error connecting to database: %v", err)
|
log.Fatalf("Error connecting to database: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ping the database to ensure connection is successful
|
||||||
|
if err = DB.Ping(); err != nil {
|
||||||
|
log.Fatalf("Error pinging database: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Connected to MySQL successfully!")
|
||||||
|
|
||||||
|
// Initialize tables
|
||||||
|
initializeTables()
|
||||||
|
}
|
||||||
|
|
||||||
|
// initializeTables creates required tables if they don't exist.
|
||||||
|
func initializeTables() {
|
||||||
|
queries := []string{
|
||||||
|
`CREATE TABLE IF NOT EXISTS sessions (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
user VARCHAR(255) NOT NULL,
|
||||||
|
host VARCHAR(255) NOT NULL,
|
||||||
|
port INT NOT NULL,
|
||||||
|
password TEXT,
|
||||||
|
private_key TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);`,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, query := range queries {
|
||||||
|
if _, err := DB.Exec(query); err != nil {
|
||||||
|
log.Fatalf("Error creating table: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Tables are initialized successfully!")
|
||||||
}
|
}
|
||||||
|
|||||||
0
docker-compose.yml
Normal file
0
docker-compose.yml
Normal file
Reference in New Issue
Block a user