۱. نصب
sudo apt update
sudo apt install -y postgresql
sudo systemctl enable --now postgresql
ls /etc/postgresql/ # شمارهی نسخه، مثلاً 16 یا 18۲. نقش و پایگاه داده
sudo -u postgres createuser --pwprompt crm
sudo -u postgres createdb -O crm -E UTF8 crm
psql -h 127.0.0.1 -U crm -d crm -c 'select current_user, version();'۳. فقط localhost
حالت پیشفرض Ubuntu فقط گوش دادن روی localhost است که امنترین حالت است. بررسی کنید:
sudo ss -ltnp | grep 5432اگر برنامه روی سرور دیگری است، در postgresql.conf آدرس سرور را به listen_addresses اضافه کنید و در pg_hba.conf فقط IP همان سرور را با روش scram-sha-256 مجاز کنید. پورت 5432 را هم در فایروال فقط برای همان IP باز کنید.
۴. بکاپ شبانه
sudo install -d -o postgres -g postgres -m 700 /var/backups/pg
sudo nano /etc/cron.d/pg-backup# m h dom mon dow user command
15 2 * * * postgres pg_dump -Fc crm > /var/backups/pg/crm-$(date +\%F).dump && find /var/backups/pg -name '*.dump' -mtime +14 -deleteعلامت % در فایل cron معنای خاص دارد و باید با `` نوشته شود.
۵. بازیابی (و آزمایش منظم بازیابی)
بکاپی که هرگز بازیابی نشده، بکاپ نیست:
sudo -u postgres createdb -O crm crm_restore_test
sudo -u postgres pg_restore -d crm_restore_test /var/backups/pg/crm-2026-11-07.dump
sudo -u postgres psql -d crm_restore_test -c '\dt'
sudo -u postgres dropdb crm_restore_test