79 lines
1.9 KiB
Markdown

# 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.