# Moose / Deploying / Deploying On An Offline Server Documentation – Python ## Included Files 1. moose/deploying/deploying-on-an-offline-server/deploying-on-an-offline-server.mdx ## Deploying on an offline server Source: moose/deploying/deploying-on-an-offline-server/deploying-on-an-offline-server.mdx Deploying on an offline server # 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) Python build environment requirements: 1. Python 3.12 or later (we recommend using pyenv for Python version management) 2. pip ### Setting up the Build Environment First, install the required system dependencies: ```bash sudo apt update sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils \ tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev ``` Install pyenv and configure your shell: ```bash curl -fsSL https://pyenv.run | bash ``` Add the following to your `~/.bashrc` or `~/.zshrc`: ```bash export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" ``` Install and set Python 3.12: ```bash pyenv install 3.12 pyenv global 3.12 ``` Verify the installation: ```bash python --version ``` ### Installing Moose CLI (Optional) You can install the Moose CLI using the official installer: ```bash curl -SfsL https://fiveonefour.com/install.sh | bash -s -- moose source ~/.bashrc # Or restart your terminal ``` or ```bash pip install moose-cli ``` ## Building Your Application ### 1. Initialize a New Project (Optional) This step is optional if you already have a Moose project. Create a new Moose project: ```bash moose init your-project-name py cd your-project-name ``` ### 2. Build the Application 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: ```bash moose build ``` Or if you installed the moose cli to be available locally, you can build the application with the following command: The build process will create a deployable package: ```bash moose build ``` This will create a zip file in your project directory with a timestamp, for example: `your-project-name-YYYY-MM-DD.zip` ## Deployment Environment Setup ### Prerequisites The deployment server requires: 1. Python 3.12 or later 3. Unzip utility ### Setting up the Deployment Environment 1. Install the runtime environment: Follow the Python installation steps from the build environment setup section. 2. Install the unzip utility: ```bash sudo apt install unzip ``` ## Deploying Your Application 1. Copy your built application package to the deployment server 2. Extract the application: ```bash unzip your-project-name-YYYY-MM-DD.zip -d ./app cd ./app/packager ``` 3. Start your application: ```bash moose prod ``` Ensure all required environment variables and configurations are properly set before starting your application. ## Troubleshooting - Verify that Python is properly installed using `python --version` - Check that your application's dependencies are properly listed in `requirements.txt` - If you encounter Python import errors, ensure your `PYTHONPATH` is properly set