Skip to content
hackernewbie91Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

📋 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 -y

Install Python & tools

sudo apt install -y python3 python3-pip python3-venv git curl

Install PostgreSQL

sudo apt install -y postgresql postgresql-contrib

Install PDF processing tools

sudo apt install -y poppler-utils

Install OCR (Tesseract)

sudo apt install -y tesseract-ocr tesseract-ocr-ind tesseract-ocr-eng

Install PDF library dependencies

sudo 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

▶️ 9. Start Service:

# 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 ⚠️ Segera ganti password setelah login pertama!

📋 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. 🎉

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages