部署与运维

Deploy to Digital Ocean

This hosting guide shows you how to self-host n8n on a DigitalOcean droplet. It uses:

  • Caddy (a reverse proxy) to allow access to the Droplet from the internet. Caddy will also automatically create and manage SSL / TLS certificates for your n8n instance.
  • Docker Compose to create and define the application components and how they work together.

Create a Droplet

  1. Log in to DigitalOcean.
  2. Select the project to host the Droplet, or create a new project.
  3. In your project, select Droplets from the Manage menu.
  4. Create a new Droplet using the Docker image available on the Marketplace tab.

Log in to your Droplet and create new user

The rest of this guide requires you to log in to the Droplet using a terminal with SSH. Refer to How to Connect to Droplets with SSH for more information.

You should create a new user, to avoid working as the root user:

  1. Log in as root.
  2. Create a new user:
shell
adduser <username>
  1. Follow the prompts in the CLI to finish creating the user.
  2. Grant the new user administrative privileges:
shell
usermod -aG sudo <username>

You can now run commands with superuser privileges by using sudo before the command.

  1. Follow the steps to set up SSH for the new user: Add Public Key Authentication.
  2. Log out of the droplet.
  3. Log in using SSH as the new user.

Clone configuration repository

Docker Compose, n8n, and Caddy require a series of folders and configuration files. You can clone these from this repository into the home folder of the logged-in user on your Droplet. The following steps will tell you which file to change and what changes to make.

Clone the repository with the following command:

shell
git clone https://github.com/n8n-io/n8n-docker-caddy.git

And change directory to the root of the repository you cloned:

shell
cd n8n-docker-caddy

Default folders and files

The host operating system (the DigitalOcean Droplet) copies the two folders you created to Docker containers to make them available to Docker. The two folders are:

  • caddy_config: Holds the Caddy configuration files.
  • local_files: A folder for files you upload or add using n8n.

Create Docker volumes

To persist the Caddy cache between restarts and speed up start times, create a Docker volume that Docker reuses between restarts:

shell
sudo docker volume create caddy_data

Create a Docker volume for the n8n data:

shell
sudo docker volume create n8n_data

Set up DNS

n8n typically operates on a subdomain. Create a DNS record with your provider for the subdomain and point it to the IP address of the Droplet. The exact steps for this depend on your DNS provider, but typically you need to create a new "A" record for the n8n subdomain. DigitalOcean provide An Introduction to DNS Terminology, Components, and Concepts.

Open ports

n8n runs as a web application, so the Droplet needs to allow incoming access to traffic on port 80 for non-secure traffic, and port 443 for secure traffic.

Open the following ports in the Droplet's firewall by running the following two commands:

shell
sudo ufw allow 80
sudo ufw allow 443

Configure n8n

n8n needs some environment variables set to pass to the application running in the Docker container. The example .env file contains placeholders you need to replace with values of your own.

Open the file with the following command:

shell
nano .env

The file contains inline comments to help you know what to change.

Refer to Environment variables for n8n environment variables details.

The Docker Compose file

The Docker Compose file (docker-compose.yml) defines the services the application needs, in this case Caddy and n8n.

  • The Caddy service definition defines the ports it uses and the local volumes to copy to the containers.
  • The n8n service definition defines the ports it uses, the environment variables n8n needs to run (some defined in the .env file), and the volumes it needs to copy to the containers.

The Docker Compose file uses the environment variables set in the .env file, so you shouldn't need to change it's content, but to take a look, run the following command:

shell
nano docker-compose.yml

Configure Caddy

Caddy needs to know which domains it should serve, and which port to expose to the outside world. Edit the Caddyfile file in the caddy_config folder.

shell
nano caddy_config/Caddyfile

Change the placeholder domain to yours. If you followed the steps to name the subdomain n8n, your full domain is similar to n8n.example.com. The n8n in the reverse_proxy setting tells Caddy to use the service definition defined in the docker-compose.yml file:

text
n8n.<domain>.<suffix> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

If you were to use automate.example.com, your Caddyfile may look something like:

text
automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Start Docker Compose

Start n8n and Caddy with the following command:

shell
sudo docker compose up -d

This may take a few minutes.

Test your setup

In your browser, open the URL formed of the subdomain and domain name defined earlier. Enter the user name and password defined earlier, and you should be able to access n8n.

Stop n8n and Caddy

You can stop n8n and Caddy with the following command:

shell
sudo docker compose stop

Updating

If you run n8n using a Docker Compose file, follow these steps to update n8n:

sh
# Navigate to the directory containing your docker compose file
cd </path/to/your/compose/file/directory>

# Pull latest version
docker compose pull

# Stop and remove older version
docker compose down

# Start the container
docker compose up -d

Next steps

官方原文和授权

本页来自 N8N 英文官方网站固定快照,并转换成 xueai 静态页面。内容以 N8N 持续更新的官方页面为准。

来源、授权与修改

本站保留许可证、固定提交号、社区作者和修改说明,不代表 n8n 对本站背书。

查看许可证查看来源和修改说明