Giter Site home page Giter Site logo

webvirtcloud's Introduction

WebVirtCloud

WebVirtCloud is a web-based virtualization platform that allows users to manage and create virtual machines on a remote server. You just need to install WebVirtCloud on a server or even your laptop or PC and you can use it to create, manage, and delete virtual machines. It is a self-hosted alternative to platforms like DigitalOcean, Linode, and Vultr.

Features

  • User management: WebVirtCloud allows you to create and manage users.
  • Virtual machine management: You can create, manage, and delete virtual machines on a remote server.
  • Virtual machine templates: Pre-configured virtual machine templates, such as Ubuntu, Debian, Fedora, CentOS, Almalinux and Rocky Linux.
  • Firewall management: You can manage the firewall rules for your virtual machines.
  • Floating IP management: You can manage floating IPs for your virtual machines.

How it works

We have two components: the controller and the compute. The controller is the web interface that allows you to manage your virtual machines. The compute is the hypervisor that runs the virtual machines.

Recommended setup

We recommend running the controller and the compute on separate servers. The controller can be installed on a server or even your laptop or PC. The compute should be installed on a server with virtualization support (e.g. KVM).

Multi region support

WebVirtCloud supports multi-region. You can have multiple compute nodes in different regions and manage them from the same controller.

Requirements

Controller configuration

To install WebVirtCloud, follow these steps:

  1. Clone the repository:
git clone https://github.com/webvirtcloud/webvirtcloud.git
  1. Change into the webvirtcloud directory:
cd webvirtcloud
  1. Run script for deploy WebVirtCloud:
./webvirtcloud.sh env
  1. Start WebVirtCloud:
./webvirtcloud.sh start
  1. Open client side in browser (example for domain: webvirtcloud.app):
http://client.webvirtcloud.app
  1. Open admin side in browser (example for domain: webvirtcloud.app):
http://manage.webvirtcloud.app

Warning: If you use webvirtcloud.app or your own wildcard domain you need to allow SSL certificate in browser.

For assets:

https://assets.webvirtcloud.app

and for API:

https://api.webvirtcloud.app

Credentials

Default credentials for admin side:

username: [email protected]
password: admin

You can create new user in admin side or register new user in client side.

Update controller

Run script for update:

./webvirtcloud.sh update

** Warning: ** Don't forget update WebVirtCompute daemon on nodes after update controller.

Additional settings

You can change the default settings in the custom.env file. Just copy variables you want to change from the global.env file and change them in the custom.env file. Example for mail settings:

# Email environment variables
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER = admin
EMAIL_HOST_PASSWORD = admin
EMAIL_USE_TLS = True
EMAIL_FROM = "WebVirtCloud <[email protected]>"

Compute configuration (hypervisor)

More information about the compute configuration can be found in the WebVirtCompute repository.

Private networking

If you don't have additional network interfaces on your server for private network, you can use the WireGuard VPN to create a private network between the controller and the compute.

License

WebVirtCloud is licensed under the Apache 2.0 License. See the LICENSE file for more information.

webvirtcloud's People

Contributors

retspen avatar spiritlhls avatar cloudrack-ca avatar romanslonov avatar

Stargazers

DashBing avatar Shiovang avatar  avatar  avatar  avatar WEBZaytsev avatar Leo avatar  avatar  avatar Joe avatar Robert Kubíček avatar  avatar Leo avatar Jonathan C avatar  avatar  avatar  avatar  avatar liudi avatar Chris Hu avatar Beacon Zhang avatar dayu avatar dou avatar  avatar Nyar avatar Dylan avatar 游~游~游 avatar  avatar wanghongxu avatar  avatar  avatar  avatar  avatar iVampireSP.com avatar  avatar Zhou Xin avatar  avatar Webysther Sperandio avatar  avatar  avatar MAO avatar  avatar John avatar Misaka Mikoto avatar  avatar  avatar jack avatar Anthony-Hoo avatar Mohammad Raska avatar  avatar  avatar 星辰 avatar halid avatar 87ouo avatar woodcoding avatar Сергеев Игнатий avatar  avatar LaiQE avatar 红烧猎人 avatar Guo Jia avatar  avatar  avatar Mr.Q avatar rtpacks avatar  avatar fanyz avatar lunksana avatar Lennard Timm avatar WangChuncheng avatar Hai Jin avatar TAIDONG avatar yongjian avatar  avatar Thiago Pereira Ricciardi avatar Jason jie avatar  avatar  avatar Shaobo Lua avatar  avatar 我不是矿神 avatar Emilio P Egido avatar Ing avatar hao avatar  avatar Leon avatar suzhaojun avatar  avatar Spencer Heywood avatar Waters Gao avatar Obet avatar

Watchers

 avatar xuanyuanaosheng avatar  avatar  avatar Hai Jin avatar fanyz avatar  avatar  avatar  avatar

