openboatmobile-ai/README.md
CeeLo Greenheart a593af9b27 Initial commit - Clean public release
Sanitized for public release:
- Removed all API keys, tokens, and secrets
- Removed personal Discord IDs from hermes-openclaw.json
- Updated git URLs to be generic placeholders
- All sensitive data uses environment variable interpolation
2026-04-22 19:13:28 +00:00

175 lines
4.7 KiB
Markdown

# OpenBoatmobile
**Deploy OpenClaw agents to Hetzner Cloud or DigitalOcean with one command.**
OpenBoatmobile is a reusable, distributable Terraform repository for spinning up AI agent infrastructure. Choose your provider, set your secrets, and deploy.
## Features
- **Provider-agnostic**: Deploy to Hetzner Cloud or DigitalOcean
- **Full automation**: Server provisioning and either OpenClaw or Hermes installation
- **Tailscale integration**: Secure remote access without exposing ports
- **Secrets management**: Environment-based, no secrets in git
- **One agent focus**: Clean single-agent deployments
- **Discord connectivity**: Quick setup for Discord bot during deployment
## Quick Start
```bash
# Clone
git clone https://github.com/YOUR_USERNAME/openboatmobile-ai.git
cd openboatmobile
# Configure secrets
cp .env.example .env
$EDITOR .env
# Deploy
source .env && terraform init && terraform apply
```
**Documentation:** [GETTING-STARTED.md](docs/GETTING-STARTED.md)
## Cost Comparison
| Provider | Instance | vCPU | RAM | Disk | Price |
|----------|----------|------|-----|------|-------|
| **Hetzner** | cpx21 | 2 | 4 GB | 80 GB | **€4.49/mo** |
| DigitalOcean | s-2vcpu-4gb | 2 | 4 GB | 80 GB | $24/mo |
Hetzner is ~70% cheaper for equivalent specs.
## Documentation
| Document | Purpose |
|----------|---------|
| [GETTING-STARTED.md](docs/GETTING-STARTED.md) | Step-by-step deployment guide |
| [SECRETS.md](docs/SECRETS.md) | Managing API tokens and keys |
| [HETZNER_SETUP.md](docs/HETZNER_SETUP.md) | Hetzner Cloud detailed setup |
| [DIGITALOCEAN_SETUP.md](docs/DIGITALOCEAN_SETUP.md) | DigitalOcean detailed setup |
| [TAILSCALE_SETUP.md](docs/TAILSCALE_SETUP.md) | Secure remote access |
| [DISCORD_SETUP.md](docs/DISCORD_SETUP.md) | Discord bot integration |
| [DOCKER_VS_DIRECT.md](docs/DOCKER_VS_DIRECT.md) | Docker vs direct installation guide |
| [HERMES_DEBUGGING.md](docs/HERMES_DEBUGGING.md) | Debugging Hermes Agent issues |
| [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | Common issues and fixes |
## Usage
### 1. Prerequisites
- Terraform >= 1.5.4
- SSH key pair
- Hetzner or DigitalOcean API token
- API key for Venice AI or alternative inference provider
- (Optional) Tailscale auth key
- (Optional) Discord bot token and private server
### 2. Configure Secrets
```bash
cp .env.example .env
$EDITOR .env
```
Required:
```bash
TF_VAR_cloud_provider=hetzner # or digitalocean
TF_VAR_hcloud_token=your-hetzner-token # for Hetzner
TF_VAR_venice_api_key=your-venice-key
TF_VAR_ssh_key_names='["your-key-name"]'
```
Optional:
```bash
TF_VAR_docker_enabled=true # Set to false for direct installation (no Docker)
```
Recommended:
```bash
TF_VAR_enable_tailscale=true
TF_VAR_tailscale_auth_key=tskey-auth-xxxxx
```
### 3. Deploy
```bash
source .env
terraform init
terraform plan
terraform apply
```
### 4. Connect
```bash
# SSH (from Terraform output - username varies by framework)
# For Hermes: ssh hermes@<SERVER_IP>
# For OpenClaw: ssh openclaw@<SERVER_IP>
ssh <USERNAME>@<SERVER_IP>
# Run OpenClaw onboarding (OpenClaw framework only)
openclaw onboard --install-daemon
# If using Tailscale
sudo tailscale serve --bg 18789
```
## Configuration
See [examples/terraform.tfvars.example](examples/terraform.tfvars.example)
## Project Structure
```
openboatmobile/
├── main.tf # Provider selector
├── variables.tf # Input variables
├── outputs.tf # Deployment outputs
├── cloudinit.tf # Cloud-init config generator
├── providers/
│ ├── digitalocean.tf # DO-specific resources
│ └── hetzner.tf # Hetzner-specific resources
├── templates/
│ └── userdata.tpl # Cloud-init script
├── examples/
│ └── terraform.tfvars.example
├── docs/
│ ├── GETTING-STARTED.md
│ ├── SECRETS.md
│ ├── HETZNER_SETUP.md
│ ├── DIGITALOCEAN_SETUP.md
│ ├── TAILSCALE_SETUP.md
│ ├── DISCORD_SETUP.md
│ └── TROUBLESHOOTING.md
├── .env.example # Secrets template
├── .gitignore
└── README.md
```
## Security
OpenBoatmobile deploys with security best practices:
| Feature | Description |
|---------|-------------|
| Loopback binding | Gateway binds to 127.0.0.1 only |
| Firewall | SSH-only inbound |
| fail2ban | Brute force protection |
| Auto-updates | Unattended security patches |
| Non-root user | Deploy with dedicated OS user (`hermes` or `openclaw` based on framework) |
| Tailscale | No public HTTPS exposure |
## Support
- [OpenClaw docs](https://docs.openclaw.ai)
- [Hermes docs](https://hermes-agent.nousresearch.com/docs/)
## License
Apache 2.0
## Origin
OpenBoatmobile is part of the **Krusty Planet** project — infrastructure for AI agent deployments.
---