Project Configuration
Project configuration in Azu CLI manages project-specific settings, metadata, and build configurations. This includes project name, version, dependencies, build settings, and other project-wide options.
Overview
Project configuration is stored in multiple files and locations:
shard.yml: Crystal project metadata and dependenciesconfig/azu.yml: Azu-specific project configurationconfig/application.yml: Application-wide settings.env: Local environment variables (optional)
Project Metadata
Shard Configuration (shard.yml)
shard.yml)The shard.yml file contains Crystal project metadata and dependencies:
name: my-azu-app
version: 0.1.0
authors:
- Your Name <your.email@example.com>
targets:
my-azu-app:
main: src/main.cr
dependencies:
azu:
github: azutoolkit/azu
version: ~> 0.1.0
cql:
github: azutoolkit/cql
version: ~> 0.1.0
topia:
github: azutoolkit/topia
version: ~> 0.1.0
development_dependencies:
spec2:
github: waterlink/spec2.cr
version: ~> 0.1.0
crystal: ">= 1.0.0"
license: MITProject Configuration (config/azu.yml)
config/azu.yml)The main Azu project configuration file:
Project Structure Configuration
Directory Layout
Configure the project directory structure:
Custom Directory Configuration
Override default directory paths:
Build Configuration
Compilation Settings
Configure Crystal compilation options:
Development Build
Development-specific build settings:
Production Build
Production build configuration:
Dependency Management
Crystal Dependencies
Manage Crystal shard dependencies:
External Dependencies
Configure external system dependencies:
Testing Configuration
Test Framework Settings
Configure testing framework and options:
Code Quality
Configure code quality tools:
Documentation Configuration
API Documentation
Configure API documentation generation:
Deployment Configuration
Deployment Settings
Configure deployment options:
Environment-Specific Configuration
Development Environment
Test Environment
Production Environment
Configuration Commands
Project Configuration Commands
Azu CLI provides commands for managing project configuration:
Configuration Management
Best Practices
Configuration Organization
Separate Concerns: Keep different types of configuration separate
Environment Variables: Use environment variables for sensitive data
Default Values: Provide sensible defaults for all settings
Validation: Validate configuration at startup
Documentation: Document all configuration options
Security
Secrets Management: Never commit secrets to version control
Environment Variables: Use environment variables for sensitive data
Access Control: Restrict access to configuration files
Validation: Validate configuration values
Performance
Lazy Loading: Load configuration only when needed
Caching: Cache configuration values
Validation: Validate configuration once at startup
Optimization: Use appropriate build settings for each environment
Related Documentation
Configuration Overview - General configuration guide
Database Configuration - Database-specific configuration
Development Server Configuration - Development server settings
Generator Configuration - Code generation configuration
Environment Variables - Environment variable reference
Last updated