Step-by-Step Guide to Installing ApostropheCMS on Ubuntu 18.04 LTS

ApostropheCMS is a robust, open-source content management system that excels in building both simple and complex content-rich websites. It is an intuitive, in-context CMS constructed using Node.js and MongoDB, offering ease of customization for on-the-fly content editing. This CMS is trusted globally by organizations of all sizes for developing and managing mission-critical websites and applications. ApostropheCMS also allows for the creation of relationships between documents, such as linking blog posts to their respective authors.

Features

  • Import content seamlessly from CSV or Excel files.
  • Impose editing restrictions on pages, ensuring only authorized individuals or groups can make modifications.
  • Effortlessly roll back to previous versions of any page or document.
  • Utilizes the powerful MongoDB text search for backend search capabilities.
  • Offers content tagging and efficient tag management.

In this guide, we will walk through the installation process for ApostropheCMS on an Ubuntu 18.04 LTS server.

Requirements

  • A server running Ubuntu 18.04.
  • A configured static IP address on your system.
  • A set root password on your system.

Getting Started

Begin by updating your system to the latest version using the following commands:

apt-get update -y
apt-get upgrade -y

After updating, restart your system to ensure all changes take effect.

Next, install essential packages by executing the following command:

apt-get install git curl wget unzip -y

Install Node.js and Ruby

ApostropheCMS relies on Node.js, which isn’t available in the default Ubuntu 18.04 repositories. Add the Node.js repository by executing:

curl -sL https://deb.nodesource.com/setup_8.x | bash -

Now, install Node.js with:

apt-get install nodejs -y

To install Yarn, which is also not available by default, first add its repository:

Import the GPG key:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

Add the Yarn repository:

echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

Install Yarn and necessary packages:

apt-get install yarn zlib1g-dev build-essential libpq-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev -y

Set up Ruby environment:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

Install Ruby with:

rbenv install 2.5.3
rbenv global 2.5.3

Verify Ruby version:

ruby -v

Expected output:

ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]

Install ApostropheCMS

First, install MongoDB:

apt-get install mongodb -y
npm install mongodb --save

Ignore npm SaveError and enoent warnings. Verify MongoDB status:

systemctl status mongodb

Expected output:

? mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-01-24 15:20:29 UTC; 3min 39s ago
     Docs: man:mongod(1)
 Main PID: 3702 (mongod)
    Tasks: 23 (limit: 1870)
   CGroup: /system.slice/mongodb.service
           ??3702 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Jan 24 15:20:29 ubuntu1804 systemd[1]: Started An object/document-oriented database.

Proceed to install ApostropheCMS:

npm install imagemagick
npm install apostrophe-cli -g

Ignore npm warnings here as well. Once complete, you will see output similar to:

/usr/bin/apostrophe -> /usr/lib/node_modules/apostrophe-cli/bin/apostrophe
/usr/bin/apos -> /usr/lib/node_modules/apostrophe-cli/bin/apostrophe
+ apostrophe-cli@2.3.1
added 68 packages from 67 contributors in 14.19s

Create your project:

apostrophe create-project apostrophecms

Expected response:

Apostrophe  create-project  Grabbing the boilerplate from Github [1/2]
Cloning into 'apostrophecms'...
 
 Apostrophe  create-project  Setting up your project shortname [2/2]

Move into the project directory:

cd apostrophecms

Install required dependencies:

npm install

Configure the admin user:

node app.js apostrophe-users:add admin admin

Specify the admin password when prompted. Start ApostropheCMS:

node app.js

ApostropheCMS should now be running on port 3000.

Access ApostropheCMS

Open your browser and navigate to http://your-server-ip:3000. You will see the following landing page:

ApostropheCMS

Click on Login to access the login page:

Login to ApostropheCMS

Enter the admin username and password, then click on Log In to view the ApostropheCMS dashboard:

ApostropheCMS started

Congratulations on successfully installing ApostropheCMS on your server! Now, you can effortlessly create web content, manage it, and publish using this efficient CMS.

Begin adding a new page by selecting the page menu on the lower left corner:

Add new page

FAQ

Q: What are the system requirements for ApostropheCMS?

A: ApostropheCMS requires a server running Ubuntu 18.04, a static IP address, and a root password.

Q: Do I need to be an expert to use ApostropheCMS?

A: No, ApostropheCMS is designed to be user-friendly, even for beginners. Once set up, it offers a straightforward interface for content management.

Q: Can I customize the ApostropheCMS interface?

A: Yes, ApostropheCMS offers extensive customization options to tailor the system according to your needs.

Q: How can I secure my ApostropheCMS installation?

A: Regularly update your server and CMS, use strong passwords, and limit access only to trusted users for enhanced security.

Feel free to leave comments if you have any questions.