Quick guide to reclaim space and automate disk maintenance for n8n running in Docker on DigitalOcean Droplets.
คู่มือด่วนสำหรับเพิ่มพื้นที่และตั้งค่าบำรุงรักษาดิสก์อัตโนมัติบน Droplet ที่รัน n8n Docker
🔧 Command Generator
Generate custom commands with your specific paths and settings.
สร้างคำสั่งที่กำหนดเองด้วย path และการตั้งค่าของคุณ
Navigate to n8n Directory
ไปยังโฟลเดอร์ n8n
n8n Project Path (from find command in step 6)
Path โปรเจค n8n (จากคำสั่ง find ในขั้นตอน 6)
# Example: /home/user/n8n
cd /path/to/your/n8n/folder
docker compose down && docker compose up -d
Generate Webhook Report Script
สร้างสคริปต์รายงาน Webhook
n8n Webhook URL
URL Webhook ของ n8n
#!/bin/bash
# Replace YOUR_N8N_WEBHOOK_URL with your actual webhook URL
WEBHOOK_URL="https://your-n8n-instance.com/webhook/maintenance-logs"
DOCKER_LOG=$(tail -1 /var/log/docker_prune.log 2>/dev/null)
BINARY_LOG=$(tail -1 /var/log/binary_data_cleanup.log 2>/dev/null)
VACUUM_LOG=$(tail -1 /var/log/db_vacuum.log 2>/dev/null)
DISK_LOG=$(tail -1 /var/log/disk_trend.log 2>/dev/null)
curl -X POST -H "Content-Type: application/json" -d "$(jq -n \
--arg docker "$DOCKER_LOG" \
--arg binary "$BINARY_LOG" \
--arg vacuum "$VACUUM_LOG" \
--arg disk "$DISK_LOG" \
'{docker_prune:$docker, binary_data_cleanup:$binary, db_vacuum:$vacuum, disk_trend:$disk}')" \
"$WEBHOOK_URL"
Script Location (optional)
ตำแหน่งสคริปต์ (ไม่บังคับ)
# Add to cron
15 6 * * * /root/send_logs_to_n8n.sh
1. Check Current Disk Usage
1. ตรวจสอบพื้นที่ดิสก์ปัจจุบัน
df -h
- Look at Use% for your main disk (
/dev/vda1). - ดูที่ Use% สำหรับดิสก์หลัก (
/dev/vda1)
2. Expand Disk / Partition (Optional)
2. ขยายดิสก์ / พาร์ทิชัน (ถ้าจำเป็น)
Check new size
ตรวจสอบขนาดใหม่
lsblk
Install growpart
ติดตั้ง growpart
sudo apt update && sudo apt install cloud-guest-utils
Grow partition
ขยายพาร์ทิชัน
sudo growpart /dev/vda 1
Resize filesystem
ปรับขนาดไฟล์ระบบ
sudo resize2fs /dev/vda1
Note: Use
xfs_growfs /for XFS filesystem.
หมายเหตุ: ใช้xfs_growfs /สำหรับไฟล์ระบบ XFS
3. Manual Docker Cleanup
3. ล้าง Docker ด้วยตนเอง
docker system prune -af --volumes
⚠️ Warning: This will remove all unused containers, networks, images, and volumes.
คำเตือน: คำสั่งนี้จะลบ containers, networks, images และ volumes ที่ไม่ได้ใช้ทั้งหมด
4. Configure Daily Cron Jobs
4. ตั้งค่า Cron Jobs รายวัน
Open crontab editor
เปิดตัวแก้ไข crontab
sudo crontab -e
First time? You'll be asked to choose an editor. Select nano (usually option 1) for beginners.
ครั้งแรก? จะถูกถามให้เลือกตัวแก้ไข เลือก nano (มักจะเป็นตัวเลือก 1) สำหรับผู้เริ่มต้น
Add these jobs
เพิ่มงานเหล่านี้
0 3 * * * docker system prune -af --volumes >> /var/log/docker_prune.log 2>&1
0 4 * * * find /var/lib/docker/volumes/n8n_data/_data/binaryData -type f -mtime +7 -delete >> /var/log/binary_data_cleanup.log 2>&1
0 5 * * * sqlite3 /var/lib/docker/volumes/n8n_data/_data/database.sqlite "VACUUM;" >> /var/log/db_vacuum.log 2>&1
0 6 * * * echo "$(date +'%F %T') $(df -h / | tail -1 | awk '{print $5}')" >> /var/log/disk_trend.log
How to paste: Use
Ctrl+Shift+Vor right-click and paste. Go to the bottom of the file and add these lines.
วิธีวาง: ใช้Ctrl+Shift+Vหรือคลิกขวาแล้ววาง ไปที่ท้ายไฟล์และเพิ่มบรรทัดเหล่านี้
Save and exit
บันทึกและออก
Press Ctrl+X, then Y, then Enter
5. Manual Database VACUUM
5. VACUUM ฐานข้อมูลด้วยตนเอง
Install sqlite3
ติดตั้ง sqlite3
sudo apt install sqlite3
Run VACUUM
รัน VACUUM
sqlite3 /var/lib/docker/volumes/n8n_data/_data/database.sqlite "VACUUM;"
6. n8n Execution Data Pruning
6. ลบข้อมูล Execution ของ n8n อัตโนมัติ
Find your docker-compose.yml file
หาไฟล์ docker-compose.yml ของคุณ
find /home -name "docker-compose.yml" 2>/dev/null
This shows the location of your docker-compose.yml file. Remember this path!
คำสั่งนี้แสดงตำแหน่ง ของไฟล์ docker-compose.yml จำ path นี้ไว้!
Navigate to the directory
ไปยังโฟลเดอร์
cd /path/to/your/n8n/folder
⚠️ Replace the path! Use the actual path from step 1. For example:
cd /home/user/n8n
เปลี่ยน path! ใช้ path จริงจากขั้นตอน 1 เช่น:cd /home/user/n8n
Make a backup copy
สำรองไฟล์
cp docker-compose.yml docker-compose.yml.backup
Safety first! This creates a backup in case something goes wrong.
ความปลอดภัยก่อน! สร้างไฟล์สำรองกรณีมีปัญหา
Edit the docker-compose.yml file
แก้ไขไฟล์ docker-compose.yml
nano docker-compose.yml
Find the environment section
หาส่วน environment
Look for a section like this:
environment:
- N8N_HOST=...
- N8N_PORT=...
หาส่วนที่มีลักษณะแบบนี้:
environment:
- N8N_HOST=...
- N8N_PORT=...
Add these two lines
เพิ่มสองบรรทัดนี้
- N8N_PRUNE_DATA=true
- N8N_PRUNE_DATA_MAX_AGE=14
Add at the end of the environment section. Make sure the spacing matches other lines (6 spaces before the dash).
เพิ่มที่ท้าย ของส่วน environment ให้แน่ใจว่าการเว้นวรรคตรงกับบรรทัดอื่น (6 ช่องว่างก่อนเครื่องหมายขีด)
Save and exit
บันทึกและออก
Press Ctrl+X, then Y, then Enter
Restart n8n containers
รีสตาร์ท n8n containers
docker compose down && docker compose up -d
This stops and starts n8n with the new settings. It may take 1-2 minutes.
คำสั่งนี้หยุดและเริ่ม n8n ด้วยการตั้งค่าใหม่ อาจใช้เวลา 1-2 นาที
Verify it's working
ตรวจสอบว่าทำงาน
docker compose ps
Check the status - you should see "Up" status for n8n containers.
ตรวจสอบสถานะ - ควรเห็นสถานะ "Up" สำหรับ n8n containers
7. Send Daily Log Report to n8n Webhook
7. ส่งรายงานล็อกรายวันไปยัง n8n Webhook
Install jq
ติดตั้ง jq
sudo apt install -y jq
Create script
สร้างสคริปต์
sudo nano /root/send_logs_to_n8n.sh
Paste this code
วางโค้ดนี้
#!/bin/bash
# Replace YOUR_N8N_WEBHOOK_URL with your actual webhook URL
WEBHOOK_URL="https://your-n8n-instance.com/webhook/maintenance-logs"
DOCKER_LOG=$(tail -1 /var/log/docker_prune.log 2>/dev/null)
BINARY_LOG=$(tail -1 /var/log/binary_data_cleanup.log 2>/dev/null)
VACUUM_LOG=$(tail -1 /var/log/db_vacuum.log 2>/dev/null)
DISK_LOG=$(tail -1 /var/log/disk_trend.log 2>/dev/null)
curl -X POST -H "Content-Type: application/json" -d "$(jq -n \
--arg docker "$DOCKER_LOG" \
--arg binary "$BINARY_LOG" \
--arg vacuum "$VACUUM_LOG" \
--arg disk "$DISK_LOG" \
'{docker_prune:$docker, binary_data_cleanup:$binary, db_vacuum:$vacuum, disk_trend:$disk}')" \
"$WEBHOOK_URL"
⚠️ Important: Replace
https://your-n8n-instance.com/webhook/maintenance-logswith your actual n8n webhook URL!
สำคัญ: เปลี่ยนhttps://your-n8n-instance.com/webhook/maintenance-logsเป็น URL webhook จริงของคุณ!
Save and exit
บันทึกและออก
Press Ctrl+X, then Y, then Enter
Make script executable
ทำให้สคริปต์รันได้
chmod +x /root/send_logs_to_n8n.sh
This step is required! Without this, the script won't run automatically.
ขั้นตอนนี้จำเป็น! ถ้าไม่ทำ สคริปต์จะไม่รันอัตโนมัติ
Add cron job
เพิ่ม cron job
sudo crontab -e
Add this line at the bottom
เพิ่มบรรทัดนี้ที่ท้ายไฟล์
15 6 * * * /root/send_logs_to_n8n.sh
This runs at 06:15 daily - 15 minutes after the disk logging, so all logs are ready.
จะรันเวลา 06:15 ทุกวัน - 15 นาทีหลังจากบันทึกดิสก์ เพื่อให้ log ทั้งหมดพร้อม
Save and exit
บันทึกและออก
Press Ctrl+X, then Y, then Enter
Final Result
ผลลัพธ์สุดท้าย
- 03:00 - Daily Docker cleanup / ล้าง Docker รายวัน
- 04:00 - Daily binaryData cleanup / ล้าง binaryData รายวัน
- 05:00 - Daily VACUUM of n8n database / VACUUM ฐานข้อมูล n8n รายวัน
- 06:00 - Daily disk-usage logging / บันทึกการใช้ดิสก์รายวัน
- 06:15 - Daily webhook report / ส่งรายงาน webhook รายวัน
- Automatic - Execution data pruning by n8n / ลบข้อมูล execution อัตโนมัติโดย n8n
Need help? Contact us at ShantiLink.com 💬