2.4 KiB
Bootstrap Specification
Purpose
The goal of bootstrap phase is to establish a stable foundation for future development.
No business features should be implemented during bootstrap.
Only infrastructure and application foundation.
Bootstrap Deliverables
The application must provide:
- Fiber Application
- Environment Configuration
- MariaDB Connection
- Redis Connection
- Session Management
- Template Rendering
- HTMX Support
- TinyMCE Integration Ready
- Health Check Endpoint
- Docker Support
- Structured Logging
Dependencies
Required packages:
Fiber
Fiber Middleware
GORM
MariaDB Driver
Redis Client
Session Middleware
Environment Loader
Structured Logger
Environment Variables
The application must support:
APP_NAME
APP_ENV
APP_PORT
DB_HOST
DB_PORT
DB_NAME
DB_USER
DB_PASSWORD
REDIS_HOST
REDIS_PORT
REDIS_PASSWORD
SESSION_SECRET
UPLOAD_PATH
Database
Requirements:
- GORM
- Auto Migration disabled
- Migration-based schema management
- Connection pooling configured
Redis
Requirements:
- Connection test during startup
- Used for session storage
Session
Requirements:
- Redis-backed session storage
- Secure cookies
- HTTP Only cookies
- SameSite cookies
Templates
Requirements:
- Go HTML Templates
- Layout support
- Partial support
Template structure:
layouts
partials
public
admin
Static Assets
Serve:
/css
/js
/images
Upload Strategy
Development:
web/uploads
Production:
/opt/data/uploads
Must be configurable via environment variable.
Health Check
Endpoint:
GET /health
Response:
{ "status": "ok" }
Checks:
- Application running
- Database reachable
- Redis reachable
Base Routes
Public:
GET /
GET /health
Admin:
GET /admin/login
Home Page
Temporary placeholder page.
Display:
Application Name
Environment
Version
Logging
Use structured logging.
Log:
- Startup
- Shutdown
- Database Connection
- Redis Connection
- Errors
Docker
Provide:
Dockerfile
docker-compose.yml
Environment support
Success Criteria
Bootstrap phase is complete when:
- Application starts successfully
- Database connection succeeds
- Redis connection succeeds
- Session middleware works
- Templates render correctly
- Home page loads
- Health endpoint works
- Docker container starts successfully
No blog functionality required.
No admin functionality required.
No CRUD functionality required.