Giter Site home page Giter Site logo

cdgco / vestawebinterface Goto Github PK

View Code? Open in Web Editor NEW
95.0 16.0 49.0 59.29 MB

PHP interface for VestaCP, providing a beautiful UI, UX, features & integrations.

Home Page: https://vwi.cdgtech.one

License: GNU General Public License v3.0

PHP 88.50% CSS 5.81% HTML 0.22% JavaScript 1.10% Shell 0.16% Less 4.21%
vestacp cloudflare php interface control-panel php-interface admin-panel theme

vestawebinterface's Introduction

Warning: As VestaCP stopped receiving updates in 2020, Vesta Web Interface is no longer supported. VWI is experiencing compatibility issues on PHP 7.4+. Consider moving to HestiaCP / Hestia Web Interface instead.

VWI Banner

Downloads JSDelivr License Size

Vesta Web Interface is a PHP control panel and interface that integrates with VestaCP to provide a beautiful user friendly experience.

VWI features the ability to rebrand the control panel, change the theme, install it wherever you want, restrict access to users, easily edit options and offers integrations to services such as Auth0, Google Analytics, Cloudflare, Softaculous, Interakt and plugins for webmail (rainloop), FTP (Monsta FTP), and billing (WIP).

For installation, details, live demo and technical information, visit the VWI Documentation


Using HestiaCP? Check out our sister project, Hestia Web Interface.

vestawebinterface's People

Contributors

andresrobinson avatar cdgco avatar erikperin avatar gitter-badger avatar lsmithx2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vestawebinterface's Issues

Fuzzy Instructions

Im under the impression that this panel is suppose to be a "replacement" for the default vestacp theme. I love the mission, ui, and the extend-ability I am seeing already. I have a few questions that the documentation did not make clear enough for my understanding.

Im under the impression that I create a domain or subdomain with nothing in it. Then I run the auto install command (by preference). Once the /install is up I ensure that all checks are go. Then the database section is what I misunderstood. Is this any database I want or is this suppose to be connected to the root user (or equivalent)?

Also is the domain I enter in during the CLI portion suppose to be the domain to my original Vestacp or the domain Im installing the VWI?

In my situation I created a new DB, New Domain, Got all green lights and then stuck on step2.

Error on Mail Account Creating

Hello!

When I created the email account, I received the following error:
Parse error: syntax error, unexpected ';' in /home/hosting/web/panel.plomo.gq/public_html/create/mailaccount.php on line 125

I solved this in the following way:
/create/mailaccount.php
on 125 line
addslashes(
replace to
addslashes();

But I'm not sure if this is the right and safe solution

Localization

Translate Vesta Web Interface based on settings specified in user profile.

FtpPlugin - HTTP ERROR 500

Hello.

I have installed vesta fwi 0.5.3 beta and ftp plugin 0.1.2, but plug-in does not work. When i open the page, i getting HTTP ERROR 500 .

Hi, could you please edit the '.htaccess' file in your installation and turn on debugging by changing the line php_flag display_errors off to php_flag display_errors on ?

I did it, the error remained the same, unchanged

Sorry, google translate ;)

Backup Download System

Create better UI for downloading backups. Current system invokes password request using javascript alert for notification. Would like to switch to sweetalert or similar.

How to... translate?

Hi !!!!

I tried to translate, changing the "msgstr" in the messages.po file of es_US, but the changes are not visible.
Any other way to translate without having to modify the "ECHO" of the .php files?

Thanks you!

Login or Index doesn't work

"Loading dashboard..."

Workly perfect for a 2 hours, but incomprehensibly now don't load index.php, load a serveral time with the message "Loading dashboard" in green color, and then emit a "500 - Internal Server Error".

Any idea?

thanks u

Cache MySQL Queries

Cache MySQL in .txt file or local database to reduce server load and prevent outages.

DNS only

Hello,
Great work so far. Is it possible to hide all except DNS management for users?
I would like to disable more in ENABLE OR DISABLE SECTIONS from the file config.php

CloudFlare integration

Hi, It would be really nice to see an integration with Cloudflare for DNS management. It could be really useful and help reduce server load. cPanel already has a Plugin like that.

Custom Softaculous UI

