165 lines
7.4 KiB
Markdown
165 lines
7.4 KiB
Markdown
# Advanced Settings Wizard Reference
|
|
|
|
## Overview
|
|
|
|
The Advanced Settings wizard provides a 28-step interactive configuration for LXC container creation. It allows users to customize every aspect of the container while inheriting sensible defaults from the CT script.
|
|
|
|
## Key Features
|
|
|
|
- **Inherit App Defaults**: All `var_*` values from CT scripts pre-populate wizard fields
|
|
- **Back Navigation**: Press Cancel/Back to return to previous step
|
|
- **App Default Hints**: Each dialog shows `(App default: X)` to indicate script defaults
|
|
- **Full Customization**: Every configurable option is accessible
|
|
|
|
## Wizard Steps
|
|
|
|
| Step | Title | Variable(s) | Description |
|
|
| ---- | ------------------------ | --------------------------------- | ----------------------------------------------------- |
|
|
| 1 | Container Type | `var_unprivileged` | Privileged (0) or Unprivileged (1) container |
|
|
| 2 | Root Password | `var_pw` | Set password or use automatic login |
|
|
| 3 | Container ID | `var_ctid` | Unique container ID (auto-suggested) |
|
|
| 4 | Hostname | `var_hostname` | Container hostname |
|
|
| 5 | Disk Size | `var_disk` | Disk size in GB |
|
|
| 6 | CPU Cores | `var_cpu` | Number of CPU cores |
|
|
| 7 | RAM Size | `var_ram` | RAM size in MiB |
|
|
| 8 | Network Bridge | `var_brg` | Network bridge (vmbr0, etc.) |
|
|
| 9 | IPv4 Configuration | `var_net`, `var_gateway` | DHCP or static IP with gateway |
|
|
| 10 | IPv6 Configuration | `var_ipv6_method` | Auto, DHCP, Static, or None |
|
|
| 11 | MTU Size | `var_mtu` | Network MTU (default: 1500) |
|
|
| 12 | DNS Search Domain | `var_searchdomain` | DNS search domain |
|
|
| 13 | DNS Server | `var_ns` | Custom DNS server IP |
|
|
| 14 | MAC Address | `var_mac` | Custom MAC address (auto-generated if empty) |
|
|
| 15 | VLAN Tag | `var_vlan` | VLAN tag ID |
|
|
| 16 | Tags | `var_tags` | Container tags (comma/semicolon separated) |
|
|
| 17 | SSH Settings | `var_ssh` | SSH key selection and root access |
|
|
| 18 | FUSE Support | `var_fuse` | Enable FUSE for rclone, mergerfs, AppImage |
|
|
| 19 | TUN/TAP Support | `var_tun` | Enable for VPN apps (WireGuard, OpenVPN, Tailscale) |
|
|
| 20 | Nesting Support | `var_nesting` | Enable for Docker, LXC in LXC, Podman |
|
|
| 21 | GPU Passthrough | `var_gpu` | Auto-detect and pass through Intel/AMD/NVIDIA GPUs |
|
|
| 22 | Keyctl Support | `var_keyctl` | Enable for Docker, systemd-networkd |
|
|
| 23 | APT Cacher Proxy | `var_apt_cacher`, `var_apt_cacher_ip` | Use apt-cacher-ng for faster downloads |
|
|
| 24 | Container Timezone | `var_timezone` | Set timezone (e.g., Europe/Berlin) |
|
|
| 25 | Container Protection | `var_protection` | Prevent accidental deletion |
|
|
| 26 | Device Node Creation | `var_mknod` | Allow mknod (experimental, kernel 5.3+) |
|
|
| 27 | Mount Filesystems | `var_mount_fs` | Allow specific mounts: nfs, cifs, fuse, etc. |
|
|
| 28 | Verbose Mode & Confirm | `var_verbose` | Enable verbose output + final confirmation |
|
|
|
|
## Default Value Inheritance
|
|
|
|
The wizard inherits defaults from multiple sources:
|
|
|
|
```text
|
|
CT Script (var_*) → default.vars → app.vars → User Input
|
|
```
|
|
|
|
### Example: VPN Container (alpine-wireguard.sh)
|
|
|
|
```bash
|
|
# CT script sets:
|
|
var_tun="${var_tun:-1}" # TUN enabled by default
|
|
|
|
# In Advanced Settings Step 19:
|
|
# Dialog shows: "(App default: 1)" and pre-selects "Yes"
|
|
```
|
|
|
|
### Example: Media Server (jellyfin.sh)
|
|
|
|
```bash
|
|
# CT script sets:
|
|
var_gpu="${var_gpu:-yes}" # GPU enabled by default
|
|
|
|
# In Advanced Settings Step 21:
|
|
# Dialog shows: "(App default: yes)" and pre-selects "Yes"
|
|
```
|
|
|
|
## Feature Matrix
|
|
|
|
| Feature | Variable | When to Enable |
|
|
| ----------------- | ---------------- | --------------------------------------------------- |
|
|
| FUSE | `var_fuse` | rclone, mergerfs, AppImage, SSHFS |
|
|
| TUN/TAP | `var_tun` | WireGuard, OpenVPN, Tailscale, VPN containers |
|
|
| Nesting | `var_nesting` | Docker, Podman, LXC-in-LXC, systemd-nspawn |
|
|
| GPU Passthrough | `var_gpu` | Plex, Jellyfin, Emby, Frigate, Ollama, ComfyUI |
|
|
| Keyctl | `var_keyctl` | Docker (unprivileged), systemd-networkd |
|
|
| Protection | `var_protection` | Production containers, prevent accidental deletion |
|
|
| Mknod | `var_mknod` | Device node creation (experimental) |
|
|
| Mount FS | `var_mount_fs` | NFS mounts, CIFS shares, custom filesystems |
|
|
| APT Cacher | `var_apt_cacher` | Speed up downloads with local apt-cacher-ng |
|
|
|
|
## Confirmation Summary
|
|
|
|
Step 28 displays a comprehensive summary before creation:
|
|
|
|
```text
|
|
Container Type: Unprivileged
|
|
Container ID: 100
|
|
Hostname: jellyfin
|
|
|
|
Resources:
|
|
Disk: 8 GB
|
|
CPU: 2 cores
|
|
RAM: 2048 MiB
|
|
|
|
Network:
|
|
Bridge: vmbr0
|
|
IPv4: dhcp
|
|
IPv6: auto
|
|
|
|
Features:
|
|
FUSE: no | TUN: no
|
|
Nesting: Enabled | Keyctl: Disabled
|
|
GPU: yes | Protection: No
|
|
|
|
Advanced:
|
|
Timezone: Europe/Berlin
|
|
APT Cacher: no
|
|
Verbose: no
|
|
```
|
|
|
|
## Usage Examples
|
|
|
|
### Skip to Advanced Settings
|
|
|
|
```bash
|
|
# Run script, select "Advanced" from menu
|
|
bash -c "$(curl -fsSL https://...jellyfin.sh)"
|
|
# Then select option 3 "Advanced"
|
|
```
|
|
|
|
### Pre-set Defaults via Environment
|
|
|
|
```bash
|
|
# Set defaults before running
|
|
export var_cpu=4
|
|
export var_ram=4096
|
|
export var_gpu=yes
|
|
bash -c "$(curl -fsSL https://...jellyfin.sh)"
|
|
# Advanced settings will inherit these values
|
|
```
|
|
|
|
### Non-Interactive with All Options
|
|
|
|
```bash
|
|
# Set all variables for fully automated deployment
|
|
export var_unprivileged=1
|
|
export var_cpu=2
|
|
export var_ram=2048
|
|
export var_disk=8
|
|
export var_net=dhcp
|
|
export var_fuse=no
|
|
export var_tun=no
|
|
export var_gpu=yes
|
|
export var_nesting=1
|
|
export var_protection=no
|
|
export var_verbose=no
|
|
bash -c "$(curl -fsSL https://...jellyfin.sh)"
|
|
```
|
|
|
|
## Notes
|
|
|
|
- **Cancel at Step 1**: Exits the script entirely
|
|
- **Cancel at Steps 2-28**: Goes back to previous step
|
|
- **Empty fields**: Use default value
|
|
- **Keyctl**: Automatically enabled for unprivileged containers
|
|
- **Nesting**: Enabled by default (required for many apps)
|