Files
tiny-forge/cmd/server/main.go
T
alexei.dolgolyov d63c831d15 feat(docker-watcher): phase 1 - project scaffold & SQLite store
Initialize Go module, directory structure, and full SQLite store layer:
- 7-table schema (projects, stages, registries, settings, instances,
  deploys, deploy_logs) with auto-migration
- CRUD operations for all entities with proper error handling
- ErrNotFound sentinel for distinguishing 404 from 500 in handlers
- WAL mode, foreign keys, busy timeout pragmas
2026-03-27 20:52:29 +03:00

38 lines
772 B
Go

package main
import (
"fmt"
"log"
"os"
"path/filepath"
"github.com/alexei/docker-watcher/internal/store"
)
func main() {
dataDir := envOrDefault("DATA_DIR", "./data")
if err := os.MkdirAll(dataDir, 0o755); err != nil {
log.Fatalf("create data directory: %v", err)
}
dbPath := filepath.Join(dataDir, "docker-watcher.db")
db, err := store.New(dbPath)
if err != nil {
log.Fatalf("open store: %v", err)
}
defer db.Close()
fmt.Printf("Docker Watcher started. Database: %s\n", dbPath)
// Future phases will wire up the HTTP server, deployer, poller, etc.
}
// envOrDefault reads an environment variable or returns the fallback value.
func envOrDefault(key, fallback string) string {
if v := os.Getenv(key); v != "" {
return v
}
return fallback
}