I think there should be a custom UI for Softaculous and app installations too, so you don't have to link directly to the panel and Softaculous. You could use the Softaculous API for this and possibly let users add custom applications with certain parameters. Again, I could also probably help with this ๐Ÿ˜„

Admin Panel: Part 2

Configure Server:
List / Change Hostname
List / Change Timezone
List / Change Default Language
List Web Server Names
List DNS Server Name
(No DNS Cluster for now)
List Mail Server Names
List / Change Webmail URL
List MySQL Enabled
List / Change phpMyAdmin URL
List MySQL Host name
Change MySQL root password
List Max MySQL DB
List Current MySQL DB
List PostgreSQL Enabled
List / Change phpPgAdmin URL
List PostgreSQL Host name
List Max PostgreSQL DB
List Current PostgreSQL DB
List / Change Backup Compression Level
List / Change Backup Directory
(No Remote Backup for now)
List / Change VestaCP Backend SSL
List VestaCP version
List / Change FileSystem Disk Quota Enabled
List / Change Firewall enabled
List / Change Softaculous enabled
(No premium plugins for now)
List / Configure Apache2
List / Configure PHP
List / Configure nginx
List / Configure Bind9
List / Configure SpamAssassin
List / Configure ClamAV
List / Configure Exim4
List / Configure Dovecot
List / Configure VSFTPD
List / Configure ProFTPD
List / Configure Cron
List / Configure Fail2Ban
List / Configure PostgreSQL
List / Configure MySQL Basic
List / Configure MySQL Advanced
Start / Stop / Restart Services
Restart Server

Function Based Menu System

Base all menus in the includes.php file, with php functions to recall and alter menu options, makes implementation of new features and alterations to the menu much easier. Currently active on index.php.

Subdomains isn't working

Hi,

when you add a new web domain in vwi or subdomain (like subdomain.maindomain.com) the external ip doesn't appear, only local ip and DNS domains/subdomains its configure automatically with a local ip, finally subdomain not working.

If you add subdomain in the vesta normal control panel, working perfectly.

Thanks u and seriouly, vwi is amazing, great work!

(I have installed the last version (v0.4.0-Beta))

Idea

It would be nice in the admin panel for the admin user to be able to do things like change the name of the site, the logo, turn on/off user registrations, etc.

I use VestaCP as a HCP for my side business. I would love to see CDG VWI as something I can hand to my clients that has some type of plugin system or is semi modular so I don't have to spend a week coding hacks to add things like Net2FTP/Angular FileManager into the interface. You have a good start on a great product and I commend you.

However as I am not doing Shared Hosting with VestaCP disabling sign ups is huge for me. If I have to hack the code to do this everytime an update comes out then to me it's no different then spending a week hacking the core web interface of VestaCP.

Custom SSL Support

Support for upload and editing of non Let's Encrypt SSL certificates. Certificates must be uploaded from VWI frontend to VestaCP backend, added to temp file, then directory linked to domain.

Frontend framework currently in place.

Check VestaCP Services Enabled

Automatically disable sections if VestaCP configuration does not include service.

Services to check:

  • nginx (Enable / Disable Proxy / Web Control)
  • Apache (Enable / Disable Web Control)
  • php-fpm (Enable / Disable Backend Control)
  • vsftpd (Disable Additional FTP / FTP Backend Integrations)
  • proftpd (Disable Additional FTP / FTP Backend Integrations)
  • named (Disable DNS Section)
  • iptables (Disable Firewall & Fail2ban Sections)
  • fail2ban (Disable Fail2ban Section)
  • exim (Disable Mail Control / Section)
  • dovecot (Disable Mail Control / Section)
  • spamassassin (Disable Spam Option)
  • clamav (Disable Antivirus Option)
  • MySQL (Disable Database Section)
  • PostgreSQL (Disable Database Section)

Plugin System

Plugin System Idea to streamline new 1st party features and enable development of 3rd party plugins.

Example File Structure

Plugins
โ”œโ”€โ”€ example-plugin
| โ”œโ”€โ”€ mainfest.xml
| โ””โ”€โ”€ index.php

XML File Idea:

<plugin>
    <name>Example Plugin Name</name>
    <fa-icon>fa-phone</fa-icon>
    <section>web</section> 
    <developer>Developer Company</developer>
    <version>1.0.2</version>
    <admin-only>No</admin-only>
</plugin>

