📋 Instruksi Setup PDF Tools di Server Baru
🖥️ 1. Spesifikasi Server:
Kebutuhan Minimum
OS Ubuntu 22.04 LTS RAM 2 GB Storage 10 GB Python 3.10+ Database PostgreSQL 14+
🚀 2. Install System Packages:
sudo apt update && sudo apt upgrade -ysudo apt install -y python3 python3-pip python3-venv git curlsudo apt install -y postgresql postgresql-contribsudo apt install -y poppler-utilssudo apt install -y tesseract-ocr tesseract-ocr-ind tesseract-ocr-engsudo apt install -y libpoppler-cpp-dev🗄️ 3. Setup PostgreSQL Database:
# Masuk sebagai postgres user
sudo -u postgres psql
# Buat user database
CREATE USER pdfuser WITH PASSWORD 'pdfpassword123';
# Buat database
CREATE DATABASE pdf_tools OWNER pdfuser;
# Keluar
\q📁 4. Clone & Setup Project:
# Pindah ke /opt
cd /opt
# Clone repository (ganti dengan repo Anda)
git clone https://github.com/yourusername/pdf-tools.git
cd pdf_tools
# Atau copy manual dari server lama
# scp -r user@old-server:/opt/pdf_tools /opt/🐍 5. Setup Virtual Environment:
cd /opt/pdf_tools
# Buat venv
python3 -m venv venv
# Aktifkan
source venv/bin/activate
# Upgrade pip
pip install --upgrade pip
# Install dependencies
pip install -r requirements.txt⚙️ 6. Konfigurasi .env:
# Copy contoh .env
cp .env.example .env
# Edit .env
nano .env
Isi .env:
env
# ============ APLIKASI ============
APP_NAME=PDF Tools Pro
APP_VERSION=3.0.0
# ============ FLASK ============
FLASK_ENV=production
SECRET_KEY=generate-random-string-panjang-123456
# ============ SERVER ============
HOST=0.0.0.0
PORT=5000
THREADS=4
# ============ POSTGRESQL ============
DB_USER=pdfuser
DB_PASS=pdfpassword123
DB_HOST=localhost
DB_PORT=5432
DB_NAME=pdf_tools
# ============ UPLOAD ============
UPLOAD_FOLDER=uploads
MAX_CONTENT_LENGTH=52428800
CLEANUP_HOURS=1
# ============ EMAIL (SSL port 465) ============
MAIL_SERVER=mail.formylab.my.id
MAIL_PORT=465
MAIL_USE_TLS=false
MAIL_USE_SSL=true
MAIL_USERNAME=admin@formylab.my.id
MAIL_PASSWORD=password-email-anda
MAIL_DEFAULT_SENDER=PDF Tools <admin@formylab.my.id>
# ============ CONVERTAPI ============
CONVERTAPI_KEY=your-convertapi-key-here
# ============ RATE LIMIT ============
RATE_LIMIT_MAX=100
RATE_LIMIT_WINDOW=3600📁 7. Setup Folder & Permission:
# Buat folder uploads & logs
mkdir -p uploads logs
# Set permission
sudo chown -R www-data:www-data /opt/pdf_tools/uploads /opt/pdf_tools/logs
sudo chmod -R 755 /opt/pdf_tools/uploads /opt/pdf_tools/logs🚀 8. Setup Systemd Service:
# Buat service file
sudo nano /etc/systemd/system/pdf-tools.service
Isi:
ini
[Unit]
Description=PDF Tools Web Application
After=network.target postgresql.service
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/pdf_tools
Environment="PATH=/opt/pdf_tools/venv/bin"
Environment="FLASK_ENV=production"
ExecStart=/opt/pdf_tools/venv/bin/python /opt/pdf_tools/run_production.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target# Reload systemd
sudo systemctl daemon-reload
# Enable auto-start
sudo systemctl enable pdf-tools
# Start service
sudo systemctl start pdf-tools
# Cek status
sudo systemctl status pdf-tools🔥 10. Setup Firewall (Kalau Aktif):
# Ubuntu UFW
sudo ufw allow 5000/tcp
# Atau kalau pakai Nginx reverse proxy
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp✅ 11. Verifikasi Instalasi:
# Cek health
curl http://localhost:5000/health
# Harusnya return:
# {"scheduler":true,"status":"healthy","version":"3.0.0"}
# Cek service
sudo systemctl status pdf-tools
# Lihat logs
sudo journalctl -u pdf-tools -f🎯 12. Konfigurasi Nginx (Opsional - untuk HTTPS):
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/pdf-tools
Isi:
nginx
server {
listen 80;
server_name pdflab.formylab.my.id;
location / {
proxy_pass http://127.0.0.1:5000;
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;
}
location /static/ {
alias /opt/pdf_tools/static/;
expires 30d;
}
}
bash
sudo ln -s /etc/nginx/sites-available/pdf-tools /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx📊 13. Database Migration Otomatis: Saat aplikasi pertama kali start, db.create_all() dan migrasi otomatis akan:
✅ Buat semua tabel
✅ Tambah kolom baru (IF NOT EXISTS)
✅ Buat admin default (admin/admin123)
✅ Buat konfigurasi default
Tidak perlu setup database manual!
🔑 14. Default Admin:
Username Password Role
admin admin123 Admin
📋 15. Checklist Setup: □ System packages terinstall □ PostgreSQL database dibuat □ Project di-clone/copy □ Virtual environment dibuat □ .env dikonfigurasi □ Folder permission benar □ Systemd service dibuat □ Service berjalan (status active) □ Health check OK □ Admin bisa login 🔧 16. Troubleshooting Umum: Masalah Solusi Service tidak start sudo journalctl -u pdf-tools -f Database error Cek .env DB credentials Permission denied sudo chown -R www-data:www-data uploads Port 5000 dipakai sudo lsof -i :5000 ConvertAPI error Cek CONVERTAPI_KEY di .env Setup selesai! Aplikasi PDF Tools siap digunakan. 🎉