Installing Blynk Local Server Win10

Even tho it shows the server running, I see no Oracle/Java apps running in Process Explorer. Strange.

I can’t see any listening processes with the Blynk ports running, so I’m guessing your server is not running. Can you connect with the Blynk App to your local server?

I tried from both my phone and Android emulator running on the same machine as the server and no. I just found SQL server running in backgroud, so I killed it, then did netstat again and got many more instances using port 443, like 30 more.

edit - 10.0.0.130 is the server IP

Yeah, well, you have to look at the right colum, that would be the left one… :wink:

The first Colum is the protocol, in this case TCP and the second column is the IP address where the port is listening on you local PC. The third column is the remote port.

It can be a bit tricky to understand, but every TCP connection consists of a unique combination of Outgoing and Incoming port.

For example: the line TCP 10.0.0.130:49260 104.236.231.79:443 ESTABLHISED indicates a connection from your PC to a remote server. The port on your PC is dynamically generated.

So, you should see in the local PC column something like 10.0.0.130:443 (or 0.0.0.0:443 which would indicate the port is listening on all your Local IP’s).

1 Like

Sorry for the late reply but i am going to make a turtorial on youtube on how to do it, till then just delete the file server-0.31.0.jar file and don’t put the file in the arduino folder, this may cause arduino ide to crah when you run it, make sure whenever you install or run anything on pc make sure that it has a seperate folder, and also remove the jre file of java from arduino send it somewhere else. Please wait for the video I’m working on it

2 Likes

I’m very much looking forward to your video of the process. There’s another video on YouTube of setting up the Blynk server on Windows, but I think the creator assumes watchers have all of the tools he has. I tried getting through it, but was unable to. At any rate, I’m going to continue to try and get through this in the event something happens on your end and you are not able to timely finish the video for whatever reason. That way no time is wasted.

Regarding the server.properties file, can someone confirm if I have the ports set correctly? Also, can I assume that the jar file, once launched will automatically apply those values to the server, or are there any commands I must issue in command prompt to direct the server to those files?

#hardware mqtt port
hardware.mqtt.port=8442

#hardware ssl port
hardware.ssl.port=8441

#hardware plain tcp/ip port
hardware.default.port=8442

#http, plain web sockets and plain hardware port
http.port=9443

#secured https, web sockets and app port
https.port=9443

That looks fine. If you have the files in the same folder as the JAR it will automatically load them.

1 Like

how can thesetwo ports be same ?

the code your using is wrong, use this

#hardware mqtt port
hardware.mqtt.port=8440

#hardware ssl port
hardware.ssl.port=8441

#hardware plain tcp/ip port
hardware.default.port=8442

#http, plain web sockets and plain hardware port
http.port=80

#secured https, web sockets and app port
https.port=9443

#address to bind to. by default bounded to all interfaces
listen.address=

#by default server uses embedded in jar cert to simplify local server installation.
#WARNNING DO NOT USE THIS CERTIFICATES ON PRODUCTION OR IN WHERE ENVIRNOMENTS REAL SECURITY REQUIRED.
#provide either full path to files either use '.' for specifying current directory. For instance "./myfile.crt"
server.ssl.cert=
server.ssl.key=
server.ssl.key.pass=

#by default System.getProperty("java.io.tmpdir")/blynk used
data.folder=

#folder for logs.
logs.folder=./logs

#log debug level. trace|debug|info|error. Defines how precise logging will be.
log.level=info

#maximum number of devices allowed per account
user.devices.limit=25

#maximum number of tags allowed per account
user.tags.limit=100

#defines maximum allowed number of user dashboards. Needed to limit possible number of tokens.
user.dashboard.max.limit=100

#defines maximum allowed widget size in KBs as json string.
user.widget.max.size.limit=20

#user is limited with 100 messages per second.
user.message.quota.limit=100

#maximum allowed number of notification queue. Queue responsible for processing email, pushes, twits sending.
#Because of performance issue - those queue is processed in separate thread, this is required due
#to blocking nature of all above operations. Usually limit shouldn't be reached.
notifications.queue.limit=2000

#Number of threads for performing blocking operations - push, twits, emails, db queries.
#Recommended to hold this value low unless you have to perform a lot of blocking operations.
blocking.processor.thread.pool.limit=6

#this setting defines how often we can send mail/tweet/push or any other notification. Specified in seconds
notifications.frequency.user.quota.limit=15

#this setting defines how often we can send webhooks. Specified in miliseconds
webhooks.frequency.user.quota.limit=1000

#this setting defines how big could be response for webhook GET request. Specified in kbs
webhooks.response.size.limit=72

#maximum size of user profile in kb's
user.profile.max.size=128

#number of strings to store in terminal widget
terminal.strings.pool.size=25

#number of strings to store in map widget
map.strings.pool.size=25

#number of strings to store in lcd widget
lcd.strings.pool.size=6

