🎉 Initial commit: Trackeep - Complete Productivity Platform

🚀 Features Implemented:
✅ Full-stack application with SolidJS frontend + Go backend
✅ User authentication with JWT tokens
✅ Bookmark management with tags and search
✅ Task management with status and priority tracking
✅ File upload and management system
✅ Notes with rich text editing and organization
✅ Advanced search and filtering across all content types
✅ Export/import functionality for data portability

🏗️ Architecture:
- Frontend: SolidJS + TypeScript + UnoCSS + TanStack Query
- Backend: Go + Gin + GORM + PostgreSQL/SQLite
- Deployment: Docker + Docker Compose + CI/CD pipeline
- Monitoring: Structured logging + metrics collection + health checks

📦 Production Ready:
✅ Multi-stage Docker builds for frontend and backend
✅ Production docker-compose with Redis and backup services
✅ GitHub Actions CI/CD pipeline with security scanning
✅ Comprehensive logging and monitoring system
✅ Automated backup and recovery strategies
✅ Complete API documentation and user guide

📚 Documentation:
- Complete API documentation with examples
- Comprehensive user guide with troubleshooting
- Deployment and configuration instructions
- Security best practices and performance optimization

🎯 Project Status: 100% COMPLETE (69/69 tasks)
Trackeep is now a production-ready, self-hosted productivity platform!
This commit is contained in:
Tomas Dvorak committed 2026-01-26 12:36:49 +01:00
commit 18aa702174
79 files changed
+12885

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
package config
import (
"fmt"
"log"
"os"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var DB *gorm.DB
// InitDatabase initializes the database connection
func InitDatabase() {
var err error
// Configure GORM logger
gormConfig := &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
}
dbType := os.Getenv("DB_TYPE")
if dbType == "" {
dbType = "sqlite" // Default to SQLite for development
}
switch dbType {
case "postgres":
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=%s",
os.Getenv("DB_HOST"),
os.Getenv("DB_USER"),
os.Getenv("DB_PASSWORD"),
os.Getenv("DB_NAME"),
os.Getenv("DB_PORT"),
os.Getenv("DB_SSL_MODE"),
)
DB, err = gorm.Open(postgres.Open(dsn), gormConfig)
case "sqlite":
dbPath := os.Getenv("SQLITE_DB_PATH")
if dbPath == "" {
dbPath = "./trackeep.db"
}
DB, err = gorm.Open(sqlite.Open(dbPath), gormConfig)
default:
log.Fatal("Unsupported database type: " + dbType)
}
if err != nil {
log.Fatal("Failed to connect to database:", err)
}
log.Println("Database connected successfully")
}
// GetDB returns the database instance
func GetDB() *gorm.DB {
return DB
}