Config file idea:

<?php 

DEFINE('PLUGINS', 'example-plugin'); // Plugin folder name, exactly as specified, seperated by comma.

$plugins = explode(",", PLUGINS);
$pluginlinks = array();
$pluginnames = array();
$pluginicons = array();
$pluginsections = array();
$pluginadminonly = array();
foreach ($plugins as $result) {
    if (file_exists('../plugins/' . $result)) {
        if (file_exists('../plugins/' . $result . '/manifest.xml') && file_exists('../plugins/' . $result . '/index.php')) {
            $get = file_get_contents('../plugins/' . $result . '/manifest.xml');
            $xml   = simplexml_load_string($get, 'SimpleXMLElement', LIBXML_NOCDATA);
            $arr = json_decode(json_encode((array)$xml), TRUE);
            if (isset($arr['name']) && !empty($arr['name']) && isset($arr['fa-icon']) && !empty($arr['fa-icon']) && isset($arr['section']) && !empty($arr['section']) && isset($arr['admin-only']) && !empty($arr['admin-only'])){
                array_push($pluginlinks,$result);
                array_push($pluginnames,$arr['name']);
                array_push($pluginicons,$arr['fa-icon']);
                array_push($pluginsections,$arr['section']);
                array_push($pluginadminonly,$arr['admin-only']);
            }
            
        }    
    }
}

Code to add items to menus:

if(isset($pluginnames[0]) && $pluginnames[0] != '') {
            $currentplugin = 0; 
            do {
                if (!strpos($pluginadminonly[$currentplugin] , 'y') && !strpos($pluginadminonly[$currentplugin] , 'Y')) {
                    $currentstring = "<li><a href='plugins/" . $pluginlinks[$currentplugin] . "/' target='_blank'><i class='fa " . $pluginicons[$currentplugin] . " fa-fw'></i><span class='hide-menu'>" . _($pluginnames[$currentplugin] ) . "</span></a></li>";
                }

                else {
                         $currentstring = "<?php if($username == 'admin') { echo \"<li><a href='plugins/" . $pluginnames[$currentplugin] . "/' target='_blank'><i class='fa " . $pluginicons[$currentplugin] . " fa-fw'></i><span class='hide-menu'>" . _($pluginnames[$currentplugin] ) . "</span></a></li>\";} ?>";
                }
                echo "var plugincontainer" . $currentplugin . " = document.getElementById ('append" . $pluginsections[$currentplugin] . "');
                      var plugindata" . $currentplugin . " = \"" . $currentstring . "\";
                      plugincontainer" . $currentplugin . ".innerHTML += plugindata" . $currentplugin . ";\n";
                $currentplugin++;
            } while ($pluginnames[$currentplugin] != ''); }

Dark Theme

Try to add dark theme in current theme switcher. Might have to alter underlying html code or create separate branch to achieve.

Mobile phone support

Hi! I love the cpanel that you guys made for vesta but it would be cool if you guys add more support to mobile phone screen size. Thanks!

Admin Panel Part 1

Support for Admin account to manage and control users, resources, server, etc.

Deleting domain

When deleting a domain "Successfully created!" is displayed.

How to update

Hi, there is any guide about how to update the version of the VWI?

Theme Switcher

Support for session or user based theme switching. Session based theme switching currently in progress, almost ready for release.

Edit Backup Exclusions

Support for editing of backup exclusions. Data must be uploaded from frontend to backend, added to temp file, then directory linked to user.

Frontend framework in place.

Additional FTP Support

Add additional FTP support to 'add' and 'edit pages for domains. Allow addition of unlimited FTP accounts.

Softaculous Support

Support for Softaculous system introduced in VestaCP 0.9.8-18. Requires addition in config file, install system and all menu lists for frontend. Requires edit of return links in backend.

VWI-Billing, sql database

Hello!

I installed the billing plugin, but unfortunately it does not work.
Returns errors related to queries in the database. I looked at the code and saw that there are queries to the following tables:
billing-config
billing-plans

I do not have these tables in the database. In the plugin, I also found no place to create tables. Where can they be taken?

Why there was such error, it can because of type of installation?

Process Animations & Notifications

Unify process system across different sections, activate loading animation while request is processed, invoke return codes for all processes and read & display errors in notifications after processes complete.

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.