Implement data directory configuration and ensure its existence in the main application. Update README with comprehensive features, installation instructions, and usage guidelines for the Adastra Storage Appliance.
This commit is contained in:
@@ -3,9 +3,11 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
@@ -30,8 +32,26 @@ import (
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
// Determine data directory (use /opt/adastra-storage/data in production, current dir in dev)
|
||||
dataDir := os.Getenv("DATA_DIR")
|
||||
if dataDir == "" {
|
||||
dataDir = os.Getenv("INSTALL_DIR")
|
||||
if dataDir != "" {
|
||||
dataDir = filepath.Join(dataDir, "data")
|
||||
} else {
|
||||
dataDir = "." // Development mode
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure data directory exists
|
||||
if err := os.MkdirAll(dataDir, 0755); err != nil {
|
||||
log.Fatalf("failed to create data directory: %v", err)
|
||||
}
|
||||
|
||||
// Connect simple sqlite DB (file)
|
||||
dsn := "file:appliance.db?_foreign_keys=on"
|
||||
dbPath := filepath.Join(dataDir, "appliance.db")
|
||||
dsn := fmt.Sprintf("file:%s?_foreign_keys=on", dbPath)
|
||||
sqldb, err := sql.Open("sqlite", dsn)
|
||||
if err != nil {
|
||||
log.Fatalf("open db: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user