پرش به محتویات

نصب برای تیم و شرکت

این راهنما برای راه‌اندازی Penpot روی یک سرور داخلی شرکت است که همه اعضای تیم بتوانند از آن استفاده کنند.

چرا سرور داخلی؟

  • همکاری بهتر: همه روی یک سرور کار می‌کنند
  • داده‌های متمرکز: همه پروژه‌ها در یک جا
  • امنیت بیشتر: داده‌ها روی شبکه داخلی شرکت
  • بدون نیاز به اینترنت: فقط شبکه داخلی کافی است
  • مدیریت آسان‌تر: یک نفر مدیریت می‌کند

پیش‌نیازها

سخت‌افزار سرور

  • CPU: حداقل ۴ هسته (۸ هسته توصیه می‌شود)
  • RAM: حداقل ۱۶ گیگابایت (۳۲ گیگابایت برای تیم بزرگ)
  • فضای دیسک: حداقل ۱۰۰ گیگابایت (SSD توصیه می‌شود)
  • شبکه: اتصال به شبکه داخلی شرکت

نرم‌افزار

  • سیستم عامل: لینوکس (اوبونتو ۲۰.۰۴ یا جدیدتر توصیه می‌شود)
  • Docker: نسخه ۲۰.۱۰ یا جدیدتر
  • Docker Compose: نسخه ۲.۰ یا جدیدتر

مراحل نصب

مرحله ۱: آماده‌سازی سرور

نصب Docker:

# به‌روزرسانی سیستم
sudo apt-get update
sudo apt-get upgrade -y

# نصب Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# اضافه کردن کاربر به گروه docker
sudo usermod -aG docker $USER

# نصب Docker Compose
sudo apt-get install docker-compose-plugin -y

# راه‌اندازی Docker
sudo systemctl start docker
sudo systemctl enable docker

# بررسی نصب
docker --version
docker compose version

مرحله ۲: دانلود فایل‌های پیکربندی

# ساخت پوشه پروژه
mkdir -p /opt/penpotify
cd /opt/penpotify

# دانلود فایل‌های docker-compose.yml و .env
# (از سایت پن‌پاتیفای یا مخزن GitHub)

مرحله ۳: تنظیم فایل .env

فایل .env را باز کنید و تنظیمات زیر را انجام دهید:

# آدرس عمومی Penpot (با IP سرور)
PENPOT_PUBLIC_URI=http://192.168.1.100:9001

# فعال کردن ثبت‌نام
PENPOT_REGISTRATION_ENABLED=true

# تنظیمات ایمیل (اختیاری)
# PENPOT_SMTP_HOST=smtp.example.com
# PENPOT_SMTP_PORT=587
# PENPOT_SMTP_USER=your-email@example.com
# PENPOT_SMTP_PASSWORD=your-password

نکته مهم: 192.168.1.100 را با IP واقعی سرور خود جایگزین کنید.

مرحله ۴: پیدا کردن IP سرور

# نمایش IP سرور
ip addr show

# یا
hostname -I

IP را یادداشت کنید و در .env استفاده کنید.

مرحله ۵: راه‌اندازی Penpot

# راه‌اندازی
docker compose up -d

# بررسی وضعیت
docker compose ps

# مشاهده لاگ‌ها
docker compose logs -f

مرحله ۶: بررسی دسترسی

از مرورگر روی سرور:

http://localhost:9001

یا از کامپیوتر دیگر در شبکه:

http://192.168.1.100:9001

تنظیمات فایروال

UFW (اوبونتو)

# فعال کردن UFW
sudo ufw enable

# باز کردن پورت 9001
sudo ufw allow 9001/tcp

# بررسی وضعیت
sudo ufw status

firewalld (CentOS/RHEL)

# باز کردن پورت
sudo firewall-cmd --add-port=9001/tcp --permanent
sudo firewall-cmd --reload

# بررسی
sudo firewall-cmd --list-ports

دسترسی اعضای تیم

برای اعضای تیم

همه اعضای تیم می‌توانند با IP سرور به Penpot دسترسی داشته باشند:

http://192.168.1.100:9001

نکته: اگر از DNS داخلی استفاده می‌کنید، می‌توانید یک نام دامنه داخلی تنظیم کنید:

http://penpot.company.local:9001