webvirtcloud's Issues

[Feature Requirement] Deployment without domain name

. /webvirtcloud.sh env

Requires the user to enter the domain name

I don't want to use a domain name and only use an IP address with different ports to display the page that corresponds to your

BASE_DOMAIN=webvirtcloud.app
API_DOMAIN=api.webvirtcloud.app
ASSETS_DOMAIN=assets.webvirtcloud.app
CLIENT_DOMAIN=client.webvirtcloud.app
MANAGE_DOMAIN=manage.webvirtcloud.app
CONSOLE_DOMAIN=console.webvirtcloud.app

Local environment testing deployment

After using Docker for service deployment based on the README file, the service status is normal

[root@localhost webvirtcloud]# docker compose ps 
NAME                     IMAGE                    COMMAND                                                         SERVICE     CREATED         STATUS         PORTS
webvirtcloud-backend     webvirtcloud-backend     "gunicorn webvirtcloud.wsgi:application --bind 0.0.0.0:8000"    backend     6 minutes ago   Up 6 minutes   127.0.0.1:8000->8000/tcp
webvirtcloud-frontend    webvirtcloud-frontend    "caddy run --config /etc/caddy/Caddyfile --adapter caddyfile"   frontend    6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 443/udp, 2019/tcp
webvirtcloud-mariadb     mariadb:10.6.10          "docker-entrypoint.sh mariadbd"                                 mariadb     6 minutes ago   Up 6 minutes   3306/tcp
webvirtcloud-novnc       webvirtcloud-novnc       "python3 manage.py novncd --verbose"                            novnc       6 minutes ago   Up 6 minutes   127.0.0.1:6080->6080/tcp
webvirtcloud-rabbitmq    rabbitmq:3.10.13         "docker-entrypoint.sh rabbitmq-server"                          rabbitmq    6 minutes ago   Up 6 minutes   4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp
webvirtcloud-scheduler   webvirtcloud-scheduler   "celery -A webvirtcloud beat -l info"                           scheduler   6 minutes ago   Up 6 minutes   
webvirtcloud-worker      webvirtcloud-worker      "celery -A webvirtcloud worker -l info"                         worker      6 minutes ago   Up 6 minutes   
[root@localhost webvirtcloud]# 

However, I am unable to access my page

I see this configuration,But I don't have a domain name, I'm just testing it locally. How should I configure it

    environment:
      API_DOMAIN: "api.webvirt.cloud"
      ASSETS_DOMAIN: "assets.webvirt.cloud"
      CLIENT_DOMAIN: "client.webvirt.cloud"
      MANAGE_DOMAIN: "manage.webvirt.cloud"
      CONSOLE_DOMAIN: "console.webvirt.cloud"

I modified the configuration to the local IP address, but the front-end service cannot start

[root@localhost webvirtcloud]# docker compose ps
NAME                     IMAGE                    COMMAND                                                        SERVICE     CREATED              STATUS              PORTS
webvirtcloud-backend     webvirtcloud-backend     "gunicorn webvirtcloud.wsgi:application --bind 0.0.0.0:8000"   backend     About a minute ago   Up About a minute   127.0.0.1:8000->8000/tcp
webvirtcloud-mariadb     mariadb:10.6.10          "docker-entrypoint.sh mariadbd"                                mariadb     About a minute ago   Up About a minute   3306/tcp
webvirtcloud-novnc       webvirtcloud-novnc       "python3 manage.py novncd --verbose"                           novnc       About a minute ago   Up About a minute   127.0.0.1:6080->6080/tcp
webvirtcloud-rabbitmq    rabbitmq:3.10.13         "docker-entrypoint.sh rabbitmq-server"                         rabbitmq    About a minute ago   Up About a minute   4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp
webvirtcloud-scheduler   webvirtcloud-scheduler   "celery -A webvirtcloud beat -l info"                          scheduler   About a minute ago   Up About a minute   
webvirtcloud-worker      webvirtcloud-worker      "celery -A webvirtcloud worker -l info"                        worker      About a minute ago   Up About a minute   
[root@localhost webvirtcloud]# 

The following is the log of the front-end service

