Building and Deploying Moose Applications
This guide will walk you through the process of building a Moose application and deploying it to a server that does not have internet access. We'll cover both the build environment setup and the deployment environment requirements.
Build Environment Setup
Prerequisites
Before you can build a Moose application, you need to set up your build environment with the following dependencies:
OS:
- Debian 10+
- Ubuntu 18.10+
- Fedora 29+
- CentOS/RHEL 8+
- Amazon Linux 2023+
- Mac OS 13+
Common CLI utilities:
- zip
- curl (optional, for installing the Moose CLI)
Typescript build environment requirements:
- Node.js 20 or later
- npm, yarn or pnpm package manager
- Moose CLI
Setting up the Build Environment
First, ensure you have Node.js installed. We recommend using nvm (Node Version Manager):
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Reload shell configuration
source ~/.bashrc # or ~/.zshrc
# Install and use Node.js 20
nvm install 20
nvm use 20Verify the installation:
node --version
npm --version # or yarn --versionInstalling Moose CLI (Optional)
You can install the Moose CLI using the official installer:
curl -SfsL https://fiveonefour.com/install.sh | bash -s -- moose
source ~/.bashrc # Or restart your terminalor
npm install -g @514labs/moose-cliBuilding Your Application
1. Initialize a New Project (Optional)
This step is optional if you already have a Moose project. Create a new Moose project:
moose init your-project-name ts
cd your-project-nameInstall dependencies:
npm install # or yarn install2. Build the Application
MooseTip:
Make sure you have the zip utility installed (sudo apt install zip) before building your application.
If you installed the moose cli to be available globally, you can build the application with the following command:
moose buildOr if you installed the moose cli to be available locally, you can build the application with the following command:
Create the deployable package:
npm run moose-cli buildThis will create a zip file in your project directory with a timestamp, for example: your-project-name-YYYY-MM-DD.zip
Deployment Environment Setup
Deployment Prerequisites
The deployment server requires:
- Node.js 20 or later
- Unzip utility
Setting up the Deployment Environment
- Install the runtime environment:
Follow the Node.js installation steps from the build environment setup section.
- Install the unzip utility:
sudo apt install unzipDeploying Your Application
-
Copy your built application package to the deployment server
-
Extract the application:
unzip your-project-name-YYYY-MM-DD.zip -d ./app
cd ./app/packager- Start your application:
# If using npm scripts
npm run moose-cli prod
# Or directly with moose
moose prodWarning:
Ensure all required environment variables and configurations are properly set before starting your application.
Troubleshooting
- Verify that Node.js is properly installed using
node --version - Check that your application's dependencies are properly listed in
package.json - If you encounter TypeScript compilation errors, ensure your
tsconfig.jsonis properly configured