تنظیم DNS داخلی (اختیاری)

اگر می‌خواهید از نام دامنه استفاده کنید:

  1. در سرور DNS شرکت، یک رکورد A اضافه کنید:

    penpot.company.local → 192.168.1.100
    

  2. در فایل .env:

    PENPOT_PUBLIC_URI=http://penpot.company.local:9001
    

  3. Penpot را ری‌استارت کنید:

    docker compose restart
    

مدیریت کاربران

ساخت حساب کاربری

  1. اولین کاربر باید از طریق رابط وب ثبت‌نام کند
  2. بعد از ثبت‌نام، می‌تواند تیم بسازد و اعضای دیگر را دعوت کند

مدیریت دسترسی

  • مالک تیم: می‌تواند اعضا را اضافه/حذف کند
  • اعضای تیم: می‌توانند روی پروژه‌ها کار کنند
  • مشاهده‌کننده: فقط می‌تواند مشاهده کند

بکاپ و بازیابی

گرفتن بکاپ منظم

#!/bin/bash
# فایل backup.sh

# توقف Penpot
cd /opt/penpotify
docker compose down

# ساخت بکاپ
BACKUP_DIR="/backup/penpot"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/penpot-backup-$DATE.tar.gz volumes/

# راه‌اندازی مجدد
docker compose up -d

echo "Backup completed: $BACKUP_DIR/penpot-backup-$DATE.tar.gz"

اجرای خودکار بکاپ (cron):

# ویرایش crontab
crontab -e

# اضافه کردن این خط (هر روز ساعت ۲ صبح)
0 2 * * * /opt/penpotify/backup.sh

بازیابی از بکاپ

# توقف Penpot
docker compose down

# استخراج بکاپ
cd /opt/penpotify
tar -xzf /backup/penpot/penpot-backup-YYYYMMDD_HHMMSS.tar.gz

# راه‌اندازی مجدد
docker compose up -d

به‌روزرسانی

# 1. بکاپ بگیرید
./backup.sh

# 2. دانلود ایمیج‌های جدید
docker compose pull

# 3. راه‌اندازی مجدد
docker compose down
docker compose up -d

# 4. بررسی وضعیت
docker compose ps

مانیتورینگ

بررسی استفاده از منابع

# استفاده از CPU و RAM
docker stats

# استفاده از دیسک
df -h
du -sh volumes/

بررسی لاگ‌ها

# همه لاگ‌ها
docker compose logs

# لاگ سرویس خاص
docker compose logs penpot-frontend
docker compose logs penpot-backend

# لاگ‌های زنده
docker compose logs -f

امنیت

توصیه‌های امنیتی

  1. فایروال: فقط پورت 9001 را باز کنید
  2. SSL/TLS: برای اتصال امن، از reverse proxy استفاده کنید (nginx)
  3. بکاپ: بکاپ منظم بگیرید
  4. به‌روزرسانی: همیشه به آخرین نسخه به‌روز باشید
  5. دسترسی: فقط اعضای تیم به سرور دسترسی داشته باشند

تنظیم SSL با Nginx (اختیاری)

server {
    listen 80;
    server_name penpot.company.local;

    location / {
        proxy_pass http://localhost:9001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

عیب‌یابی

مشکل: اعضای تیم نمی‌توانند دسترسی پیدا کنند

  1. بررسی فایروال:

    sudo ufw status
    

  2. بررسی IP:

    ip addr show
    

  3. بررسی تنظیمات .env:

    cat .env | grep PENPOT_PUBLIC_URI
    

  4. تست از سرور:

    curl http://localhost:9001
    

مشکل: عملکرد کند است

  1. بررسی منابع:

    docker stats
    

  2. افزایش RAM یا CPU

  3. استفاده از SSD

نکات مهم

  • IP ثابت: مطمئن شوید که سرور IP ثابت دارد (نه DHCP)
  • بکاپ منظم: همیشه بکاپ بگیرید
  • مانیتورینگ: استفاده از منابع را بررسی کنید
  • امنیت: فایروال را فعال کنید
  • مستندات: تغییرات را مستند کنید

گام بعدی

بعد از نصب موفق:


موفق باشید! 🎉

با پن‌پاتیفای، تیم شما می‌تواند بدون وابستگی به اینترنت طراحی کند.