#maximum number of rows allowed
table.rows.pool.size=100

#period in millis for saving all user DB to disk.
profile.save.worker.period=60000

#period in millis for saving stats to disk.
stats.print.worker.period=60000

#max size of web request in bytes, 256 kb (256x1024) is default
web.request.max.size=524288

#maximum number of points that are fetched during CSV export
#43200 == 60 * 24 * 30 - minutes points for 1 month
csv.export.data.points.max=43200

#specifies maximum period of time when hardware socket could be idle. After which
#socket will be closed due to non activity. In seconds. Default value 15 if not provided.
#leave it empty for infinity timeout
hard.socket.idle.timeout=15

#enable DB
enable.db=false

#enable raw data storage to DB
enable.raw.db.data.store=false

#size of async logger ring buffer. should be increased for loads >2-3k req/sec
async.logger.ring.buffer.size=2048

#when true - allows reading worker to trigger hardware even app is offline
allow.reading.widget.without.active.app=false

#initial amount of energy
initial.energy=100000

#ADMINISTRATION SECTION

admin.rootPath=/admin

#used for reset password page and certificate generation.
#by default current server IP is taken. could be replaced with more friendly hostname.
#it is recommended to override this property with your server IP to avoid possible problems of host resolving
#server.host=test.blynk.cc

product.name=Blynk

#email used for certificate registration, could be omitted in case you already specified it in mail.properties
#contact.email=

#network interface to determine server's current IP.
#only the first characters of the interface's name are needed.
#the default setting eth will use the first ethX interface found (i.e. eth0)
net.interface=eth

#comma separated list of administrator IPs. allow access to admin UI only for those IPs.
#you may set it for 0.0.0.0/0 to allow access for all.
#you may use CIDR notation. For instance, 192.168.0.53/24
allowed.administrator.ips=0.0.0.0/0,::/0

# default admin name and password. that will be created on initial server start
admin.email=admin@blynk.cc
admin.pass=admin

#comma separated list of users allowed to create accounts. leave it empty if no restriction required.
allowed.users.list=

make sure that when you save the file, it should be a properties file and not a txt file, save it as server.properties

if that code doesn’t work then paste this code in the file instead of that, but still make sure that the file is a properties file and it name shold be saved as server.properties, ok now below this line is the second code

#hardware mqtt port
hardware.mqtt.port=8440

#hardware ssl port
hardware.ssl.port=8441

#hardware plain tcp/ip port
hardware.default.port=8442

#http, plain web sockets and plain hardware port
http.port=8080

#secured https, web sockets and app port
https.port=9443

#address to bind to. by default bounded to all interfaces
listen.address=

#by default server uses embedded in jar cert to simplify local server installation.
#WARNNING DO NOT USE THIS CERTIFICATES ON PRODUCTION OR IN WHERE ENVIRNOMENTS REAL SECURITY REQUIRED.
#provide either full path to files either use '.' for specifying current directory. For instance "./myfile.crt"
server.ssl.cert=
server.ssl.key=
server.ssl.key.pass=

#by default System.getProperty("java.io.tmpdir")/blynk used
data.folder=

#folder for logs.
logs.folder=./logs

#log debug level. trace|debug|info|error. Defines how precise logging will be.
log.level=info

#maximum number of devices allowed per account
user.devices.limit=25

#maximum number of tags allowed per account
user.tags.limit=100

#defines maximum allowed number of user dashboards. Needed to limit possible number of tokens.
user.dashboard.max.limit=100

#defines maximum allowed widget size in KBs as json string.
user.widget.max.size.limit=20

#user is limited with 100 messages per second.
user.message.quota.limit=100

#maximum allowed number of notification queue. Queue responsible for processing email, pushes, twits sending.
#Because of performance issue - those queue is processed in separate thread, this is required due
#to blocking nature of all above operations. Usually limit shouldn't be reached.
notifications.queue.limit=2000

#Number of threads for performing blocking operations - push, twits, emails, db queries.
#Recommended to hold this value low unless you have to perform a lot of blocking operations.
blocking.processor.thread.pool.limit=6

#this setting defines how often we can send mail/tweet/push or any other notification. Specified in seconds
notifications.frequency.user.quota.limit=15

#this setting defines how often we can send webhooks. Specified in miliseconds
webhooks.frequency.user.quota.limit=1000

#this setting defines how big could be response for webhook GET request. Specified in kbs
webhooks.response.size.limit=72

#maximum size of user profile in kb's
user.profile.max.size=128

#number of strings to store in terminal widget
terminal.strings.pool.size=25

#number of strings to store in map widget
map.strings.pool.size=25

#number of strings to store in lcd widget
lcd.strings.pool.size=6

#maximum number of rows allowed
table.rows.pool.size=100

#period in millis for saving all user DB to disk.
profile.save.worker.period=60000

