Skip to content

Instantly share code, notes, and snippets.

@gwijayas
Last active July 13, 2025 07:18
Show Gist options
  • Save gwijayas/9d4e9d0fc62f220a0ec2b0c6f715fe66 to your computer and use it in GitHub Desktop.
Save gwijayas/9d4e9d0fc62f220a0ec2b0c6f715fe66 to your computer and use it in GitHub Desktop.
systemd n8n dengan Postgresql

Kondisi:

  • Aplikasi n8n dijalankan oleh pengguna biasa, untukai, yang dipasang pada rumahnya, dan tidak memiliki hak sudo.
  • NodeJS dipasang pada /home/untukai/app/node2216/.
  • n8n dipasang menggunakan metode npm dan menggunakan database PostgreSQL
  • user1 adalah nama pengguna yang memiliki hak sudo

Database PostgreSQL

user1 login ke postgresql

user1$ sudo -u postgres psql

Buat user, database dan berikan hak ke user yang bersesuaian.

CREATE DATABASE n8n;
CREATE USER n8n WITH PASSWORD 'password_n8n';
GRANT ALL PRIVILEGES ON DATABASE n8n TO n8n;
-- terhubung dulu ke database n8n
\c n8n;
GRANT CREATE ON SCHEMA public TO n8n;

Buat direktori untuk meletakkan unit systemd dan log:

user1$ sudo mkdir -p /usr/local/lib/systemd/system/n8n.service.d/
user1$ sudo mkdir -p /usr/local/log/n8n
user1$ sudo chown -R untukai:untukai /usr/local/log/n8n

user1 membuat berkas /usr/local/lib/systemd/system/n8n.service.d/local.conf untuk meletakkan isian environment:

[Service]
Environment="PATH=/home/untukai/app/node2216/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="N8N_USER_FOLDER=/home/untukai"
Environment="N8N_VERSION_NOTIFICATIONS_ENABLED=false"
Environment="DB_POSTGRESDB_HOST=localhost"
Environment="DB_TYPE=postgresdb"
Environment="DB_POSTGRESDB_DATABASE=n8n"
Environment="DB_POSTGRESDB_SCHEMA=public"
Environment="DB_POSTGRESDB_USER=n8n"
Environment="DB_POSTGRESDB_PASSWORD=password_n8n"
Environment="GENERIC_TIMEZONE='Asia/Jakarta'"
Environment="TZ='Asia/Jakarta'"
Environment="N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false"
Environment="N8N_ENCRYPTION_KEY='nhspbfoJR55cFjc5C/Xmv2aqJiX/OQ7H'"
Environment="N8N_LOG_LEVEL=info"
Environment="N8N_LOG_OUTPUT=file"
Environment="N8N_LOG_FILE_LOCATION=/usr/local/log/n8n/n8n.log"

Agar hanya bisa dilihat oleh user tertentu, karena berisikan password:

user1$ sudo chown untukai:untukai /usr/local/lib/systemd/system/n8n.service.d/local.conf
user1$ sudo chmod 700 /usr/local/lib/systemd/system/n8n.service.d/local.conf

user1 membuat berkas unit systemd /usr/local/lib/systemd/system/n8n.service:

[Unit]
Description=n8n - Easily automate tasks across different services. n8n.io
After=network.target

[Service]
Type=simple
User=untukai
Group=untukai
ExecStart=/home/untukai/app/node2216/bin/n8n start
Restart=on-failure
[Install]
WantedBy=multi-user.target

Tes systemd:

#reload daftar service
user1$ sudo systemctl daemon-reload
#hidupkan n8n
user1$ sudo systemctl start n8n
#cek status n8n
user1$ sudo systemctl status n8n
#agar otomatis aktif setelah PC restart
user1$ sudo systemctl enable n8n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment