update go app

This commit is contained in:
durbok
2024-12-28 16:08:13 +01:00
parent b6bbf30bd0
commit 1fcfc2df8f
3 changed files with 48 additions and 0 deletions

10
Dockerfile Normal file
View 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]

View File

@@ -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
View File