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:
2025-12-13 17:52:21 +00:00
parent 72b5c18f29
commit 99694bfa63
4 changed files with 413 additions and 20 deletions

View File

@@ -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)