Git Product home page Git Product logo

virtualmin-config's Introduction

ย  Coverage Status

NAME

Virtualmin::Config - A collection of plugins to initialize the configuration of services that Virtualmin manages, and a command line tool called config-system to run them. It can be thought of as a very specialized configuration management system (e.g. puppet, chef, whatever) for doing just one thing (setting up a system for Virtualmin). It has basic dependency resolution (via topological sort), logging, and ties into the Webmin API to make some common tasks (like starting/stopping services, setting them to run on boot) simpler to code.

SYNOPSIS

my $bundle = Virtualmin::Config->new(bundle     => 'LAMP');
$bundle->run();

You can also call it with specific plugins, rather than a whole bundle of plugins.

my $plugin = Virtualmin::Config->new(include => 'Apache');
$plugin->run();

Adding new features to the installer, or modifying installer features, should be done by creating new plugins or by adding to existing ones.

DESCRIPTION

This is a mini-framework for configuring elements of a Virtualmin system. It uses Webmin as a library to abstract common configuration tasks, provides a friendly status indicator, and makes it easy to pick and choose the kind of configuration you want (should you choose to go that route). The Virtualmin install script chooses either the LAMP (with Apache) or LEMP (with nginx) bundle, and performs the configuration for the whole stack.

It includes plugins for all of the common tasks in a Virtualmin system, such as Apache, MySQL/MariaDB, Postfix, SpamAssassin, etc.

INSTALLATION

The recommended installation method is to use native packages for your distribution. We provide packages for Debian, Ubuntu, CentOS/RHEL, and Fedora in our repositories.

You can use the standard Perl process to install from the source tarball or git clone:

perl Makefile.PL
make
make test
make install

Or, use your system native package manager. The followin assumes you have all of the packages needed to build native packages installed.

To build a dpkg for Debian/Ubuntu:

dpkg-buildpackage -b -rfakeroot -us -uc

And, for CentOS/Fedora/RHEL/etc. RPM distributions:

dzil build # Creates a tarball
cp Virtualmin-Config-*.tar.gz ~/rpmbuild/SOURCES
rpmbuild -bb virtualmin-config.spec

ATTRIBUTES

bundle

Selects the plugin bundle to be installed. A bundle is a list of plugins configured in a Virtualmin::Config::* class.

include

One or more additional plugins to include in the run(). This can be used alongside bundle or by itself. Dependencies will also be run, and there is no way to disable dependencies (because they're depended on!).

exclude

One or more plugins to remove from the selected bundle. Plugins that are needed to resolve dependencies will be re-added automatically.

METHODS

run

This method figures out which plugins to run (based on the bundle, include, and exclude attributes.

LICENSE AND COPYRIGHT

Licensed under the GPLv3. Copyright 2017 Virtualmin, Inc. <[email protected]>

virtualmin-config's People

Contributors

swelljoe avatar iliajie avatar jcameron avatar chris001 avatar

Watchers

James Cloos avatar

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.