# Install This directory is reserved for ordered, idempotent installation scripts for Atlas. Phase 2A provides the shared Bash framework and a bootstrap scaffold. It does not install .NET, SQL Server, nginx, Docker, or other future platform components. ## What Belongs Here - Bootstrap scripts. - Package installation scripts. - Service installation scripts. - Storage, runtime, and tooling setup scripts. - Validation wrappers for installation phases. - Shared Bash framework libraries under `lib/`. - Component manifests under `manifests/`. ## What Must Not Be Stored Here - Secrets, passwords, tokens, private keys, or live credentials. - One-off experiments. - Generated logs. - Downloaded package caches. - Application source code. - Deployment artefacts. ## Naming Conventions Future phase scripts should use a two-digit numeric prefix followed by a short lower-case hyphenated name: ```text phases/10-dotnet.sh phases/20-sql-server.sh phases/30-nginx.sh phases/40-docker.sh phases/90-validate-platform.sh ``` Scripts must follow [SERVER-STANDARDS.md](../SERVER-STANDARDS.md). ## Expected Future Structure Current Phase 2A structure: ```text bootstrap.sh lib/ manifests/ phases/ ``` Current Phase 2 installer: ```bash install/phases/10-dotnet.sh ``` The .NET installer installs only the required .NET SDK packages and verifies them with `dotnet --list-sdks`. Current installed SDKs: - .NET 8 SDK `8.0.128` - .NET 10 SDK `10.0.109` .NET 8 is installed from the official Ubuntu .NET backports PPA. .NET 10 is installed from the built-in Ubuntu package feeds. Runtime output belongs outside the repository: - `/var/log/atlas/install/` - `/var/log/atlas/reports/` - `/var/lib/atlas/` ## Security Considerations - Use `sudo` only for commands that need it. - Do not print secrets. - Do not embed credentials. - Validate package sources and signing keys. - Make scripts safe to rerun.