BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Cannot access Blynk local server website

When I try to access by local Blynk server website https://192.168.1.20:9443/Admin
I get page can’t be reach. Yes, the server is online and I can ping the IP address and Blynk app works just fine.

Here is what Blynk.log show:

14:30:51.449 INFO - Using data dir '/home/pi/Blynk'
14:30:55.844 INFO - Region : local. Host : 127.0.1.1.
14:30:57.096 INFO - Initializing gmail smtp mail transport. Username : MyBlynkServer@gmail.com. SMTP host : smtp.gmail.com:587
14:30:57.193 INFO - Reports : 0
14:30:57.194 INFO - Didn't find custom user certificates.
14:30:57.198 INFO - Didn't find Let's Encrypt certificates.
14:30:57.198 WARN - You didn't specified 'server.host' or 'contact.email' properties in server.properties file. Automatic certificate generation is turned off. Please specify above properties for automatic certificates retrieval.
14:30:57.199 WARN - ATTENTION. Server certificate paths (cert : '/home/pi/Blynk', key : '/home/pi/Blynk') not valid. Using embedded server certs and one way ssl. This is not secure. Please replace it with your own certs.
14:31:00.000 ERROR- Error initializing HTTP API and WebSockets, port 8080
java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method) ~[?:1.8.0_65]
	at sun.nio.ch.Net.bind(Net.java:433) ~[?:1.8.0_65]
	at sun.nio.ch.Net.bind(Net.java:425) ~[?:1.8.0_65]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[?:1.8.0_65]
	at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:130) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254) ~[server-0.39.12-java8.jar:?]
	at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366) ~[server-0.39.12-java8.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[server-0.39.12-java8.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) ~[server-0.39.12-java8.jar:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) ~[server-0.39.12-java8.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) ~[server-0.39.12-java8.jar:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[server-0.39.12-java8.jar:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
14:44:06.137 INFO - Using data dir '/home/pi/Blynk'
14:44:08.334 INFO - Region : local. Host : 127.0.1.1.
14:44:09.720 INFO - Initializing gmail smtp mail transport. Username : MyBlynkServer@gmail.com. SMTP host : smtp.gmail.com:587
14:44:09.812 INFO - Reports : 0
14:44:09.814 INFO - Didn't find custom user certificates.
14:44:09.818 INFO - Didn't find Let's Encrypt certificates.
14:44:09.819 WARN - You didn't specified 'server.host' or 'contact.email' properties in server.properties file. Automatic certificate generation is turned off. Please specify above properties for automatic certificates retrieval.
14:44:09.820 WARN - ATTENTION. Server certificate paths (cert : '/home/pi/Blynk', key : '/home/pi/Blynk') not valid. Using embedded server certs and one way ssl. This is not secure. Please replace it with your own certs.
14:44:33.157 ERROR- Error initializing HTTP API and WebSockets, port 8080
java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method) ~[?:1.8.0_65]
	at sun.nio.ch.Net.bind(Net.java:433) ~[?:1.8.0_65]
	at sun.nio.ch.Net.bind(Net.java:425) ~[?:1.8.0_65]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[?:1.8.0_65]
	at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248) ~[server-0.41.14-java8.jar:?]
	at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) ~[server-0.41.14-java8.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[server-0.41.14-java8.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[server-0.41.14-java8.jar:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[server-0.41.14-java8.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[server-0.41.14-java8.jar:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[server-0.41.14-java8.jar:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[server-0.41.14-java8.jar:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]

And here is my server.properties file:

enable.db=true
enable.raw.db.data.store=true

#hardware ssl port
hardware.ssl.port=8441

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

#http and web sockets port
http.port=8080

#https and web sockets port
https.port=9443

#application ssl port
app.ssl.port=8443

In your previous topic where you mentioned this issue, I pointed you to the example server.properties file on the Blynk GitHub site.
That file has 45 parameters in it, and you’ve chosen to incorporate 7 of them into your server.properties file.
Is there any logical process that you followed when choosing to omit the other 38 entries, and don’t you think that this may have a bearing on your inability to access the admin portal?

Also, are you 100% certain that this is the server.propertries that is being used by your Blynk server?
What is the path to this file, and what command do you use to start your Blynk server?

Pete.

Since you don’t have valid certs, port 8080 might need to be used?! And according to you log it’s already use by another program.

Use netstat -plnt to list which program is listening on which port.

Hi Pete,

I have put in all the parameters and now I can see the Admin page but unable to login.
What do I need to modify in order for me to login?

Difficult to say without knowing what you’ve put in there.

Pete.

What does your log file say now?

I only modified the host name to my local RP IP address and change the default admin name and password.

Here is my server.properties:

#hardware mqtt port
hardware.mqtt.port=8440

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

#if this property is true csv download url will use port 80 and will ignore http.port
force.port.80.for.csv=false

#if this property is true redirect_command will use 80 port and will ignore http.port
force.port.80.for.redirect=true

#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=50

#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=5

#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=96

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

#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 10 if not provided.
#leave it empty for infinity timeout
hard.socket.idle.timeout=10

#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

#when enabled server will also store hardware and app IP
allow.store.ip=true

#initial amount of energy
initial.energy=1000000

#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=192.168.1.20

#used for fallback page for reset user password, in most cases it should be the same as server.host
#IP is not allowed here, it should be blynk-cloud.com for Blynk app
#or *.blynk.cc for private servers with own apps
restore.host=192.168.1.20

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=MyEmail@yahoo.com
admin.pass=MyPassword

and here is my file structure:

Any help to how to fix the access to local Admin page?

So previously you’ve said that you can access the admin page but can’t log in, now you appear to be saying that you can’t access the admin page at all.
Would you like to clarify which it is?

If you access the page but can’t log-in then you should probably read this:

Pete.

Problems solved, I can now login to the Admin page.
Problems was due to missing data in server.properties and wrong admin login ID which should be admin@local.com
Thanks Pete for all your help.