# Installing from source

Advanced

You most likely don't need this. Please don't install Directus from source unless you're absolutely sure of what you're doing.

When you have a complex infrastructure that requires special CI and CD integrations that will handle building dependencies etc, you might want to build from source.

CI/CD

If you're thinking about using this to auto-deploy new versions of Directus, you can also consider using a build script to remove the vendor folder and re-install the dependencies using composer. That will net you the same end-result will still being able to rely on the GitHub releases.

# Step 1: Clone the app and API repos separately

The directus/directus repo contains a pre-built bundle for both at all times. There is no "source bundle" available. You have to clone the individual repos for the app and API; directus/app and directus/api respectively.

Make sure to be on the latest tagged release. You can use this snippet to get to the latest tag (h/t to Julien Renaux (opens new window)):

$ git fetch --tags

$ latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)

$ git checkout $latestTag

# Step 2: Install the dependencies

# App

The app uses Vue and manages its dependencies through NPM. Install the npm dependencies using npm or yarn.

# API

The API uses Composer for its package management. Install the dependencies using Composer.

# Step 3: Build the app for production

Running npm run build will build the app production ready to the dist folder.

# Step 4: Move the app inside the API.

The app expects to be served from the APIs /public/admin folder. Therefore, you have to move the contents of the app's dist folder into the APIs /public/admin folder.

# (Optional) Step 5: Remove unnecessary files

Depending on your needs, you might not want / need some of the files in the API repo. The folders that are required to run Directus are: bin, config, logs, migrations, public, src, vendor.