Installation on Ubuntu
1. Install NVM (Node Version Manager)
- Update your package list:
sudo apt update
- Install NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
Note: Replace v0.35.3 with the latest version if necessary.
- Verify the installation:
nvm --version
- Install the latest version of Node.js using NVM:
nvm install node
2. Install Docker
Update System Packages:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupgAdd Docker's Official GPG Key:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpgSet Up Docker Repository:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullInstall Docker:
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginVerify Docker Installation:
docker --version
Using Snap
Install Docker using Snap:
sudo snap install docker
This installs the Snap version of Docker, typically updated to version
27.2.0
or later.
Verify Installations
Check Docker version:
docker --version
3. Install Docker Compose
Download the Latest Version of Docker Compose:
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-composeSet Executable Permissions:
chmod +x ~/.docker/cli-plugins/docker-compose
Verify Docker Compose Installation:
docker compose version
Using Snap
To install Docker Compose directly using Apt, you can use the following command:
sudo apt install docker-compose
Verify Installations
Check Docker Compose version:
docker-compose --version
4. Allow Managing Docker as a Non-Root User
- Add your user to the Docker group:
sudo usermod -aG docker $USER
- Log out and log back in for the changes to take effect, or run:
newgrp docker
5. Install Xest
- Install Xest globally using NPM:
npm install -g xest
After installing the XEST CLI globally, you can now bootstrap your API.
Bootstrapping Your API
In order to create your API, you need to run the following commmand:
xx [project-name]
With one simple command, you will be installing all the necessary packages, utils, middlewares and required modules will be created for you. Have a look at the created directory.
cd project-name
to start your Xest API, run
xx run
Et voila! You're ready to Xest :)
The project-name directory will be created, node modules and a few other boilerplate files will be installed, and a src/ directory will be created and populated with several core files, forming a new API-directory with the following setup;
โโโ README.md
โโโ index.js
โโโ package-lock.json
โโโ package.json
โโโ node_modules
โโโ migrations
โโโ test
โโโ .env
โโโ .eslintignore
โโโ .eslintrc
โโโ .gitattributes
โโโ database.json
โโโ jsconfig.json
โโโ Makefile
โโโ database
โ โโโ database-schema.sql
โ โโโ seed-data.sql
โ โโโ docker-compose.yml
โ โโโ test-database.json
โโโ src
docker-compose.yml
is our local development environment configuration. When you run your application, a MySQL container will be started for you. You can connect to the local database instance by using the credentials listed in the docker-compose.yml
file.
database-schema.sql
is where you will define your database schema. It will be a series of CREATE TABLE statements which is used to populate your local development database.
seed-data.sql
will contain the test data that you want to insert into your database whilst developing or testing your application locally.