Avocado
  • Get Started
  • Installation - Quick Guide
  • Installation - Full Guide
  • Questions
Powered by GitBook
On this page
  • Step 1: Point your domain to your server
  • Step 2: Install LEMP stack on Ubuntu 18.04
  • Step 3: Clone the project to your server
  • Step 4: Edit your website settings
  • Step 5: Edit folder permissions
  • Step 6: Finish installation

Was this helpful?

Installation - Full Guide

Full guidance on how to self-host an instance.

PreviousInstallation - Quick GuideNextQuestions

Last updated 4 years ago

Was this helpful?

Step 1: Point your domain to your server

Feel free to skip this step if you already have set up the domain.

If you have not done so, please add an A record on your domain's DNS server and point your domain to the server where you are going to host this software. We strongly recommend you use a subdomain such as "app.avocado.vc" as you might want to use the root domain for your general website.

We also strongly recommend you use to manage your domain. It is free and offers free SSL certificate. SSL is required to run this software properly.

Step 2: Install LEMP stack on Ubuntu 18.04

Feel free to skip this step if you already have set up your Nginx + PHP7.x + MySQL. Just remember to (1) create a database, (2) turn short_open_tag = On for your PHP, and (3) have php-curl extension installed.

Assuming you are using a new server with Ubuntu 18.04 system, please follow the following instructions to install LEMP stack.

You will need to create a database to store all your data. For example, you can name the database as avocado. You can also create a new user that can have access to this database if you do not want to use the root user.

$ sudo mysql -u root
mysql> CREATE DATABASE avocado;
mysql> CREATE USER 'testuser' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON avocado.* TO 'testuser';
mysql> FLUSH PRIVILEGES;
mysql> exit

Once you finish installing everything, make sure you turn the short_open_tag feature on in your php.ini file.

# Edit this in your php.ini file
short_open_tag = on
upload_max_filesize = 200M;
post_max_size = 200M;

If you are using PHP-FPM, you must restart that service. Replace php7.2 with your own version, e.g, php7.1, php7.3, etc.

$ sudo service php7.2-fpm restart

If you have not installed the php-curl extension, you can run the following commands to install it.

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php7.2-fpm php7.2-gd php7.2-curl php7.2-mysql php7.2-dev php7.2-cli php7.2-common php7.2-mbstring php7.2-intl php7.2-zip php7.2-bcmath php7.2-exif imagemagick

To enable large attachments uploading, you also want to update the limit of your Nginx as follows.

$ sudo nano /etc/nginx/nginx.conf

# Change or add the following value in this document to a large value such as 200M
client_max_body_size 200M;

$ sudo systemctl reload nginx

Step 3: Clone the project to your server

To get a copy of this, please contact hello@avocado.vc to get your API Key/Secret first. Clone the project to your server. Go to your web server root folder (e.g. /var/www) and run the following command to clone a copy. Replace DOMAIN, API_KEY , API_SECRET with your own ones.

$ curl "https://api.avocado.vc/install?domain=DOMAIN&key=API_KEY&secret=API_SECRET" --output install.sh && bash install.sh

Step 4: Edit your website settings

If you are using Nginx, your website settings are usually under /etc/nginx/sites-available/. Go to this folder and create a new website profile as instructed below.

$ sudo nano /etc/nginx/sites-available/avocado

In the new file, copy and paste the following content. Please replace YOUR DOMAIN with the domain you created in the first step.

server
{
    listen 80;
    server_name YOUR DOMAIN;
    index index.php index.html index.htm default.php default.htm default.html;
    root /var/www/avocado;
    
    # Forbidden files or directories
    location ~ /\. {
        deny all;
    }
    
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
    
    location / {
        try_files $uri $uri/ $uri.html $uri.php$is_args$query_string;
    }
}

After adding this content, save and close the file. Enable your new server block by creating a symbolic link from your new server block configuration file (in the /etc/nginx/sites-available/ directory) to the /etc/nginx/sites-enabled/ directory:

$ sudo ln -s /etc/nginx/sites-available/avocado /etc/nginx/sites-enabled/

Then, unlink the default configuration file from the /sites-enabled/ directory:

$ sudo unlink /etc/nginx/sites-enabled/default

Last but not least, reload the Nginx configuration profiles.

$ sudo systemctl reload nginx

If you are using Apache instead of Nginx, remember to add the following to your .htaccess file to avoid people visiting your .env file that will contain your confidential website configuration information.

<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>

Step 5: Edit folder permissions

The software need write permission to some folders to create configuration files and save uploaded attachments.

$ cd /var/www/avocado && chmod -R 777 partials && chmod -R 777 assets/uploads

Step 6: Finish installation

Go to your website, and you will be redirected to the installation page automatically if everything works properly. For example, in this case, we can open https://demo.avocado.vc

You will need to set up your super admin account and provide the MySQL database connection information, which you set up in your first step when installing MySQL.

Once you have successfully installed, you will be redirected to the login page. You can now login with the super admin account that you just set up. You can also change any setting or customize the site under "Settings" once you log into the platform.

You can locate your php.ini file as instructed . Mine is located at /etc/php/7.2/fpm/php.ini. In you php.ini file, make sure short_open_tag = on, upload_max_filesize and post_max_size variables are increased to a larger value to allow you handle attachments upload.

here
Cloudflare
How to Install the LEMP Stack on Ubuntu 18.04Linode Guides & Tutorials
LEMP installation instruction
Logo
Example of adding an A record on Cloudflare
Installation page