How to Manually Force a Specific Hardware Tier During Dream Server Installation
Pass the --tier flag or set the TIER environment variable before running the installer to override automatic hardware detection and select your preferred configuration.
Dream Server from the Light-Heart-Labs/DreamServer repository automatically analyzes your GPU and system resources to assign a performance tier, but you can manually force a specific hardware tier during installation when you need precise control over model selection and resource allocation.
Understanding Dream Server Hardware Tiers
Dream Server organizes hardware capabilities into numbered tiers (0-4) and specialized tier names that determine which AI models get downloaded and how much VRAM gets allocated.
Available Tier Options
- 0 – Lightweight (8 GB VRAM, 2B parameter models)
- 1 – Entry Level (8 GB VRAM, 9B parameter models)
- 2 – Prosumer (12 GB VRAM, 9B models with larger context)
- 3 – Pro (24 GB VRAM, 30B parameter models)
- 4 – Enterprise (48 GB VRAM or dual-GPU setup, 30B models)
- CLOUD – Optimized for cloud deployment
- NV_ULTRA – NVIDIA Ultra configuration
- SH_LARGE / SH_COMPACT – Specialized form factors
- ARC / ARC_LITE – Intel Arc GPU configurations
As implemented in tier-map.sh lines 46-85, each tier maps to specific GGUF model files and context window sizes.
Method 1: Using the --tier Command-Line Flag
The installer accepts --tier as a command-line argument parsed in install-core.sh (lines 86-90). This flag stores the value in the TIER variable and skips the automatic hardware detection phase.
# Force Tier 2 (Prosumer) with voice features enabled
./install.sh --tier 2 --voice
# Force Tier 3 (Pro) with all components installed non-interactively
./install.sh --tier 3 --all --non-interactive
The install.sh wrapper passes all arguments to the core installation logic, so you can combine --tier with any other supported flags such as --all, --no-voice, or --non-interactive.
Method 2: Setting the TIER Environment Variable
For automated deployments, CI/CD pipelines, or scripted installations, export the TIER environment variable before invoking the installer. This method achieves the same result as the --tier flag.
# Export and run in one command
TIER=NV_ULTRA ./install.sh --voice
# Export for the session
export TIER=ARC_LITE
./install.sh --no-voice
# Use in CI configuration
export TIER=3
./install.sh --non-interactive
According to the source code in install-core.sh, the installer checks for this variable at line 89 before proceeding to hardware detection.
How the Installer Processes Tier Overrides
When you supply a manual tier selection, the installer follows this execution flow:
-
Argument Parsing – In
install-core.sh, the script captures--tierand assigns it to theTIERvariable (lines 86-90). -
Detection Bypass – The
detect_gpufunction ininstallers/lib/detection.shchecks for the presence ofTIER. If found, it skips automatic hardware probing and adds the tier flag to resume arguments for potential reboot scenarios. -
Configuration Resolution – The
resolve_tier_configfunction intier-map.sh(lines 46-85) reads theTIERvalue and selects the appropriate model weights, GGUF quantization level, and context size, completely bypassing the auto-selection logic.
Complete Installation Examples
Here are practical commands for common scenarios:
# Force Entry Level tier on a shared server with limited resources
./install.sh --tier 1 --no-voice
# Force Enterprise tier for high-performance inference
./install.sh --tier 4 --all
# Force Cloud configuration in a containerized environment
export TIER=CLOUD
./install.sh --non-interactive
# Force Intel Arc Lite for specific GPU architecture
TIER=ARC_LITE ./install.sh
Verification and Troubleshooting
After the detection phase runs, the installer logs the selected tier to stdout:
[INFO] Tier forced to: 2 (Prosumer)
This message appears early in the installation output because install-core.sh passes the tier value immediately to the detection library. If you see this log entry followed by your expected tier number, the override succeeded.
If the installer still attempts hardware detection despite setting a tier, verify that:
- You placed
--tierbefore any positional arguments when using the flag method - The
TIERenvironment variable is exported in the current shell session, not just set locally - You are running the command from the
dream-serverdirectory whereinstall.shresides
Summary
- Dream Server supports numbered tiers 0-4 and specialized names like
CLOUD,NV_ULTRA, andARC_LITE. - Override automatic detection by passing
--tier VALUEtoinstall.shor exportingTIER=VALUEbefore execution. - The
install-core.shscript parses these inputs at lines 86-90, storing them in theTIERvariable. - The
resolve_tier_configfunction intier-map.shmaps your selection to specific model configurations. - Verify successful tier forcing by checking for the
[INFO] Tier forced to:log entry during installation.
Frequently Asked Questions
What happens if I specify an invalid tier name?
The installer validates tier inputs during the resolution phase in tier-map.sh. If you provide an unrecognized tier value, the installation will fail with an error message listing valid options before attempting to download any model files.
Can I change the tier after installation without reinstalling?
The tier selection primarily determines which GGUF model files download during the initial setup. To change tiers post-installation, you must re-run the installer script with the new --tier value, which triggers resolve_tier_config to pull the appropriate model weights for your new selection.
Does forcing a tier skip all hardware checks?
When TIER is set, the detect_gpu function in detection.sh bypasses the hardware capability analysis that would normally assign automatic tiers. However, basic system compatibility checks still run to ensure the platform can execute the core Dream Server binaries.
Why would I force a lower tier than my hardware supports?
Forcing a lower tier reduces VRAM requirements and enables larger context windows or concurrent operations on powerful hardware. This is useful when running Dream Server alongside other GPU-intensive applications, or when you specifically need smaller model variants for testing or latency-sensitive deployments.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →