How to deploy client and server to Heroku? - sockets

https://github.com/M00nMission/socketio-demo
I tried deploying the client to Vercel, and the server to Heroku using the steps in this video: https://www.youtube.com/watch?v=M9RDYkFs-EQ
I added buildpacks Node.js and https://github.com/timanovsky/subdir-heroku-buildpack to Heroku settings.
Setting PROJECT_PATH to server and PORT to 3000 in Heroku vars.
Then, I edited the io connection domain's to process.env.PORT || 3000 for server and the Heroku app server URL to client's respective socket connection.
It doesn't work, returns a 404.
Heroku URL: https://pacific-sierra-13953.herokuapp.com/

Related

psql with source IP anchoring

I am using PostgreSQL flexible server by MSAzure.
The server is not setting any connection restriction and allows connections from all IPs.
I can access to the server with psql command normally.
psql "host=.postgres.database.azure.com port=5432 dbname=postgres user=myadmin password= sslmode=require"
However, with the Source IP anchoring function by Zscaler Internet Access, it fails.
psql: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
I could not find the error logs from server side.
Also I checked the packet and it seems the server sends RST packet as soon as it received connection request message from client.
enter image description here
Source IP Anchoring(SIPA) is a function which fixes source IP by transferring the packet to the proxy cloud, and from proxy cloud to private VM. The VM takes over the connection to the destination server.
Client <-> Proxy Cloud <-> VM <-> sql server
So from client side, it looks like the client is connecting to the proxy cloud.
And from sql server, it seems the server is connecting to VM.
The VM only performs outbound connection and never allows inbound connection.
This means connection pushed from server to client is not supported (like P2P, Application lelvel gateway, SIP, RTSP, Bittorent).
Does Postgresql connection requires inbound connection from server to client?
I tried disabling SSL connection, but the result was same.
The client version and server version are both same.
Also I tried connecting from pgAdmin 4, but failed again.
I'll appreciate any clue on this.

Error: The server does not support SSL connections

M1 Mac Monterey12.1
Error: The server does not support SSL connections
I used a postgres server to
I ran the following code.
DATABASE_URL=$DATABASE_URL NODE_ENV=production yarn develop
I'm using strapi with a postgres server.
I did a breww install openssl.
The PostgreSQL server does not support SSL connections. As per the documentation, you should add sslmode=disable to your JDBC connection URL or as connection parameter.

Connect to remote PostgreSQL cluster via TLS/SSL from behind HTTP proxy

I've got a Flexible PostgreSQL Cluster hosted on MS Azure Database for PostgreSQL. This server requires TLS/SSL access like shown in the docs, e.g.:
psql "sslmode=verify-full sslrootcert=c:\ssl\DigiCertGlobalRootCA.crt.pem host=mydemoserver.postgres.database.azure.com dbname=postgres user=myadmin"
or without "verify-full" it works as well:
psql "sslmode=require host=mydemoserver.postgres.database.azure.com dbname=postgres user=myadmin"
Everything works fine when I connect directly, not using a proxy server. But at office we have a corporate HTTP proxy / Firewall configured like http://192.168.X.X:3128. When the proxy is activated, connection to Azure fails.
I was trying to use ssh to set up a proxy tunnel, like so:
ssh -p 5432 <Azure DB username>#<Azure DB host: ....database.azure.com> -L 3128:192.168.X.X:5432
But that didn't work (connection time out error). Also tried to configure connection via PuTTY using some examples from the web, but also to no avail.
Question is: is it at all possible to connect to a remote cluster (both Azure and Google Cloud enforce SSH access) from behind an HTTP proxy?

Tunneling mongodb using ngrok

I have a MongoDb hosted locally in my machine and runs successfully in port localhost:27017. The database has a user name and password with a collection named, "testDb". In the code, I am able to access the database successfully using localhost.
I am trying to access this MongoDb from a remote desktop using ngrok. I hace implemented the port forwarding and the following response is shown in the command prompt.
Forwarding https://5e825c82.ngrok.io -> http://localhost:27017
I also tried changing the port =>
Forwarding https://5e825c82.ngrok.io -> http://localhost:28017
Both ports failed with the following Error message:
The connection to http://5e825c82.ngrok.io was successfully tunneled to your ngrok client, but the client failed to establish a connection to the local address localhost:28017.
Make sure that a web service is running on localhost:28017 and that it is a valid address.
The error encountered was: dial tcp [::1]:28017: connectex: No connection could be made because the target machine actively refused it.
// Works fine
MongoClient client = new MongoClient("mongodb://admin:admin#localhost:27017/testDb");
// Fails:
MongoClient client = new MongoClient("mongodb://admin:admin#5e825c82.ngrok.io/testDb");
I would like to know how to establish a connection to the MongoDb with ngrok.
MongoDB uses TCP not HTTP.
Try following command :
ngrok tcp 27017
(note the tcp, not http which I think is what you used)
There are a couple of extra steps you need to do for some reason when you use TCP, and ngrok will prompt you and tell you what you need to do when you try the above command.
Sign up for an ngrok account at https://dashboard.ngrok.com/get-started
Run locally the command shown on this page in the box 3. Connect your account (eg. ngrok authtoken 123ABC456ETC)
Now try that command again (ngrok tcp 27017)

google cloud tomcat stack mysql access

I created a tomcat stack instance on google cloud and it comes with mysql 5.5. I can access it through terminal by ssh then enter command line mysql -u username -p. However, I am trying to access the database through mysqlworkbench but I could not get the connection.
So, I guess I need to use connection method "Standard TCP/IP over SSH" and I need to confirm if I have the parameters right.
SSH Hostname: the IP of my instances <br/>
SSH Username: my google account username? this is the one i use to login when setting up the gcloud ssh<br/>
SSH Password: the password for the account<br/>
SSH Key file: ~/.ssh/google_compute_engine<br/>
MySQL Hostname: i put tomcat_rmre which is the hostname for the database when I do "show variables" in the terminal<br/>
MySQL Server Port: the port in "Show variables"<br/>
Username: username of the database<br/>
password: password of the database
When I test connection, I get Lost connection to MySQL server at 'reading initial communication packet', system error: 0
The Tomcat Click to Deploy solution does not use Cloud SQL, it just includes MySQL running on Google Compute Engine.
If you are not able to connect to the MySQL instance remotely via the "Standard (TCP/IP)" connection method it is probably because of one of:
You may have forgotten to open TCP port 3306 in your GCE firewall.
MySQL may not be listening to remote connections. Your my.cnf should contain bind-address = 0.0.0.0 and should not have skip-networking.