···11- ๐ **Download and boot from URLs**: Automatically downloads ISO images from
12 remote URLs
13- ๐ **Local file support**: Boot from local ISO files
000014- โก **Zero configuration**: Works out of the box with sensible defaults
15- ๐ฅ๏ธ **Serial console**: Configured for headless operation with stdio console
16- ๐ **Network ready**: Pre-configured with SSH port forwarding (host:2222 โ
17 guest:22)
18- ๐พ **Smart caching**: Automatically skips re-downloading existing ISO files
01920## ๐ Prerequisites
21···5051## ๐ Quick Start
5253-### Boot from URL (Recommended)
5455-Download and boot the latest FreeBSD release:
000000000000000000005657```bash
58./main.ts https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/15.0/FreeBSD-15.0-BETA3-amd64-disc1.iso
···64./main.ts /path/to/your/freebsd.iso
65```
660000000067### Alternative Execution Methods
6869If the script isn't executable, you can run it directly with Deno:
7071```bash
72-deno run --allow-run --allow-read --allow-env main.ts <iso-path-or-url>
73```
7475## ๐ฅ๏ธ Console Setup
···94- **Memory**: 2GB RAM
95- **Cores**: 2 virtual CPUs
96- **Network**: User mode networking with SSH forwarding
97-- **Console**: Serial console via stdio
09899## ๐ง Customization
100···110 "2G", // Change memory
111 "-smp",
112 "2", // Change CPU cores
0000113 // ... other options
114 ],
115 // ...
116});
117```
000000000000118119## ๐ Project Structure
120
···11- ๐ **Download and boot from URLs**: Automatically downloads ISO images from
12 remote URLs
13- ๐ **Local file support**: Boot from local ISO files
14+- ๐ท๏ธ **Version shortcuts**: Simply specify a version like `14.3-RELEASE` to
15+ auto-download
16+- ๐ฏ **Smart defaults**: Run without arguments to boot the latest stable release
17+ (FreeBSD 14.3-RELEASE)
18- โก **Zero configuration**: Works out of the box with sensible defaults
19- ๐ฅ๏ธ **Serial console**: Configured for headless operation with stdio console
20- ๐ **Network ready**: Pre-configured with SSH port forwarding (host:2222 โ
21 guest:22)
22- ๐พ **Smart caching**: Automatically skips re-downloading existing ISO files
23+- ๐ **Help support**: Built-in help with `--help` or `-h` flags
2425## ๐ Prerequisites
26···5556## ๐ Quick Start
5758+### Default Usage (Easiest)
5960+Simply run without any arguments to boot the latest stable FreeBSD release:
61+62+```bash
63+./main.ts
64+```
65+66+This will automatically download and boot FreeBSD 14.3-RELEASE.
67+68+### Boot with Version Shortcut
69+70+Specify just a version to auto-download and boot:
71+72+```bash
73+./main.ts 14.3-RELEASE
74+./main.ts 15.0-BETA3
75+./main.ts 13.4-RELEASE
76+```
77+78+### Boot from URL
79+80+Download and boot from a specific URL:
8182```bash
83./main.ts https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/15.0/FreeBSD-15.0-BETA3-amd64-disc1.iso
···89./main.ts /path/to/your/freebsd.iso
90```
9192+### Get Help
93+94+```bash
95+./main.ts --help
96+# or
97+./main.ts -h
98+```
99+100### Alternative Execution Methods
101102If the script isn't executable, you can run it directly with Deno:
103104```bash
105+deno run --allow-run --allow-read --allow-env main.ts [options]
106```
107108## ๐ฅ๏ธ Console Setup
···127- **Memory**: 2GB RAM
128- **Cores**: 2 virtual CPUs
129- **Network**: User mode networking with SSH forwarding
130+- **Console**: Enhanced serial console via stdio with proper signal handling
131+- **Default Version**: FreeBSD 14.3-RELEASE (when no arguments provided)
132133## ๐ง Customization
134···144 "2G", // Change memory
145 "-smp",
146 "2", // Change CPU cores
147+ "-chardev",
148+ "stdio,id=con0,signal=off", // Enhanced console handling
149+ "-serial",
150+ "chardev:con0",
151 // ... other options
152 ],
153 // ...
154});
155```
156+157+### Supported Version Formats
158+159+The script automatically recognizes and handles these version formats:
160+161+- `14.3-RELEASE` - Stable releases
162+- `15.0-BETA3` - Beta versions
163+- `13.4-RC1` - Release candidates
164+- Any format matching: `X.Y-RELEASE|BETAX|RCX`
165+166+To change the default version when no arguments are provided, modify the
167+`DEFAULT_VERSION` constant in `main.ts`.
168169## ๐ Project Structure
170