Deploy your Nx projects to Dokku with ease using this plugin. With a simple configuration, you can deploy your application directly to your Dokku server via nx deploy
- 📦 Installation
- 🚀 Usage
- 🛠️ Troubleshooting
- 🤝 Support
Make sure you have the following:
- An existing Nx workspace
- A buildable project set up within this workspace
NPM:
npm install nx-dokku --save-dev
Yarn:
yarn add nx-dokku --dev
Add a new target called deploy
in your project's project.json
file and configure one of the following executors:
Executor | Description | |
---|---|---|
a | deploy-dist |
Deploy your pre-built application to Dokku |
b | deploy-src |
Let Dokku build and deploy your application |
Deploy your pre-built application by pushing the distributable directory to Dokku. To achieve this without tracking build files in your main repository, a local repository will be generated within the distributable directory.
Option | Description | Default |
---|---|---|
host |
The host of your Dokku server | None |
app |
The name of your Dokku application | None |
path |
The path to the distributable directory | None |
dokkuBranch |
The deploy branch to push to on the Dokku server | master |
Example
{
"deploy": {
"executor": "nx-dokku:deploy-dist",
"options": {
"host": "server.example.com",
"app": "my-dokku-app",
"path": "dist/apps/my-app"
}
}
}
Let Dokku build and serve the application after deploying the project source.
Note: It's not recommended to use this executor for JS/TS projects due to the absence of a package.json
in the project directory.
Option | Description | Default |
---|---|---|
host |
The host of your Dokku server | None |
app |
The name of your Dokku application | None |
localBranch |
The local branch to deploy | main |
dokkuBranch |
The deploy branch to push to on the Dokku server | master |
Example
{
"deploy": {
"executor": "nx-dokku:deploy-src",
"options": {
"host": "server.example.com",
"app": "my-dokku-app",
"localBranch": "main"
}
}
}
When opting for the deploy-src
executor, the build directory of the Dokku app should align with the path to the project directory. Configure the build directory by running the following command on the Dokku server:
dokku builder:set my-dokku-app build-dir apps/my-app
To deploy your application, run:
nx deploy my-app
⭐ Tip: To unleash the true potential of Nx, use nx run affected -t deploy
in your CI/CD pipeline.
Ensure you've set up SSH key authentication with your Dokku host. Read more about it here.
Encountered an issue or have suggestions for improvements? Feel free to raise an issue.
Contributions are welcome!