rConfig v6 Core is a free, open source, community edition of rConfig v6. It is a fully functional version of rConfig v6, with all the core features of rConfig v6 Professional, but with some limitations. Check out our features list www.rconfig.com/features to learn more.
Explore the docs »
Intro
·
Installation
·
Updating
·
Contributing
·
License
·
Support
rConfig v6 is an enterprise grade Network Configuration Management (NCM) software package with superior NCM features and capabilities to help you easily manage configurations on large and small heterogenous networks. rConfig v6 is our flagship professional version of rConfig aimed at high value networks and business operations. rConfig v6 runs natively on many variants of Linux. Within this repo, is the code base for rConfig v6 Core, and a set of scripts to help you get started with rConfig v6 Core.
If you are looking for rConfig V6 professional, please visit https://www.rconfig.com/
.
Supported OS
- Rocky Linux 8/9+
- RHEL Linux 8/9+
- CentOS Linux 8/9+
- Ubuntu 20.04+
- Docker (Linux)(not yet ready)
rConfig v6 core is completely free, you do not need an API key from rConfig to download and use this version. Please follow the instructions below to get started.
Feature | rConfig Core | rConfig Professional |
---|---|---|
Configuration Backup | ✅ | ✅ |
Multi-Vendor Support | ✅ | ✅ |
Unlimited Devices | ✅ | ✅ |
Enterprise Features | ❌ | ✅ |
API Access | ❌ | ✅ |
Premium Support | ❌ | ✅ |
Check out more on our features page.
We have made it super easy to get started with rConfig v6. Follow the steps below to get started. Check out our youtube channel for a video walkthrough of the installation process.
https://www.youtube.com/channel/rconfigV6Core
Note
Do not follow the installation steps to update existing rConfig installations. You must skip to the Updating section below.
Setup a server with one of the supported OS's listed above. We recommend using a fresh install of the OS. If you are using a server that has been in production, we recommend you backup the server before proceeding.
You will need to install the following software on your server: Git 2.25+ PHP 8.1+ Composer 2.4+ Apache 2.4+ MySQL 5.7+ or MariaDB 10.5+ nodejs 14.17+ Supervisor 4.2+
We have conveniently provided scripts to help you install the required software. Head over to https://docs.rconfig.com/getstarted/os-setup to find the correct script for your OS. If you are using a different OS, you will need to install the required software manually.
Note You will need to be logged in as root when running the scripts.
- Login to your database server as root
- Create a new database
mysql -u root -p
CREATE DATABASE rconfig;
- Create a new user if required (do not use the credentials below in production). This is likely required for Ubutnu 20.04+. If you are using a different OS, you may not need to create a new user, and you can use the root account, though this is not recommended.
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';
GRANT ALL PRIVILEGES ON rconfig.* TO 'user1'@'localhost';
FLUSH PRIVILEGES;
- Exit the database
exit
- Login as root
- Clone the repo
cd /var/www/html
git clone https://github.com/rconfig/rconfig.git
- Change directory to the repo
cd rconfig
- Create the .env file
cp .env.example .env
- Edit the .env file and update the following variables:
APP_URL="https://SERVER.DOMAIN.LOCAL"
APP_DIR_PATH=/var/www/html/rconfig
DB_HOST=DBHOST
DB_PORT=3306
DB_DATABASE=DBNAME
DB_USERNAME=DBUSER
DB_PASSWORD=DBPASS
- Install the required PHP packages
export COMPOSER_ALLOW_SUPERUSER=1
composer self-update --2
yes | composer install --no-dev
- Install apache and supervisor
chmod +x setup_apache.sh
./setup_apache.sh
- Install supervisor
chmod +x setup_supervisor.sh
./setup_supervisor.sh
- Run the installation script. This will install the required packages, setup the database, and configure the web server. The script will take a few minutes to complete.
Warning
Do not run the next command on existing rConfig deployments in an attempt to update. You must follow the instructions in the Updating section below. The command below is for new installations only.
php artisan install
If you area asked 'Add a cron entry for task scheduling?', type yes
and press enter.
The output from the above should look like this:
APPLICATION INSTALL.
Packages discovery ...................................................................... 5ms DONE
command key:generate .................................................................... 2ms DONE
command migrate
....................................................................... 387ms DONE
command passport:install ............................................................ 1,839ms DONE
command rconfig:clear-all
No config updates to processes
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
Generated optimized autoload files containing 6960 classes
........................................................... 7,036ms DONE
command rconfig:sync-tasks .............................................................. 5ms DONE
script cache .......................................................................... 57ms DONE
Assets publishing ....................................................................... 7ms DONE
Add a cron entry for task scheduling? (yes/no) [no]
❯ yes
INFO Entry was added [* * * * * cd /var/www/html/rconfig && php artisan schedule:run >> /dev/null 2>&1].
INFO Install done!
- Update apache config file for correct server name.
# CentOS/RHEL
sudo vi /etc/httpd/conf.d/rconfig-vhost.conf
# Ubuntu
sudo vi /etc/apache2/sites-enabled/rconfig-vhost.conf
Update the ServerName
to match your server's domain name.
ServerName YourServerName.domain.local
ServerAlias YourServerName.domain.local
- Restart apache
# CENTOS/RHEL
sudo systemctl restart httpd
# Ubuntu
sudo systemctl restart apache2
- Clear the cache & reset permissions
# CENTOS/RHEL
cd /var/www/html/rconfig
chown -R apache storage bootstrap/cache
php artisan rconfig:clear-all
# Ubuntu
cd /var/www/html/rconfig
chown -R www-data storage bootstrap/cache
php artisan rconfig:clear-all
- Open your browser and navigate to your server's domain name. You should see the rConfig login page. The default system credentials are below. Please change or remove these as soon as a new admin user is created.
Username: [email protected] Password: admin
Check out our docs docs.rconfig.com
to learn more.
Important
Your advised to backup your database, .env file and storage directory at a minimum before proceeding. You should also backup your entire server if possible.
Instruction on how to update your installation of rConfig v6 Core are below. You should run the commands below as root, and you may need to use sudo if installed on Ubuntu.
Warning
If you edit any of the files in the rConfig directory, you may need to resolve conflicts when you run the git pull
command. You should be familiar with git and how to resolve conflicts. If you are not, you should not edit any of the files in the rConfig directory. If you get a warning about conflicts, you can try a git stash
and git pull
to resolve the conflicts. If you are not familiar with git, you should seek help from a professional.
Important
As of Feb 2024, you will need to update PHP to version 8.3 when updating rConfig Core V6. You will also need to update the composer version to 2.4. You can do this by running the following commands:
# Update PHP CentOS/RHEL/ Rocky
cd /home
yum -y install wget
wget https://www.rconfig.com/downloads/php-updates/centos-php8-update.sh -O /home/centos-php8-update.sh
chmod +x centos-php8-update.sh
./centos-php8-update.sh
# Update PHP Ubuntu
cd /home
sudo apt-get install wget
wget https://www.rconfig.com/downloads/php-updates/ubuntu-php8-update.sh -O /home/ubuntu-php8-update.sh
chmod +x ubuntu-php8-update.sh
./ubuntu-php8-update.sh
rConfig V7 professional subscribers should follow the instructions in the rConfig V7 professional documentation. As the installation and update process is different.
# Centos/Rocky/RHEL
cd /var/www/html/rconfig
git pull
php artisan migrate
php artisan rconfig:sync-tasks
composer install
systemctl restart httpd
php artisan rconfig:clear-all
# Ubuntu
cd /var/www/html/rconfig
git pull
php artisan migrate
php artisan rconfig:sync-tasks
composer install
systemctl restart apache2
php artisan rconfig:clear-all
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. We are pretty strict on code quality and style. Please follow the best practices. You should also have a strong working knowledge of PHP, Laravel, and VueJS.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request for approval to merge into the
develop
branch
- Create a new database for testing
- Copy the
.env.example
file to.env.testing
- php artisan key:generate --env=testing
- change the
APP_ENV
variable in the.env.testing
file totesting
- Update the
.env.testing
file with the correct database credentials - Run the tests with
php artisan test
Front end development requires npm install --include=dev
, and npm run dev
to compile the assets with vite.
If you get a 'connect ENETUNREACH on npm' command, export the following env var
export NODE_OPTIONS="--dns-result-order=ipv4first"
You can add this to the ~./bashrc file
This code base for this repository's code is distributed under License from rConfig. See LICENSE.txt
for more information. rConfig v6 Professional is excluded from this license and repository.
Although we provide this code free and open source, rConfig v6 core is based best effort support basis. You may open issues in the issue section here at github. We will try to address issues in a timely manner, but without guarantees. For prompt support and business critical environments, you should take out a subscription for rCOnfig v6 Professional. rConfig Professional subscribers should open a ticket via our normal support channels.
Inspiration, code snippets, etc.
See composer.json and package.json for a full list of dependencies, and their licenses.