fix: layout CSS en Cloudflare/Hostinger + sesiones en PostgreSQL 1 año

This commit is contained in:
Lizandro Guarnizo
2026-05-01 11:44:35 -05:00
parent 1731855df8
commit 1c27cdfaf1
5 changed files with 34 additions and 39 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ func (cfg *AppConfig) LoadComponents() {
cfg.LoadStatic()
cfg.PrepareLog()
_ = cfg.Database.Setup()
_ = cfg.Session.Setup()
_ = cfg.Session.Setup(cfg.Database.Default)
cfg.Cache.Setup()
cfg.Storage.Setup()
}
+18 -30
View File
@@ -1,49 +1,37 @@
package config
import (
"fmt"
"time"
"github.com/gofiber/session/v2"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
pgprovider "github.com/gofiber/session/v2/provider/postgres"
)
type SessionConfig struct {
Database string `yaml:"database" env:"SESSION_DATABASE"` // Ruta de la base de datos SQLite
*session.Session
}
func (s *SessionConfig) Setup() error {
// Abrir conexión a la base de datos SQLite
db, err := gorm.Open(sqlite.Open(s.Database), &gorm.Config{})
// Setup configura el almacén de sesiones en PostgreSQL con expiración de 1 año.
func (s *SessionConfig) Setup(db DatabaseDriver) error {
provider, err := pgprovider.New(pgprovider.Config{
Host: db.Host,
Port: int64(db.Port),
Username: db.Username,
Password: db.Password,
Database: db.DBName,
TableName: "sessions",
MaxOpenConns: 20,
MaxIdleConns: 10,
ConnMaxLifetime: 5 * time.Minute,
})
if err != nil {
return fmt.Errorf("failed to connect to the database: %v", err)
return err
}
// Migrar la estructura de la tabla para sesiones
err = db.AutoMigrate(&Session{}) // Define la estructura de la sesión según sea necesario
if err != nil {
return fmt.Errorf("failed to migrate database: %v", err)
}
// Configurar el proveedor de sesiones en memoria
store := session.New(session.Config{
s.Session = session.New(session.Config{
Expiration: 365 * 24 * time.Hour, // 1 año
}) // Usar el proveedor de sesiones en memoria
// Crear una nueva sesión
s.Session = store
Provider: provider,
})
return nil
}
// Estructura para las sesiones (ajusta según tus necesidades)
type Session struct {
ID uint `gorm:"primaryKey"`
SessionID string `gorm:"unique"`
Data string `gorm:"type:text"`
CreatedAt time.Time
UpdatedAt time.Time
ExpireAt time.Time
}