106 lines
2.4 KiB
Markdown
106 lines
2.4 KiB
Markdown
# BitNet s9pk Package
|
|
|
|
StartOS package for BitNet LLM with SSH access.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
bitnet-s9pk/
|
|
├── Dockerfile # Extended BitNet image with SSH
|
|
├── docker_entrypoint.sh # Entrypoint script for SSH setup
|
|
├── manifest.yaml # StartOS package manifest
|
|
├── instructions.md # User-facing instructions
|
|
├── Makefile # Build automation
|
|
├── scripts/
|
|
│ ├── config_get.sh # Config schema
|
|
│ ├── config_set.sh # Config application
|
|
│ ├── properties.sh # Package properties
|
|
│ └── health_check.sh # Health check script
|
|
└── assets/
|
|
└── icon.png # Package icon (TODO)
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
- Docker access (local or remote via SSH to MacBook)
|
|
- `start-cli` installed and authenticated
|
|
- Developer key at `/data/.startos/developer.key.pem`
|
|
|
|
## Building
|
|
|
|
### Option 1: Using Makefile (Recommended)
|
|
|
|
```bash
|
|
cd /data/.openclaw/workspace/bitnet-s9pk
|
|
make
|
|
```
|
|
|
|
This will:
|
|
1. Build the Docker image on remote Docker (MacBook)
|
|
2. Export it as `image.tar`
|
|
3. Pack everything into `bitnet.s9pk`
|
|
|
|
### Option 2: Manual Build
|
|
|
|
```bash
|
|
# Build image on MacBook
|
|
docker -H ssh://macbook build --platform linux/amd64 \
|
|
--tag start9/bitnet/main:1.0.0 \
|
|
-o type=docker,dest=image.tar .
|
|
|
|
# Pack the s9pk
|
|
start-cli s9pk pack --arch aarch64 --arch x86_64 .
|
|
```
|
|
|
|
## Installing
|
|
|
|
```bash
|
|
# Install on your StartOS server
|
|
start-cli package install bitnet.s9pk
|
|
|
|
# Or use make
|
|
make install
|
|
```
|
|
|
|
## Configuration After Install
|
|
|
|
1. Go to BitNet service in StartOS UI
|
|
2. Navigate to **Config** tab
|
|
3. Paste your SSH public key
|
|
4. Save and restart the service
|
|
|
|
## Connecting via SSH
|
|
|
|
```bash
|
|
# Via Tor (get address from Interfaces tab)
|
|
ssh -o ProxyCommand="nc -x localhost:9050 %h %p" root@your-bitnet-address.onion
|
|
|
|
# Via LAN
|
|
ssh root@your-server-lan-ip -p <port>
|
|
```
|
|
|
|
## Using BitNet
|
|
|
|
Once connected:
|
|
|
|
```bash
|
|
# Run inference
|
|
python3 /BitNet/run_inference.py -m ggml-model-i2_s.gguf -p "Hello, world!"
|
|
|
|
# See help
|
|
python3 /BitNet/run_inference.py --help
|
|
```
|
|
|
|
## TODO
|
|
|
|
- [ ] Add proper icon.png (512x512)
|
|
- [ ] Test on actual StartOS hardware
|
|
- [ ] Add model download action
|
|
- [ ] Volume mount for custom models
|
|
|
|
## References
|
|
|
|
- BitNet: https://github.com/microsoft/BitNet
|
|
- Container: https://github.com/kth8/bitnet
|
|
- StartOS Docs: https://docs.start9.com/latest/developer-docs/
|