nself cli v0.3.0
nself v0.3.0 - Complete Architecture Refactor with Smart Defaults
🎉 Major Release - Project Restructuring Complete
This release represents a complete architectural overhaul of nself, introducing a
modular src-centric design with smart defaults that makes the tool incredibly simple
to use while maintaining full flexibility for power users.
Note: As part of a one-time project restructuring, previous releases (0.1.0, 0.2.0,
0.2.1, 0.2.2, 0.2.3, 0.2.4) have been consolidated into this comprehensive v0.3.0
release. This clean slate ensures a solid foundation for future development.
🚀 Headline Features
Smart Defaults System
- Zero Configuration Required: Works out of the box with sensible defaults for
everything - Override Only What You Need: Users only specify changes in .env.local
- Intelligent Cascading: Configuration priority: .env > .env.local > built-in
defaults - Complete Yet Simple: Full power when you need it, simplicity when you don't
Modular Architecture
- src-centric design: All core logic moved to /src directory
- Thin bin shims: /bin scripts are now lightweight wrappers
- Better separation of concerns: Clear boundaries between CLI, services, libraries,
and templates - Improved testability: Modular structure enables better testing and maintenance
Simplified Commands
- nself init - Now ONLY creates environment files (no project generation)
- nself build - Generates entire project structure from environment configuration
- nself reset - Properly backs up env files and cleans generated content
- nself up - Starts services with smart defaults, no configuration required
📋 Complete Feature Set
Core Infrastructure
- PostgreSQL 16 with automatic initialization and migrations
- Hasura GraphQL Engine with metadata management and admin secret handling
- Nginx reverse proxy with SSL support and automatic routing
- Docker Compose orchestration with health checks and dependencies
Authentication & Storage
- Nhost Auth service with JWT authentication
- Nhost Storage with S3-compatible API
- MinIO for local S3-compatible object storage
- Automatic SSL certificates for local development
Microservices Support
- NestJS services with TypeScript and hot reload
- Go services with proper module management and go.sum generation
- Python services with FastAPI support
- Automatic service discovery and routing
Developer Experience
- Hot reload for all supported languages
- Unified logging with nself logs command
- Health monitoring with nself status showing service states
- Environment validation ensuring all required variables are set
- Comprehensive error messages with actionable fixes
🔧 Technical Improvements
Configuration Management
- Centralized smart defaults in /src/lib/config/smart-defaults.sh
- Environment file templates with extensive documentation
- Automatic computation of derived values (URLs, connection strings)
- Support for multiple environments (dev, staging, prod)
Build System
- Fixed Go module generation with proper go.sum files
- Improved Docker build caching
- Better handling of service dependencies
- Automatic port allocation for services
Command Enhancements
- nself doctor - Comprehensive system diagnostics
- nself logs - Enhanced with filtering and following options
- nself status - Beautiful formatted output with health indicators
- nself update - Self-update capability with version checking
Database Tools
- Automatic schema synchronization
- Database migration support
- Seed data management
- DBML schema generation and documentation
🛠️ Breaking Changes
- Command behavior changes:
- nself init no longer generates project files (use build for that)
- Configuration now uses smart defaults instead of requiring all variables - Directory structure:
- Core logic moved from /bin to /src
- Templates relocated to /src/templates
- Libraries organized under /src/lib - Environment files:
- .env.local is now for user overrides only
- .env.example serves as complete reference
- System works with empty/missing .env.local
📦 What's Included
- Complete PostgreSQL setup with automatic initialization
- Hasura GraphQL engine with full metadata management
- Nginx reverse proxy with SSL and routing
- Nhost Auth service for authentication
- Nhost Storage service for file management
- MinIO for S3-compatible storage
- Redis support (optional)
- Microservices scaffolding (NestJS, Go, Python)
- Comprehensive CLI with 15+ commands
- Full Docker Compose orchestration
- Development and production configurations
🚀 Quick Start
Install nself
curl -fsSL https://raw.githubusercontent.com/acamarata/nself/main/install.sh | bash
Initialize a new project (creates env files only)
nself init
Build the project structure
nself build
Start everything with smart defaults
nself up
Check service status
nself status
That's it! No configuration needed for basic usage.
📝 Migration from Previous Versions
If upgrading from earlier versions:
- Back up your .env.local file
- Run nself reset to clean old generated files
- Run nself init to get new env templates
- Copy only your customizations to new .env.local
- Run nself build to generate with new structure
- Run nself up to start services
🙏 Acknowledgments
This release represents a complete rewrite focusing on developer experience and
simplicity. The smart defaults system means you can get started immediately while
still having full control when needed.
📊 Stats
- 35 commits since project inception
- 50+ files refactored or created
- 15+ CLI commands available
- 6 programming languages supported for microservices
- Zero configuration required to start
🔗 Resources
- Repository: https://github.com/acamarata/nself
- Issues: https://github.com/acamarata/nself/issues
- Wiki: https://github.com/acamarata/nself/wiki
- Docs: https://www.nself.org/docs or README.md
Full Changelog: This release consolidates all previous development into a clean,
modular architecture with smart defaults.