Support Us on Patreon

Discord: PoiXson

yum/dnf: yum.poixson.com


What is Configer

Configer is a modular server management system and web control panel. It's light weight, automatic, and installs in moments. Drop in your configer.json file, install only what services you need, and everything is up and running already. Easy as can be.


Still in development

The web control panel is an optional package you may install on each of your servers, or on a central management server to remotely manage other servers.

configer-panel


How it works

As each service starts, it only takes milliseconds for the configer-gen tool to read the configer.json file and generate the config files for that service. Just-in-time configs.


Currently Supported

Supported Operating Systems:


Current State

Many supported services are now fully functional, and many more in the works.

Unfinished Services

note: Some services may not enable or start automatically. This is a known bug and will be fixed. You may enable and start these services yourself for now:

systemctl enable nginx-<user>
systemctl start nginx-<user>

Setup

It's recommended to prepare your configer.json configuration file before installing the packages. If the file is ready and in place, the system will come online and fully functional after packages have installed.

An example file can be found here: https://configer.online/configer.json

The Configer system will search for the configer.json file in these locations:

The first found of the above list takes priority. It should be owned and readable by root. The configer-gen tool will generate config files for each service on-demand, just before each start. If you make a change to the configer.json file, simply restart the affected services to apply the changes.

wget -O /configer.json https://configer.online/configer.json
nano /configer.json

Installing

It's recommended to prepare your configer.json configuration file before installing the packages.

There are a few ways to install Configer. What suites you best?


Wizard install

The latest install script can be found here: https://configer.online/install.sh

The install wizard and menus can be used by adding the --wizard (or --wiz) flag with the above script.

wget -O configer-install.sh https://configer.online/install.sh
sh configer-install.sh --wizard

Automatic install

The install.sh script can be used to automatically install the required packages and begin managing services. This is great for use with Docker.
wget -O configer-install.sh https://configer.online/install.sh
sh configer-install.sh --auto

note: This feature is currently unfinished.


Manual Install from Packages

You may look inside the above script to see exactly what repositories and packages are needed.

  1. You will first need the pxn repo and then the pxn-testing-release package
  2. If you are using CentOS/Rocky/Alma/Red Hat, you will need the EPEL repo.
  3. If you are using PHP for web hosting, or using the web control panel, you will need the Remi repo.
  4. If Nginx is not available by default on your distro of choice, you may need the nginx repo.
  5. You're finished. Your services are now configured and online.
dnf install https://yum.poixson.com/latest.rpm
dnf install pxn-testing-release
dnf install epel-release (and/or) remi-release (if rhel/rocky/alma)
dnf install nginx-release (only if needed)
dnf update
dnf install configer
dnf install configer-

Configuration

Here is an example config, create this at the root of the file system and name it: /configer.json

You can remove blocks for services you're not using. For instance, if you aren't using mail services, you can remove that block from the json config.

After making changes to this config file, you can stop and start the affected service to apply the changes. New config files will be created just before the service starts.

{
	"hostname": "server123.example.com",
	"users": {
		"example-site": { },
		"bis": { }
	},
	"dns_internal": {
		"servera": { "ip": "192.168.1.21" },
		"serverb": { "ip": "192.168.1.22" }
	},
	"dns_external": {
		"example.com": { "ip": "1.2.3.4" },
		"business.com": {
			"ip": "1.2.3.4",
			"A": {
				"cdn": "4.5.6.7",
				"db1": "6.7.8.9"
			}
		}
	},
	"ssl": true,
	"php": true,
	"xdebug": false,
	"websites": {
		"example-site": {
			"domains": [ "example.com" ],
			"ssl": true,
			"php": true
		},
		"bis": {
			"domains": [ "business.com", "" ],
			"ssl": true,
			"php": true
		}
	},
	"mail": {
		"root": "support@example.com",
		"mailboxes": {
			"example-site": {
				"example.com": [ "support" ]
			},
			"bis": {
				"business.com": [ "support" ]
			}
		},
		"forwards": {
			"@example.com":       "support@example.com",
			"sales@business.com": "support@business.com"
		},
	},
	"mc": {
		"myserver": {
			"spigot-version": "1.19.2"
		}
	},
	"mqtt": {
		"anon": true
	}
}