debian-forge/config/README.md
robojerk 0e9754eec1
Some checks are pending
Checks / Spelling (push) Waiting to run
Checks / Python Linters (push) Waiting to run
Checks / Shell Linters (push) Waiting to run
Checks / 📦 Packit config lint (push) Waiting to run
Checks / 🔍 Check for valid snapshot urls (push) Waiting to run
Checks / 🔍 Check JSON files for formatting consistency (push) Waiting to run
Generate / Documentation (push) Waiting to run
Generate / Test Data (push) Waiting to run
Tests / Unittest (push) Waiting to run
Tests / Assembler test (legacy) (push) Waiting to run
Tests / Smoke run: unittest as normal user on default runner (push) Waiting to run
Update Debian support policy: Debian 13+ (Trixie and newer) only
2025-08-26 16:02:01 -07:00

184 lines
5.2 KiB
Markdown

# Debian Forge Configuration
This directory contains configuration files for Debian Forge. The system is designed to be collaborative-friendly, allowing each developer to have their own settings without affecting others.
## Configuration Files
### `debian-forge.conf` (Default Configuration)
- **Purpose**: Default configuration values for the project
- **Status**: Tracked in git (shared by all collaborators)
- **Usage**: Contains sensible defaults and examples
### `debian-forge.local.conf.example` (Template)
- **Purpose**: Template for local configuration
- **Status**: Tracked in git (shared template)
- **Usage**: Copy this file to create your local configuration
### `debian-forge.local.conf` (Local Configuration)
- **Purpose**: Your personal configuration settings
- **Status**: **NOT tracked in git** (personal to each collaborator)
- **Usage**: Customize this file for your environment
## Quick Start
### 1. Set up your local configuration
```bash
# Create your local configuration file
./tools/debian-forge-config setup
# This copies the example template to config/debian-forge.local.conf
# Edit this file to customize your settings
```
### 2. Configure apt-cacher-ng proxy
```bash
# Set your proxy URL
./tools/debian-forge-config apt-proxy http://localhost:3142
# Or disable proxy
./tools/debian-forge-config apt-proxy none
# Or set via environment variable
export DEBIAN_FORGE_APT_PROXY=http://localhost:3142
```
### 3. View current configuration
```bash
./tools/debian-forge-config show
```
## Configuration Options
### apt-cacher-ng Section
```ini
[apt-cacher-ng]
# Set to your proxy URL, or leave empty to disable
url = http://localhost:3142
```
**Examples:**
- `url = http://localhost:3142` - Local proxy
- `url = http://192.168.1.100:3142` - Network proxy
- `url = http://apt-cache.company.local:3142` - Company proxy
- `url = ` - No proxy (leave empty)
### build Section
```ini
[build]
# We support Debian 13+ (Trixie and newer)
# Current Debian releases:
# - trixie (Debian 13) - STABLE (recommended)
# - forky (Debian 14) - TESTING
# - sid (Debian Unstable) - UNSTABLE (use with caution)
default_suite = trixie
default_arch = amd64
timeout = 3600
jobs = 4
```
**Debian Release Status (as of 2024):**
- **trixie** (Debian 13) - **STABLE** - Recommended for production
- **forky** (Debian 14) - **TESTING** - For development and testing
- **sid** (Debian Unstable) - **UNSTABLE** - Use with caution
- **bookworm** (Debian 12) - **OLDSTABLE** - Limited support
- **bullseye** (Debian 11) - **OLDOLDSTABLE** - Not supported
**Note**: Debian Forge supports **Debian 13+ (Trixie and newer)**. Older releases may have compatibility issues.
### stages Section
```ini
[stages]
apt_update = true
apt_recommends = false
apt_unauthenticated = false
```
## Priority Order
Configuration values are loaded in this priority order (highest to lowest):
1. **Stage options** (passed directly to stages)
2. **Environment variables** (e.g., `DEBIAN_FORGE_APT_PROXY`)
3. **Local configuration** (`debian-forge.local.conf`)
4. **Default configuration** (`debian-forge.conf`)
## Environment Variables
You can override any configuration setting using environment variables:
```bash
# Override apt-cacher-ng proxy
export DEBIAN_FORGE_APT_PROXY=http://localhost:3142
# Override default suite
export DEBIAN_FORGE_DEFAULT_SUITE=forky
# Override default architecture
export DEBIAN_FORGE_DEFAULT_ARCH=arm64
```
## CLI Tool Usage
The `debian-forge-config` tool provides several commands:
```bash
# Set up local configuration
./tools/debian-forge-config setup
# Show current configuration
./tools/debian-forge-config show
# Set apt-cacher-ng proxy
./tools/debian-forge-config apt-proxy http://localhost:3142
# Set any configuration value
./tools/debian-forge-config set build default_suite trixie
```
## Collaboration Workflow
### For New Collaborators:
1. Clone the repository
2. Run `./tools/debian-forge-config setup`
3. Edit `config/debian-forge.local.conf` with your settings
4. Your local settings won't affect others
### For Existing Collaborators:
1. Your `debian-forge.local.conf` is already configured
2. Update settings as needed using the CLI tool
3. Your changes remain local
### For Project Updates:
1. Default configuration changes are tracked in git
2. Your local overrides are preserved
3. You can merge new default settings as needed
## File Locations
- **Default config**: `config/debian-forge.conf`
- **Your local config**: `config/debian-forge.local.conf` (create this)
- **Template**: `config/debian-forge.local.conf.example`
- **CLI tool**: `tools/debian-forge-config`
## Troubleshooting
### Configuration not loading?
- Check that `config/debian-forge.local.conf` exists
- Verify file permissions
- Use `./tools/debian-forge-config show` to debug
### Proxy not working?
- Verify your proxy URL is correct
- Check that apt-cacher-ng is running
- Use environment variable override for testing
### Settings not taking effect?
- Remember the priority order
- Stage options override configuration files
- Use `./tools/debian-forge-config show` to see current values
### Debian version compatibility?
- We support Debian 13+ (Trixie and newer)
- Older releases may have compatibility issues
- Use `trixie` (stable) for production builds
- Use `forky` (testing) for development