npm install mongoose
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: my-v0-project@0.1.0
npm error Found: react@19.1.0
npm error node_modules/react
npm error react@"^19" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react@"^18.2.0" from next@14.2.25
npm error node_modules/next
npm error next@"14.2.25" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /root/.npm/_logs/2025-06-13T14_39_05_117Z-eresolve-report.txt
npm error A complete log of this run can be found in: /root/.npm/_logs/2025-06-13T14_39_05_117Z-debug-0.log
Error yang Anda alami terjadi karena konflik versi antara React 19 dan Next.js 14.2.25. Next.js 14.2.25 membutuhkan React 18, tetapi di package.json Anda menggunakan React 19.
Berikut beberapa cara untuk mengatasi masalah ini:
Cara termudah adalah menggunakan flag --legacy-peer-deps untuk mengabaikan konflik peer dependencies:
npm install mongoose --legacy-peer-deps
npm install axios --legacy-peer-depsAlternatif lain adalah menggunakan flag --force:
npm install mongoose --force
npm install axios --forceSolusi yang lebih baik adalah mendowngrade React ke versi 18 yang kompatibel dengan Next.js 14.2.25:
npm uninstall react react-dom
npm install react@18 react-dom@18
npm install mongoose axiosEdit file package.json dan ubah versi React dari "^19" menjadi "^18":
# Buka package.json dengan editor
nano package.jsonUbah baris:
"react": "^19",
"react-dom": "^19",Menjadi:
"react": "^18",
"react-dom": "^18",Kemudian jalankan:
npm install
npm install mongoose axiosYarn terkadang lebih baik dalam menangani konflik dependensi:
npm install -g yarn
yarn add mongoose axiosKarena SiPaling.pro adalah aplikasi backend, Anda bisa membuat package.json terpisah yang tidak bergantung pada React atau Next.js:
# Buat direktori baru untuk backend
mkdir -p sipaling-backend
cd sipaling-backend
# Inisialisasi package.json baru
npm init -y
# Edit package.json untuk backend
cat > package.json << 'EOF'
{
"name": "sipaling-pro-backend",
"version": "1.0.0",
"description": "Backend for SiPaling.pro - Live Streaming Automation Platform",
"main": "server.js",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
},
"dependencies": {
"bcrypt": "^5.1.0",
"compression": "^1.7.4",
"cors": "^2.8.5",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"express-rate-limit": "^6.7.0",
"helmet": "^6.1.5",
"jsonwebtoken": "^9.0.0",
"mongoose": "^7.5.0",
"morgan": "^1.10.0",
"multer": "^1.4.5-lts.1",
"nodemailer": "^6.9.1",
"axios": "^1.5.0"
},
"devDependencies": {
"nodemon": "^2.0.22"
}
}
EOF
# Instal dependensi
npm installcat > Dockerfile << 'EOF'
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
EOF
docker build -t sipaling-pro .
docker run -p 3000:3000 -d sipaling-propnpm memiliki resolusi dependensi yang lebih baik:
npm install -g pnpm
pnpm install mongoose axiosJika Anda hanya membutuhkan mongoose dan axios tanpa menginstalnya melalui npm:
mkdir -p node_modules
cd node_modules
git clone https://github.com/Automattic/mongoose.git
cd mongoose
npm install
cd ..
git clone https://github.com/axios/axios.git
cd axios
npm install
cd ../..# Untuk backend
mkdir -p backend
cd backend
npm init -y
npm install mongoose expressPilih salah satu solusi di atas yang paling sesuai dengan kebutuhan Anda. Untuk aplikasi backend seperti SiPaling.pro, opsi #6 (membuat package.json terpisah untuk backend) mungkin adalah solusi terbaik.
sudo cp nginx.conf /etc/nginx/nginx.conf
sudo cp sites-available/sipaling.pro /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/sipaling.pro /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
ln: failed to create symbolic link '/etc/nginx/sites-enabled/sipaling.pro': File exists
2025/06/13 14:42:18 [warn] 227276#227276: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/sites-enabled/sipaling-pro.conf:8
2025/06/13 14:42:18 [emerg] 227276#227276: cannot load certificate "/path/to/ssl/sipaling.pro.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/path/to/ssl/sipaling.pro.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
Saya melihat ada beberapa masalah dengan konfigurasi NGINX Anda:
sipaling.pro di sites-enabled)/path/to/ssl/sipaling.pro.crt)Mari kita perbaiki satu per satu:
Pertama, mari kita buat konfigurasi NGINX yang bekerja tanpa SSL:
# Hapus symbolic link yang sudah ada
sudo rm /etc/nginx/sites-enabled/sipaling.pro
sudo rm /etc/nginx/sites-enabled/sipaling-pro.conf # Jika ada
# Edit file konfigurasi
sudo nano /etc/nginx/sites-available/sipaling.proSalin konfigurasi berikut (tanpa SSL dulu):
server {
listen 80;
server_name sipaling.pro www.sipaling.pro;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";
# Large file uploads
client_max_body_size 200M;
}Kemudian buat symbolic link dan uji konfigurasi:
sudo ln -s /etc/nginx/sites-available/sipaling.pro /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxSetelah konfigurasi dasar berfungsi, kita bisa menambahkan SSL dengan Certbot:
# Instal Certbot jika belum
sudo apt update
sudo apt install certbot python3-certbot-nginx
# Dapatkan sertifikat SSL
sudo certbot --nginx -d sipaling.pro -d www.sipaling.proCertbot akan secara otomatis:
Jika Certbot gagal karena domain belum mengarah ke server Anda, Anda bisa menggunakan konfigurasi SSL self-signed sementara:
# Buat direktori untuk sertifikat
sudo mkdir -p /etc/nginx/ssl
# Buat sertifikat self-signed
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/sipaling.pro.key -out /etc/nginx/ssl/sipaling.pro.crtKemudian edit konfigurasi NGINX:
sudo nano /etc/nginx/sites-available/sipaling.proTambahkan blok server untuk SSL:
server {
listen 80;
server_name sipaling.pro www.sipaling.pro;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name sipaling.pro www.sipaling.pro;
ssl_certificate /etc/nginx/ssl/sipaling.pro.crt;
ssl_certificate_key /etc/nginx/ssl/sipaling.pro.key;
# SSL settings
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";
# Large file uploads
client_max_body_size 200M;
}Uji dan restart NGINX:
sudo nginx -t
sudo systemctl restart nginxsudo systemctl status nginxsudo tail -f /var/log/nginx/error.log# Jika menggunakan PM2
pm2 status
pm2 start server.js
# Jika menggunakan systemd
sudo systemctl status sipaling
sudo systemctl restart sipalingDengan langkah-langkah di atas, Anda seharusnya bisa memperbaiki konfigurasi NGINX dan menjalankan SiPaling.pro dengan koneksi yang aman (HTTPS). Screenshot yang Anda bagikan menunjukkan bahwa situs saat ini tidak memiliki SSL yang valid, yang akan teratasi dengan langkah-langkah di atas.
You can send messages while the preview loads