Skip to content

FOSSBilling/Proxmox

 
 

Repository files navigation

Create a downloadable preview build Build and Test

Proxmox module for FOSSBilling

This module is still in development and not ready for production use.

WIP Proxmox support for FOSSBilling. As stated above, this is still heavily a WIP and is not ready for production use. Please only install it if you are a developer and intend to contribute back to the module. Please see the issues (especially #26) for the current status of the module as some great work is being done, but it's not yet to a complete state.

Server List

image

Features

  • Manage pools of Proxmox servers (orders can be allocated to servers automatically based on their capacity)
  • Complete Privilege Separation (each client can only see their own VMs),
  • Admin can't see inside client's VMs (Only the VM ID, Name, Status, IP, RAM, CPU, Disk, Bandwidth, etc.)
  • Provision LXC containers (Doensn't Work - WIP)
  • Provision QEMU KVM machines (Doensn't Work - WIP)
  • Clients can start, shutdown and reboot their VMs (online console not working right now)
  • Proxmox Servers do not have to be reachable from the Internet (Might need a nginx proxy manager for this, but not sure yet.)
  • Rudimentary Backup of Module Data (Module data is not lost anymore when reinstalling.)

TODOs:

  • Better Error Handling when creating unexpected things happen & get returned from pve host.
  • Better VM Allocation procedure
  • Consistent Naming: Templates might be confusing...
  • VM & LXC Template setup needs to be expanded so it can create VMs from it.
  • Provisioning of VMs with Cloudinit (https://pve.proxmox.com/wiki/Cloud-Init_Support)
  • Work on Usability to configure products and manage customer's products

Requirements

  • Tested on Proxmox VE 7 or higher, PVE 6 should work too

Installation ( For 0.1.0 Preview!)

Prerequisites

You need to run Fossbilling 0.5.5, otherwise this preview will not work.

  • Make sure you uninstall the Module first by going to Extensions -> Overview
  • Then, make sure that you move the pmxconfig folder in your Fossbilling rootfolder so the new installer doesn't accidentially restore an old backup. mv /var/www/pmxconfig /var/www/pmxold
  • Make sure you don't have any tables beginning with service_promxox in your database anymore:
-- Create a stored procedure to drop tables starting with "service_proxmox" in the "client" database --

USE client; -- Set this to the database where FOSSBilling is installed

DELIMITER //
CREATE PROCEDURE DropTables()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tableName VARCHAR(255);
    DECLARE cur CURSOR FOR
        SELECT table_name
        FROM information_schema.tables
        WHERE table_schema = 'client' -- replace client with your database name
        AND table_name LIKE 'service_proxmox%';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    
    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO tableName;
        IF done THEN
            LEAVE read_loop;
        END IF;
        SET @sql = CONCAT('DROP TABLE IF EXISTS `', tableName, '`;');
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END LOOP;
    CLOSE cur;
END;
//
DELIMITER ;

-- Call the stored procedure to drop the tables
CALL DropTables();

-- Drop the stored procedure
DROP PROCEDURE IF EXISTS DropTables;

Installation for 0.1.0 Preview

  • Go to the Modules folder (f.ex: cd /var/www/modules)
  • Run git clone https://github.com/FOSSBilling/Proxmox.git Serviceproxmox
  • Go Inside the directory cd Serviceproxmox/
  • Checkout the 0.1.0 branch git checkout 0.1.0
  • Make sure to chown to your web-servers User (f.ex chown www-data:www-data Serviceproxmox -Rf)
  • Install the Module in the Web interface.
  • Configure the Proxmox module in the FOSSBilling admin area
  • Add new Proxmox servers.
  • "Prepare Server" on each Proxmox server (this will create the necessary API user and role) (The Plus Button in the Server List)
  • Add new Proxmox products with the correct VM settings setup

The Proxmox Addon now has its own Menu Entry:

image

Storage List

image

Templates

VM Templates

image

LXC Appliances

image

LXC Appliances

image

IPAM

image

image

image

image

Settings

Admin_General Backup image

Licensing

This module is licensed under the GNU General Public License v3.0. See the LICENSE file for more information.

Copyright

Copyright: Christoph Schläpfer & the FOSSBilling Team.

Based on previous work by Scith.

About

Proxmox VM provisioning for FOSSBilling

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Twig 54.6%
  • PHP 40.6%
  • HTML 4.5%
  • CSS 0.3%