Posts posted by adriano
-
-
-
-
Em 02/11/2024 em 08:48, Jamshaid Yousaf disse:
Hi @Mahmoud After deploying on cpanel (shared hosting), I am facing an issue while starting the Node application (using Node.js version 16.20.1), after starting the app i am experiencing the following error
returncode: 1 stdout: > start > node . Running cleanup before exit. stderr: Error: listen EADDRINUSE: address already in use 127.0.0.1:8000 at Server.setupListenHandle [as _listen2] (node:net:1463:16) at listenInCluster (node:net:1511:12) at doListen (node:net:1660:7) at processTicksAndRejections (node:internal/process/task_queues:84:21)
Also the application get crashedNeed help please...
I had this problem, I fixed it by changing the server port in the env to 8081
-
Em 30/10/2024 em 10:22, Ruben Bareiro disse:
is nulled?
-
-
-
8 horas atrás, adhiete disse:
@adriano try check the status of the port. is it running or not.
Then change .env on your web root folder to this,
APP_URL=https://yourwebsite
WA_URL_SERVER=https://yourwebsite:portnodejsthen save.
restart the apache2. then change to your web folder cd /var/www/html/yourmpwafolder then execute node server.jsI'm on debian12 with node20
CMIIW
Hi, it's already like this in my .env, it ran normally on http, when I changed it to https it doesn't show the qrcode
i use ubuntu e node 22 -
Edited by adriano
52 minutos atrás, adhitya syahputra disse:1- Open the .htaccess in the root path of the script and clear all code and save it.
2-Then, we will edit the server.js file and replace this code from:
/**
* EXPRESS FOR ROUTING
*/
const express = require("express");
const app = express();
const http = require("http");
const server = http.createServer(app);To:
/**
* EXPRESS FOR ROUTING
*/
const serverOptions = {
key: fs.readFileSync('key.pem'), # key.pem is your ssl key
cert: fs.readFileSync('cert.pem') #cert.pem is your ssl cert
}const express = require("express");
const app = express();
const https = require("https");
const server = https.createServer(serverOptions, app);3- edit the routes/web.php file and add this code at the end of the file:
URL::forceScheme('https');
4- Open .htaccess again, put the following code inside and save:
<IfModule mod_rewrite.c>
RewriteEngine OnRewriteCond %{REQUEST_URI} !^/socket.io/
RewriteCond %{REQUEST_URI} !^/backend-*
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
</IfModule>
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>5- Restart your node.js project
I was unsure where to put the changes.
my server.js
'use strict';
const wa = require("./server/whatsapp");
const fs = require("fs");
const dbs = require('./server/database/index');
require("dotenv").config();
const lib = require("./server/lib");
global.log = lib.log;/**
* EXPRESS FOR ROUTING
*/
const express = require("express");
const app = express();/**
* HTTPS CONFIGURATION
*/
const https = require("https");// Substitua <seu_dominio> pelo domínio que você usou para gerar os certificados com o Let's Encrypt.
const privateKey = fs.readFileSync('/etc/letsencrypt/live/site/privkey.pem', 'utf8');
const certificate = fs.readFileSync('/etc/letsencrypt/live/site/cert.pem', 'utf8');
const ca = fs.readFileSync('/etc/letsencrypt/live/site/chain.pem', 'utf8');const credentials = {
key: privateKey,
cert: certificate,
ca: ca
};const server = https.createServer(credentials, app);
/**
* SOCKET.IO
*/
const { Server } = require("socket.io");
const io = new Server(server, {
pingInterval: 25000,
pingTimeout: 10000,
});// Porta definida apenas uma vez
const port = process.env.PORT_NODE || 3200; // Caso PORT_NODE não esteja definido, será usada a porta 3200.app.use((req, res, next) => {
res.set("Cache-Control", "no-store");
req.io = io;
next();
});const bodyParser = require("body-parser");
app.use(
bodyParser.urlencoded({
extended: false,
limit: "50mb",
parameterLimit: 100000,
})
);app.use(bodyParser.json());
app.use(express.static("src/public"));
app.use(require("./server/router"));io.on("connection", (socket) => {
console.log("A user connected");
});server.listen(port, () => {
console.log(`Servidor rodando em https://localhost:${port}`);
});
htaccess
DirectoryIndex index.php index.html<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mpwa/RewriteCond %{REQUEST_URI} !^/mpwa/socket.io/
RewriteCond %{REQUEST_URI} !^/mpwa/backend-*
RewriteCond %{REQUEST_URI} !^/mpwa/public/
RewriteRule ^(.*)$ /mpwa/public/$1 [L,QSA]
</IfModule><IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
web.php
<?php
/**************************/
/* Nulled & Decoded */
/* By Magd Almuntaser */
/* TTMTT */
/**************************/use App\Http\Controllers\Admin\ManageUsersController;
use App\Http\Controllers\Admin\UpdateController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use App\Http\Controllers\AutoreplyController;
use App\Http\Controllers\TwoFactorController;
use App\Http\Controllers\AibotController;
use App\Http\Controllers\BlastController;
use App\Http\Controllers\CampaignController;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\FileManagerController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\MessagesController;
use App\Http\Controllers\MessagesHistoryController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\RestapiController;
use App\Http\Controllers\ScanController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\ShowMessageController;
use App\Http\Controllers\TagController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Redirect;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
use App\Http\Controllers\PasswordResetController;
use App\Http\Controllers\ThemesController;require_once 'custom-route.php';
Route::group(['prefix' => LaravelLocalization::setLocale()], function() {
Route::get('/', function()
{
return Redirect::to( '/login');
});
Route::middleware('2fa')->group(function (){
Route::get('/2fa', [TwoFactorController::class, 'showVerify'])->name('2fa.verify');
Route::post('/2fa', [TwoFactorController::class, 'verifyLogin'])->name('2fa.verify');
});
Route::middleware('auth', '2fa')->group(function (){
Route::group(['prefix' => 'laravel-filemanager'], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::get('/home',[HomeController::class,'index'])->name('home');
Route::get('/file-manager', [FileManagerController::class, 'index'])->name('file-manager');
Route::get('/filemanager', function () { return redirect('/'.LaravelLocalization::getCurrentLocale().'/laravel-filemanager'); })->name('filemanager');
Route::post('/home/setSessionSelectedDevice',[HomeController::class,'setSelectedDeviceSession'])->name('home.setSessionSelectedDevice');
Route::post('/home/sethook',[HomeController::class,'setHook'])->name('setHook');
Route::post('/home/setavailable',[HomeController::class,'setAvailable'])->name('setAvailable');
Route::post('/home/setdelay',[HomeController::class,'setDelay'])->name('setDelay');
Route::post('/home/sethookread',[HomeController::class,'setHookRead'])->name('setHookRead');
Route::post('/home/sethookreject',[HomeController::class,'setHookReject'])->name('setHookReject');
Route::post('/home/sethooktyping',[HomeController::class,'setHookTyping'])->name('setHookTyping');
Route::post('/home/setGPT',[HomeController::class,'setGPT'])->name('setGPT');
Route::post('/home',[HomeController::class,'store'])->name('addDevice');
Route::delete('/home',[HomeController::class,'destroy'])->name('deleteDevice');Route::get('/scan/{number:body}',[ScanController::class,'scan'])->name('scan');
Route::get('/code/{number:body}',[ScanController::class,'code'])->name('connect-via-code');Route::get('/autoreply',[AutoreplyController::class,'index'])->name('autoreply');
Route::post('/autoreply',[AutoreplyController::class,'store'])->name('autoreply');
Route::get('/autoreply-edit/{id}', [AutoreplyController::class, 'edit'])->name('autoreply.edit');
Route::post('/autoreply-edit', [AutoreplyController::class, 'editUpdate'])->name('autoreply.edit.update');
Route::delete('/autoreply',[AutoreplyController::class,'destroy'])->name('autoreply.delete');
Route::post('auto-reply/update/{autoreply:id}',[AutoreplyController::class,'update'])->name('autoreply.update');Route::get('/aibot',[AibotController::class,'index'])->name('aibot');
Route::post('/aibot',[AibotController::class,'store'])->name('aibot');
Route::get('/phonebook',[TagController::class,'index'])->name('phonebook');
Route::get('/get-phonebook',[TagController::class,'getPhonebook'])->name('getPhonebook');
Route::delete('/clear-phonebook',[TagController::class,'clearPhonebook'])->name('clearPhonebook');
Route::get('get-contact/{id}',[ContactController::class,'getContactByTagId']);
Route::post('/contact/store',[ContactController::class,'store'])->name('contact.store');
Route::delete('/contact/delete/{contact:id}',[ContactController::class,'destroy'])->name('contact.delete');
Route::delete('/contact/delete-all/{id}',[ContactController::class,'DestroyAll'])->name('deleteAll');
Route::post('/contact/import',[ContactController::class,'import'])->name('import');
Route::get('/contact/export/{id}',[ContactController::class,'export'])->name('exportContact');Route::post('/tags',[TagController::class,'store'])->name('tag.store');
Route::delete('/tags',[TagController::class,'destroy'])->name('tag.delete');
Route::post('fetch-groups',[TagController::class ,'fetchGroups'])->name('fetch.groups');Route::get('/campaigns',[CampaignController::class,'index'])->name('campaigns');
Route::get('/campaign/create',[CampaignController::class,'create'])->name('campaign.create');
Route::post('/campaign/store',[CampaignController::class,'store'])->name('campaign.store');
Route::post('/campaign/pause/{id}',[CampaignController::class,'pause'])->name('campaign.pause');
Route::post('/campaign/resume/{id}',[CampaignController::class,'resume'])->name('campaign.resume');
Route::delete('/campaign/delete/{id}',[CampaignController::class,'destroy'])->name('campaign.delete');
Route::get('/campaign/show/{id}',[CampaignController::class,'show'])->name('campaign.show');
Route::delete('/campaign/clear',[CampaignController::class,'destroyAll'])->name('campaigns.delete.all');
Route::get('/campaign/blast/{campaign:id}',[BlastController::class,'index'])->name('campaign.blasts');Route::post('/preview-message',[ShowMessageController::class,'index'])->name('previewMessage');
Route::get('/form-message/{type}',[ShowMessageController::class,'getFormByType'])->name('formMessage');
Route::get('/form-message-edit/{type}',[ShowMessageController::class,'showEdit'])->name('formMessageEdit');
Route::get('/message/test',[MessagesController::class,'index'])->name('messagetest');
Route::post('/message/test',[MessagesController::class,'store'])->name('messagetest');Route::get('/api-docs',RestapiController::class)->name('rest-api');
Route::get('/user/settings',[UserController::class,'settings'])->name('user.settings');
Route::post('/user/change-password',[UserController::class,'changePasswordPost'])->name('changePassword');
Route::post('/user/setting/apikey',[UserController::class,'generateNewApiKey'])->name('generateNewApiKey');
Route::post('/user/setting/deletehistory',[UserController::class,'deleteHistory'])->name('deleteHistory');
Route::post('/user/settings/2fa', [UserController::class, 'toggleTwoFactor'])->name('user.settings.2fa');
Route::get('/user/2fa_setup', [TwoFactorController::class, 'showSetup'])->name('user.2fa_setup');
Route::post('/user/2fa/verify', [TwoFactorController::class, 'verify'])->name('user.2fa.verify');
Route::get('/admin/settings',[SettingController::class,'index'])->name('admin.settings');
Route::post('/settings/server',[SettingController::class,'setServer'])->name('setServer');
Route::post('/settings/generate-ssl', [SettingController::class, 'generateSslCertificate'])->name('generateSsl');
Route::post('/settings/setenvall', [SettingController::class, 'setEnvAll'])->name('setEnvAll');
Route::get('/admin/update',[UpdateController::class,'checkUpdate'])->name('update');
Route::post('/admin/update/install',[UpdateController::class,'installUpdate'])->name('update.install');
Route::get('/admin/manage-themes',[ThemesController::class,'index'])->name('admin.manage-themes');
Route::get('/admin/active-themes/{name}',[ThemesController::class,'activeTheme'])->name('themes.active');
Route::post('/admin/download-themes',[ThemesController::class,'downloadTheme'])->name('themes.download');
Route::post('/admin/delete-themes',[ThemesController::class,'deleteTheme'])->name('themes.delete');Route::get('/admin/manage-users',[ManageUsersController::class,'index'])->name('admin.manage-users')->middleware('admin');
Route::post('/admin/user/store',[ManageUsersController::class,'store'])->name('user.store')->middleware('admin');
Route::delete('/admin/user/delete/{id}',[ManageUsersController::class,'delete'])->name('user.delete')->middleware('admin');
Route::get('admin/user/edit',[ManageUsersController::class,'edit'])->name('user.edit')->middleware('admin');
Route::post('admin/user/update',[ManageUsersController::class,'update'])->name('user.update')->middleware('admin');Route::get('/messages-history',[MessagesHistoryController::class,'index'])->name('messages.history');
Route::post('/resend-message',[MessagesHistoryController::class,'resend'])->name('resend.message');
Route::post('/delete-messages',[MessagesHistoryController::class,'deleteAll'])->name('delete.messages');});
Route::middleware('guest')->group(function(){
Route::get('/login',[LoginController::class,'index'])->name('login');
Route::get('/register',[RegisterController::class,'index'])->name('register');
Route::post('/register',[RegisterController::class,'store'])->name('register');
Route::post('/login',[LoginController::class,'store'])->name('login')->middleware('throttle:5,1');
Route::get('password/reset', [PasswordResetController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('password/email', [PasswordResetController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('password/reset/{token}', [PasswordResetController::class, 'showResetForm'])->name('password.reset');
Route::post('password/reset', [PasswordResetController::class, 'reset'])->name('password.update');
});
Route::match(['get', 'post'], '/logout', LogoutController::class)->name('logout');
Route::get('/install', [SettingController::class,'install'])->name('setting.install_app');
Route::post('/install', [SettingController::class,'install'])->name('settings.install_app');Route::post('/settings/check_database_connection',[SettingController::class,'test_database_connection'])->name('connectDB');
Route::post('/settings/activate_license',[SettingController::class,'activate_license'])->name('activateLicense');
});URL::forceScheme('https');
?>
-
6 minutos atrás, adhitya syahputra disse:
@adriano what panel u use
Have you open port 3100?
yes, then I changed it to 3200 open and the error remains
-
-
-
-
-
-
-
6 minutos atrás, Magd Almuntaser disse:
The important thing is that it works. The delay may be from WhatsApp or from your server being far away from WhatsApp servers. It works correctly for everyone.
use nodejs 18 and ubove
The problem has been solved in version 9.0.0 as the code changes quickly.Has version 9.0 already been made available?
-
-
-
-
8 minutos atrás, Magd Almuntaser disse:
Certifique-se de que você está usando php8.1 e abra o link diretamente:
tente abrir o link do seu wa_server:e me diga o que você vê... ou me envie uma mensagem privada
Observação: não use a instalação automática, ela não é para você... minha resposta é para alguém, leia atentamente a citação.
-
23 minutos atrás, Magd Almuntaser disse:
Are you using a control panel like cpanel or aapanel or an empty vps?
If the vps is empty, you can install the version via auto installer.. It will install the version and create your site and database and everything. All you have to do is prepare an empty vps and run the command..
https://doniaweb.com/topic/17994-whatsapp-gateway-multi-device-v851/page/89/#comment-75612
But if you have a vps with a control panel, you can install it easily (download the compressed file, extract it on your site, open your site link and you will be taken to the installation. Complete the installation and run nodejs)
try to change this in .env file:
APP_URL=http://yoursite.com WA_URL_SERVER=http://yoursite.com:3100 PORT_NODE=3100 TYPE_SERVER=other
and restart your nodejs and make sure you use http on your link on browser..
you need ti use cronjob:
curl "https://website.com/blast-start" >/dev/null 2>&1 curl "https://website.com/schedule-cron" >/dev/null 2>&1 curl "https://website.com/schedule-run" >/dev/null 2>&1
Sometimes your shared hosting gives another path to the curl command, so try these links above first. If they don't work, you can search for the correct path to curl or contact your hosting company to find out the correct path.
I use a clean VPN, but it is not working ,
-
Whatsapp Gateway | Multi Device v11.3.0
in Scripts
Is it possible to install it on aapanel, is there a tutorial?