Cześć. Dziś na tapetę bierzemy konfigurację Apache2 w Debian 12 do celów instalacji n8n.
n8n jest aplikacją stworzoną na wzór make.com do automatyzacji procesów (np. publikacji postów na social media). Posiada wersję darmową (Community Edition) oraz płatną (wersja Cloud i self-hosted). Dziś skupimy się na wersji Community, którą zahostujemy (on-premise) na serwerze z Debian 12. Jeśli obsługujesz Debian 11 – sprawdź ten poradnik.

Zacznijmy więc od instalacji Dockera oraz powiązanych paczek (źródło):
apt-get update
apt-get install ca-certificates curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update;
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Następnie instalujemy Apache2 z zależnościami oraz certbotem:
apt install apache2 apache2-dev certbot
Teraz przejdźmy do najistotniejszej rzeczy – konfiguracji wirtualnego hosta (VirtualHost). Tworzymy plik: n8n.conf w katalogu /etc/apache2/sites-available/
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName (NAZWA_DOMENY)
# Logi
ErrorLog ${APACHE_LOG_DIR}/n8n-error.log
CustomLog ${APACHE_LOG_DIR}/n8n-access.log combined
# Reverse Proxy
ProxyPreserveHost On
ProxyRequests Off
ProxyPreserveHost On
ProxyRequests Off
# Standardowy reverse proxy do hosta n8n
ProxyPass / http://127.0.0.1:5678/
ProxyPassReverse / http://127.0.0.1:5678/
# Obsługa WebSocketów
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:5678/$1 [P,L]
ProxyPassMatch "^/(.*\.sockjs.*)$" "ws://127.0.0.1:5678/$1"
ProxyPassReverse "/rest/push/" "ws://127.0.0.1:5678/rest/push/"
</VirtualHost>
</IfModule>
Włącz potrzebne moduły Apache2:
a2enmod proxy proxy_http proxy_wstunnel rewrite
To jest moment na podpięcie subdomeny / domeny do serwera. Przekieruj na adres IP Twojego serwera wpis IN A, np:
n8n.jankowalski.pl. 3600 IN A 192.168.124.124
Teraz chwilę poczekajmy na propagację rekordu DNS.
W tym czasie możemy przejść do instalacji n8n przez Docker:
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
Po tym aktywujemy VirtualHosta:
a2ensite n8n
Następnie tworzymy certyfikat SSL:
sudo certbot --apache -d (nazwa_domeny) --non-interactive --agree-tos -m (twój e-mail)
Pamiętaj o podmienieniu danych na Twoje!
Teraz możesz pocałow… zrestartować Apache2:
systemctl enable apache2
systemctl restart apache2
Przejdź teraz pod adres: https://(twojadomena.pl) i skonfiguruj swoją instancję n8n! 🙂