#period in millis for saving stats to disk.
stats.print.worker.period=60000

#max size of web request in bytes, 256 kb (256x1024) is default
web.request.max.size=524288

#maximum number of points that are fetched during CSV export
#43200 == 60 * 24 * 30 - minutes points for 1 month
csv.export.data.points.max=43200

#specifies maximum period of time when hardware socket could be idle. After which
#socket will be closed due to non activity. In seconds. Default value 15 if not provided.
#leave it empty for infinity timeout
hard.socket.idle.timeout=15

#enable DB
enable.db=false

#enable raw data storage to DB
enable.raw.db.data.store=false

#size of async logger ring buffer. should be increased for loads >2-3k req/sec
async.logger.ring.buffer.size=2048

#when true - allows reading worker to trigger hardware even app is offline
allow.reading.widget.without.active.app=false

#initial amount of energy
initial.energy=100000

#ADMINISTRATION SECTION

admin.rootPath=/admin

#used for reset password page and certificate generation.
#by default current server IP is taken. could be replaced with more friendly hostname.
#it is recommended to override this property with your server IP to avoid possible problems of host resolving
#server.host=test.blynk.cc

product.name=Blynk

#email used for certificate registration, could be omitted in case you already specified it in mail.properties
#contact.email=

#network interface to determine server's current IP.
#only the first characters of the interface's name are needed.
#the default setting eth will use the first ethX interface found (i.e. eth0)
net.interface=eth

#comma separated list of administrator IPs. allow access to admin UI only for those IPs.
#you may set it for 0.0.0.0/0 to allow access for all.
#you may use CIDR notation. For instance, 192.168.0.53/24
allowed.administrator.ips=0.0.0.0/0,::/0

# default admin name and password. that will be created on initial server start
admin.email=admin@blynk.cc
admin.pass=admin

#comma separated list of users allowed to create accounts. leave it empty if no restriction required.
allowed.users.list=

I won’t be able to verify what works or doesn’t till after I can successfully launch the server. Also, regarding your first question of the same ports, I need forgiveness on this topic as I am completely unlearned in this field. I have little more than monkey see, monkey do skills in the networking aspects.

Edit - Regarding server.properties, I found some days ago that creating a .properties file is not possible with at least Notepad. Even though I titled it server.properties, Notepad converted that to server.properties.txt. Notepad++ however allowed me many different options in the drop down box and .properties was one of them.

Simply change the file extension after you have created it.

I made the change, but wasn’t able to do so with Notepad is all I was saying.

Hi @Skybound, I was wondering what your motivation is for wanting to run a local Blynk server, and why you chose Windows 10 as the platform?

As you’ve discovered, local server isn’t for the faint-hearted and once you have it installed you have to keep the machine running 24/7, which tends to be more difficult with a Windows based machine than with say a Raspberry Pi.

Pete.

I choose a local server to mitigate internet issues I’ve had in the past. I use Windows 10 because that’s what I have and develop on. I am burning this candle from both ends and will also work at putting a server on a Pi 3B or Pi Zero W as I have both of those and there seems to be a lot more info for that method.

What u mean… Windows is stable… :stuck_out_tongue_winking_eye:

2 Likes

My point exactly.
I’m much more comfortable working in a Windows environment, Linux is just gobbledygook to me, but if I went down the Local Server route it would be a Pi every time.

Even if you have a spare Windows machine kicking around then they tend to be much more power hungry than a Pi, because they’re built to do a different job. Trying to run Local Server on a Windows machine that’s used for day to day computing is probably a recipe for an unscheduled trip to the nearest menal home :crazy_face:

Pete.

1 Like

My Win10 only shuts down maybe twice a year. I rarely update also. Still, I am also pursuing an Rpi solution as well as a Windows solution and at the end I’ll have both as options b/c redundancy is never a bad thing.

That said, would I be better off with a Pi3b or a PiZeroW? I assume both runs the same exact OS? I like the Pi3b b/c it has an HDMI port and I am using it as my user interface to configure the SD and settings, but I don’t know if I can take the SD out of the 3b and put it into the 0W or not once it’s all configured correctly.

I would recommend the RPi3b with Ethernet connection to your router (if available). WiFi is nice, but just adds another point of lag and potential interference. The RPi3b is also a quad core… not necessary with Blynk Server, but while it is ‘there’ might as well use it also as a NAS, WordPress Web Host, and/or Blynk Client to monitor/control something in the area, etc… RGB VU meter for data traffic indication… AKA mood lighting :stuck_out_tongue_winking_eye:

1 Like

I can definitely put it on Ethernet, but the rest of what you said crossed my eyes a lot, lol!

:roll_eyes: :wink: Basically having the RPi3 plugged into your router makes for a stable base… but since it is total overkill for just a Blynk server, you might as well use it to learn new things over time…

Yes, there is an RPi3 in there somewhere :microscope:

1 Like