Merge branch 'development_kristof10' of https://github.com/freeflowuniverse/herolib into development_kristof10
This commit is contained in:
41
examples/threefold/tfgrid3deployer/open_webui_gw/open_webui_gw.vsh
Executable file
41
examples/threefold/tfgrid3deployer/open_webui_gw/open_webui_gw.vsh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env -S v -gc none -no-retry-compilation -d use_openssl -enable-globals -cg run
|
||||
|
||||
//#!/usr/bin/env -S v -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals -cg run
|
||||
import freeflowuniverse.herolib.threefold.gridproxy
|
||||
import freeflowuniverse.herolib.threefold.tfgrid3deployer
|
||||
import freeflowuniverse.herolib.installers.threefold.griddriver
|
||||
import os
|
||||
import time
|
||||
|
||||
griddriver.install()!
|
||||
|
||||
v := tfgrid3deployer.get()!
|
||||
println('cred: ${v}')
|
||||
|
||||
deployment_name := 'openwebui_example'
|
||||
mut deployment := tfgrid3deployer.new_deployment(deployment_name)!
|
||||
|
||||
deployment.add_machine(
|
||||
name: 'vm1'
|
||||
cpu: 1
|
||||
memory: 16
|
||||
planetary: true
|
||||
size: 100 // 10 gig
|
||||
flist: 'https://hub.grid.tf/mariobassem1.3bot/docker.io-threefolddev-open_webui-latest.flist'
|
||||
)
|
||||
deployment.deploy()!
|
||||
|
||||
vm1 := deployment.vm_get('vm1')!
|
||||
println('vm1 info: ${vm1}')
|
||||
|
||||
deployment.add_webname(
|
||||
name: 'openwebui'
|
||||
backend: 'http://${vm1.wireguard_ip}:8080'
|
||||
use_wireguard_network: true
|
||||
)
|
||||
deployment.deploy()!
|
||||
|
||||
gw1 := deployment.webname_get('openwebui')!
|
||||
println('gw info: ${gw1}')
|
||||
|
||||
// tfgrid3deployer.delete_deployment(deployment_name)!
|
||||
53
examples/threefold/tfgrid3deployer/open_webui_gw/readme.md
Normal file
53
examples/threefold/tfgrid3deployer/open_webui_gw/readme.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# OpenWebUI Deployment on ThreeFold Grid
|
||||
|
||||
## Overview
|
||||
This script automates the deployment of an OpenWebUI instance on the ThreeFold Grid using the `tfgrid3deployer` module. It sets up a virtual machine (VM), configures networking, and assigns a webname for easy access.
|
||||
|
||||
## Requirements
|
||||
- V compiler installed
|
||||
- OpenSSL support enabled
|
||||
- herolib dependencies:
|
||||
- `freeflowuniverse.herolib.threefold.gridproxy`
|
||||
- `freeflowuniverse.herolib.threefold.tfgrid3deployer`
|
||||
- `freeflowuniverse.herolib.installers.threefold.griddriver`
|
||||
|
||||
## Installation
|
||||
Ensure you have the required dependencies installed. The script will automatically install the `griddriver` before proceeding.
|
||||
|
||||
## Usage
|
||||
Run the script using the following command:
|
||||
|
||||
```sh
|
||||
./open_webui_gw.vsh
|
||||
```
|
||||
|
||||
### Script Execution Steps
|
||||
1. Installs the necessary ThreeFold Grid driver.
|
||||
2. Retrieves credentials for deployment.
|
||||
3. Creates a new deployment named `openwebui_example`.
|
||||
4. Adds a VM with the following specifications:
|
||||
- 1 CPU
|
||||
- 16GB RAM
|
||||
- 100GB storage
|
||||
- Uses planetary networking
|
||||
- Deploys OpenWebUI from the ThreeFold Hub.
|
||||
5. Deploys the VM.
|
||||
6. Retrieves VM information.
|
||||
7. Configures a webname (`openwebui`) pointing to the VM's backend.
|
||||
8. Deploys the webname for public access.
|
||||
9. Retrieves and displays webname gateway details.
|
||||
|
||||
## Cleanup
|
||||
To delete the deployment, run the following line in the script:
|
||||
|
||||
```v
|
||||
tfgrid3deployer.delete_deployment(deployment_name)!
|
||||
```
|
||||
|
||||
|
||||
## Gateway Information
|
||||
The gateway points to the WireGuard IP of the VM on port 8080, which is the port that the OpenWebUI server is listening on.
|
||||
|
||||
## Notes
|
||||
- Ensure you have a valid ThreeFold Grid account and necessary permissions to deploy resources.
|
||||
- Adjust VM specifications based on your requirements.
|
||||
Reference in New Issue
Block a user