Documentation

Last updated: December 14th, 2019

About Cipi

Cipi is an Open Source powerful control panel for your cloud servers that lets you to quickly deploy awesome and secure LAMP environments with DigitalOcean, AWS or Google Cloud products without any need to be a Linux expert.

Get started

Installation

There are two ways to install Cipi.

Autoinstall Script

The first way is run as root an autoinstall script on a VPS with a clean Ubuntu 18.04 LTS intallation:
wget -O - https://cipi.sh/go.sh | bash
You can change your personal data and password in the profile section and configure a SMTP provider into /cipi/.env file.

Composer Installation

Cipi is a Laravel based project so you can install it in any PHP/MySql hosting within Composer:
composer create-project andreapollastri/cipi {install-directory}
and run:
cp .env.example .env
php artisan key:generate
Then update your database and SMTP connection data into .env file.
At the end run these commands:
php artisan config:cache
php artisan migrate --seed
php artisan storage:link
php artisan view:cache

Cipi features

After main installation Cipi is ready to configure unlimited other servers with the follow features:

  • Apache 2.4
  • PHP 7.3-FPM
  • MySql 5.7
  • phpmyadmin
  • Let's Encrypt
  • Composer
  • npm
  • GIT
  • Github integration
  • Imagick
  • Laravel preinstallation
  • Wordpress preinstallation

Usage

Servers

After login, a dashboard will shows you the realtime status of your servers or a button useful to add a new server.
You can manage all servers into "Servers" section so you can create&install or delete any server in your Cipi with a click.

Create & install a new server

Before you can use Cipi, please make sure your server fulfils these requirements.

  • Ubuntu 18.04 x86_64 LTS (Fresh installation)
  • If the server is virtual (VPS), OpenVZ may not be supported (Kernel 2.6)
  • More than 1GB of HDD
  • At least 1 core processor
  • 512MB minimum RAM
  • At least 1 public IP Address (NAT VPS is not supported)

VPS Providers such as AWS include an external firewall for your VPS. Please open port 22, 80 and 443 to install Cipi.
To install a new server click the create button, fill the form with IP information, SSH into your server as root and run the installation script given by Cipi.

Parameter Description
Name A name to indentify your server.
IP The public IP of your server.
Provider Your server provider name.
Location Your server location.

AWS by default disables root login. To login as root inside AWS, login as default user and then use command: sudo -s. Installation may take up to about 5 minutes minimum which may also depend on your server's internet speed. After the installation is completed, you are ready to use Cipi to manage your server.

Applications

An Application is a website that can be managed by can adding or deleting and it comes with a related MySql database.

Each Application is separated into its own folder, with its own database and permissions and served to the public so if one of your Web Applications is hacked, the hacker will not be able to compromise other websites on your server.

Creating an Application is easier than you can imagine. Click the create button and you will see a form to fill.

Parameter Description
Domain The domain or subdomain name to access to your website. Your domain does not have to be active to set up a server. You have to set your domain/submain DNS to your server IP address to use it.
Server Choose the desired host server for your application.
Basepath Choose the virtualhost document-root path.
Autoinstall Choose a preinstallation script. You can chose a simple pure Web Application (PHP/MySql), a Laravel Application, a Wordpress Application or init a Github repository.

Hold on the installation process and your application will be ready in few minutes with the Application information summary.

Github integration

If you create a "Github repository" Application you will find a "git" folder into your home path.
All you have to do to connect and deploy your Github repository into your Application is:

  • SSH into your server with Application user
  • Copy the git/deploy.pub key into your Github SSH keys area
  • Configure repository address, branch and postscript data into git/deploy.sh script
  • Run deploy everytime you need with: sh git/deploy.sh

Aliases

For each Application, you can create one or more Application Alias. The Application Alias allows you to create different Applications but points to the same folder.

To create an Alias, click create button in "Aliases" area and fill the form.

SSL certificates

Using Cipi, you can attach one or more free SSL/TLS from Let's Encrypt to your Applications / Aliases.

All you have to do is click the locker icon in the Application/Alias row.

Reset creadentials

If you need to reset Application SSH/SFTP and MySql user password you can find an useful function into Users section that lets you to do it with just a click (key icon in the desired user row).

Cronjobs

Each Application user can manage its cronjobs simply SSHing into server and using crontab -e command.