[root@localhost webvirtcloud]# docker logs -f webvirtcloud-frontend 
{"level":"info","ts":1699889236.6301916,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
Error: adapting config using caddyfile: ambiguous site definition: 192.168.44.128:443
[root@localhost webvirtcloud]# 

Problems with dev environment on testing WebVirtCloud

hello, i come to you today to inform you that i am having some issues with WebVirtCloud. I am hoping you maybe able to assist.

I have currently setup the backend & frontend
image
image

Now I want to of course make a VM how can this be done am i missing a component?

Previously i tried https://github.com/webvirtcloud/webvirtcloud stack and on

git submodule init
git submodule update

Im not authoriezed, So leading me to install as stated above backend

(Backend)

  • installed docker/docker compose
  • installed and setup had to wait around 1-2-5minutes by the way for the database to take up which will thus then allow the command docker compose exec backend python3 manage.py migrate to work which you need to mention in the documentation for some people as they will continue to get an error if they attempt above command without waiting for db to initialize fully.
  • after setup i installed frontend

(frontend)

  • installed the node using nvm and noticed the node was using version 16 if not mistaken so I opted for nvm install 16 as this was the default fresh install v16 was default no need to switch over to it setup --host in package.json for web also setup .env.development configs urls, then went to backend changed password for main user went to front end used password and email and logged in no problem.

now making a vm is the issue at hand, any help at all would mean alot.

also noticed billing integrable situations in WebVirtCloud kind of like a real cloud hosting provider this is really cool and would love to know more about this as well.

webvirtcloud start Error

[root@openeuler webvirtcloud]# ./webvirtcloud.sh start


\ \ / | |\ \ / () | | / | | ___ _ _ | |
\ \ /\ / / _ | '
\ \ / /| | '
| __| | | |/ _ | | | |/ ` |
\ V V | __| |
) \ V / | | | | |
| |
| | () | || | (| |
_/_/ _|_./ _/ ||| _|_||__/ _,|_,|

Building WebVirtCloud...
[+] Building 1100.1s (13/13) FINISHED docker:default
=> [backend internal] load build definition from Dockerfile.backend 0.0s
=> => transferring dockerfile: 1.40kB 0.0s
=> [backend internal] load metadata for docker.io/library/python:3.10-alpine 1.7s
=> [backend internal] load .dockerignore 0.0s
=> => transferring context: 109B 0.0s
=> CACHED [backend backend-deps 1/6] FROM docker.io/library/python:3.10-alpine@sha256:7edffe5acc6a2c4c009fece2fbdc85f04fde4c8481202473b880ef3f8fbb2939 0.0s
=> [backend internal] load build context 0.0s
=> => transferring context: 27.15kB 0.0s
=> [backend backend-deps 2/6] RUN apk add --no-cache gcc g++ pango fontconfig ttf-freefont font-noto terminus-font musl-dev mariadb-dev libffi-dev openssl-dev; fc-cache -f; rm -rf /var/cache/apk/* 477.5s
=> [backend backend-deps 3/6] WORKDIR /requirements 0.1s
=> [backend backend-deps 4/6] COPY ./webvirtbackend/requirements/production.txt /requirements/requirements.txt 0.1s
=> [backend backend-deps 5/6] COPY ./optional-requirements.txt* /requirements/ 0.1s
=> [backend backend-deps 6/6] RUN pip install -U uv; uv pip install --system -r requirements.txt; if [ -e optional-requirements.txt ]; then uv pip install --system -r optional-requirements.txt; fi 619.1s
=> [backend backend 1/2] WORKDIR /backend 0.1s
=> [backend backend 2/2] COPY ./webvirtbackend/ /backend/ 0.1s
=> [backend] exporting to image 1.2s
=> => exporting layers 1.2s
=> => writing image sha256:e7243c989f16ffbd48fe5b3b6efeea29d471c66848211042d28af37ed735937a 0.0s
=> => naming to docker.io/library/webvirtcloud-backend 0.0s
Start WebVirtCloud...
[+] Running 7/8
✔ Container webvirtcloud-frontend Running 0.0s
✔ Container webvirtcloud-mariadb Healthy 4.5s
✔ Container webvirtcloud-db-migration Exited 4.5s
✔ Container webvirtcloud-rabbitmq Healthy 4.5s
⠴ Container webvirtcloud-backend Starting 16.1s
✔ Container webvirtcloud-novnc Started 0.2s
✔ Container webvirtcloud-worker Healthy 12.2s
✔ Container webvirtcloud-scheduler Started 0.2s
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "gunicorn": executable file not found in $PATH: unknown

[Feature] Add WHMCS Support

Would it be possible to add WHMCS support into Webvirtcloud. This project is amazing but some integrations would be nice to have as well. The main things that I would like to see added would be automatic user and VM creation, deleting VMs isn't required but is also a nice qol feature.

P.S. Not sure if this is the right place to ask, so please let me know if it's not.

LDAP

Hello,

Is there LDAP integration?

Billing Intergrations?

May i inquire as to what billing integrations are road mapped currently?

Id like to see

  • WHMCS
  • Preferably Upmind more found at upmind.com

Why is my cpu frequency locked?

My cpu frequency can go up to 4.0 but after installing windows it stabilizes at 2.11 from task manager, my processor is amd 5500u

Not sure how to start Webvirtcloud

So I tried following the setup instructions and all of the containers have started but I can't manage to get access to the panel? The response is "x.x.x.x sent an invalid response"? I've probably done something wrong and any help would be appreciated.

Is the custom.env supposed to stay the same or be changed to a custom domain?

Building WebVirtCloud Error

Building WebVirtCloud...
[+] Building 2.7s (9/14) docker:default
=> [backend internal] load .dockerignore 0.0s
=> => transferring context: 109B 0.0s
=> [backend internal] load build definition from Dockerfile.backend 0.0s
=> => transferring dockerfile: 1.36kB 0.0s
=> [backend internal] load metadata for docker.io/library/python:3.10-alpine 2.2s
=> CANCELED [backend backend-deps 1/8] FROM docker.io/library/python:3.10-alpine@sha256:8a66e74c0581e0c7b8b481fe7f0444b2fd599685d4fb52 0.4s
=> => resolve docker.io/library/python:3.10-alpine@sha256:8a66e74c0581e0c7b8b481fe7f0444b2fd599685d4fb525c1047da4f6f44fdaa 0.1s
=> => sha256:3571273345649a7407482369206f43c7659a4c1da21115b359eb2f1d8a2b29d1 6.28kB / 6.28kB 0.0s
=> => sha256:c303524923177661067f7eb378c3dd5277088c2676ebd1cd78e68397bb80fdbf 0B / 3.35MB 0.3s
=> => sha256:e853c0f38ea7ee895b324be2572635fb61172c5bb439c16909ff93c5626bf9e3 0B / 624.72kB 0.3s
=> => sha256:4e2bf8fadd7561c3865302dcbab4663eb36e0cf6304ff93f509f8805860c96be 0B / 12.29MB 0.3s
=> => sha256:8a66e74c0581e0c7b8b481fe7f0444b2fd599685d4fb525c1047da4f6f44fdaa 1.65kB / 1.65kB 0.0s
=> => sha256:617c6db3400e3519e6edd5b505296b48ea1bada9cfc47ef57e460e15d6e26e49 1.37kB / 1.37kB 0.0s
=> [backend internal] load build context 0.4s
=> => transferring context: 1.31MB 0.4s
=> CACHED [backend backend-deps 2/8] RUN apk add --no-cache gcc g++ pango fontconfig ttf-freefont font-noto terminus-font 0.0s
=> CACHED [backend backend-deps 3/8] WORKDIR /requirements 0.0s
=> CACHED [backend backend-deps 4/8] COPY ./webvirtbackend/requirements/production.txt requirements.txt 0.0s
=> ERROR [backend backend-deps 5/8] COPY ./optional-requirements.txt . 0.0s

[backend backend-deps 5/8] COPY ./optional-requirements.txt .:

failed to solve: failed to compute cache key: failed to calculate checksum of ref e58b4abb-d0cf-4640-a21b-95bd15c3878b::ywf3c9bl92kh2wxxk2g249l13: "/optional-requirements.txt": not found

Issue with the update script

I tried to run the ./webvirtcloud.sh update script however one of the containers webvirtcloud-mariadb failed with the message dependency failed to start: container webvirtcloud-mariadb is unhealthy. This was after I removed all containers so I'm not sure why that is happening.

directory to be expected for full install as curl https://raw.githubusercontent.com/webvirtcloud/webvirtcompute/master/scripts/install.sh | sudo bash fails

curl https://raw.githubusercontent.com/webvirtcloud/webvirtcompute/master/scripts/install.sh | sudo bash

testing things on a vm and its fails as

--2023-11-14 22:21:58--  https://cloud-apps.webvirt.cloud/webvirtcompute-almalinux8-amd64.tar.gz
Resolving cloud-apps.webvirt.cloud (cloud-apps.webvirt.cloud)... 2606:4700:130:436c:6f75:6466:6c61:7265, 172.64.80.1
Connecting to cloud-apps.webvirt.cloud (cloud-apps.webvirt.cloud)|2606:4700:130:436c:6f75:6466:6c61:7265|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 31852406 (30M) [application/x-gzip]
Saving to: ‘/tmp/webvirtcompute-almalinux8-amd64.tar.gz’

/tmp/webvirtcompute-almalinux8-amd64.tar. 100%[==================================================================================>]  30.38M  23.5MB/s    in 1.3s    

2023-11-14 22:22:00 (23.5 MB/s) - ‘/tmp/webvirtcompute-almalinux8-amd64.tar.gz’ saved [31852406/31852406]

webvirtcompute/
webvirtcompute/webvirtcompute
webvirtcompute/webvirtcompute.ini
webvirtcompute/webvirtcompute.service
cp: cannot stat '/tmp/webvirtcompute-almalinux8-amd64/webvirtcompute': No such file or directory```

so i run some workarounds but am left without a token for compute so im still stuck here.

After double checking to make sure i have no token i now actually have a token but i do suggest adding the directory for compute to be run under and installed properly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.