# Blank page when running silverbullet through server

**URL:** https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492
**Category:** Troubleshooting
**Created:** [November 4, 2025, 3:34pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492 "2025-11-04T15:34:15Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![sininenblue](https://community.silverbullet.md/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@sininenblue](https://community.silverbullet.md/u/sininenblue)
#### Post date: [November 4, 2025, 3:34pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/1 "2025-11-04T15:34:16Z")

</div>

Running silverbullet on firefox from my server returns an empty screen with the following errors

```auto
[Client] TypeError: can't access property "digest", globalThis.crypto.subtle is undefined
    tG http://antcage.salmon-tailor.ts.net:9010/.client/client.js:70
    nV http://antcage.salmon-tailor.ts.net:9010/.client/client.js:70
    init http://antcage.salmon-tailor.ts.net:9010/.client/client.js:342
    <anonymous> http://antcage.salmon-tailor.ts.net:9010/.client/client.js:345
    I1 http://antcage.salmon-tailor.ts.net:9010/.client/client.js:29
    <anonymous> http://antcage.salmon-tailor.ts.net:9010/.client/client.js:344
    <anonymous> http://antcage.salmon-tailor.ts.net:9010/.client/client.js:346
clien

```

Also it returns a json output after going through auth

 ![image](https://community.silverbullet.md/uploads/default/original/2X/5/558f71928c8b25f7029e047f245ff8ad400795b2.png)

But running it locally on my windows machine works so I’m fairly certain it has something to do with my (admittedly kinda garbage) setup, but I’m not exactly sure how to fix it

here’s my docker compose file

```auto
services:
  silverbullet:
    image: ghcr.io/silverbulletmd/silverbullet:latest
    restart: unless-stopped
    environment:
      - SB_USER=admin:admin
    volumes:
      - ./space:/space
    ports:
      - 9010:3000

```

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [November 4, 2025, 3:35pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/2 "2025-11-04T15:35:31Z")

</div>

You have to access SilverBullet either via localhost or via HTTPS, things break when you access it via HTTP (like this one). There’s an issue to make this more visible, because you’re not the first to hit this issue: [Give a more blocking error when SilverBullet is run via http · Issue #1658 · silverbulletmd/silverbullet · GitHub](https://github.com/silverbulletmd/silverbullet/issues/1658)

---

<div class="post-metadata">

### Author: ![sininenblue](https://community.silverbullet.md/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@sininenblue](https://community.silverbullet.md/u/sininenblue)
#### Post date: [November 4, 2025, 3:40pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/3 "2025-11-04T15:40:28Z")

</div>

I see, thanks so much for answering

I’ll see if I can get that working

---

<div class="post-metadata">

### Author: ![scottmyers](https://community.silverbullet.md/user_avatar/community.silverbullet.md/scottmyers/32/960_2.png) [@scottmyers](https://community.silverbullet.md/u/scottmyers)
#### Post date: [November 9, 2025, 10:31pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/4 "2025-11-09T22:31:00Z")

</div>

I’ve been using SilverBullet since the early days and have not had any issue until recently. Now, recently, I’m getting the “blank page” everywhere (via HTTP) problem and I only now learn HTTPS or localhost is required (RTFM, I know!). Is there any guidance for adding/configuring HTTPS for/to SilverBullet? I have SB running “bare metal” on my home network on a headless RPi (Debian Trixie). I haven’t found any useful guidance yet. I suspect someone has. So, if you have clues to offer, please point me in the right direction. Thank you.

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [November 10, 2025, 1:54pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/5 "2025-11-10T13:54:48Z")

</div>

To be very honest, I’ve been really on the fence about the whole TLS requirement issue. It’s a restriction imposed by web standards on various browser features (specifically service workers, crypto APIs and clipboard access). Even though I didn’t realize it, until the last release (in which I use SHA256 to hash some things) most SB features worked without those APIs, but with my use if sha256 it broke. It never should have worked in the first place, but… somehow it did 😆

Now it’s possible to _not_ use the browser supplied sha256 implementation and provide a custom one. However, I’ve already seen a lot of users wandering into other random corners of SB that break if they ignore the HTTPS requirement

Now I see two options:

1. I put effort into making things work via HTTP as much as possible. Which would mean reimplementing/duplicating various encryption algorithms that otherwise would come for free from the browser and maintaining various additional code paths for when certain APIs are or are not available. This would lead to a lot of code complexity, which will only get worse over time.
2. I make the requirement for HTTPS more in-your-face visible

To make my own life easier (and livable) for now I took the second path. I just pushed a commit that gives you an in-your-face alert every time you load SilverBullet in a configuration that is not supported with a link to

> **[TLS](https://silverbullet.md/TLS)**

This page describes ways around this. While it may not be ideal, I also want to not make my life harder by effectively having to test every release in even more (hard to support) configurations to make sure critical paths don’t break.

Still setting up a TLS certificate for a self hosted service, to be frank is a pain in the ass. I’m also working on a (hosted) service to make this a lot easier in the future, but that’s still in development.

---

<div class="post-metadata">

### Author: ![Mr.Red](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mr.red/32/821_2.png) [@Mr.Red](https://community.silverbullet.md/u/Mr.Red)
#### Post date: [November 10, 2025, 2:39pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/6 "2025-11-10T14:39:26Z")

</div>

I’m for option 2. Keep code as simple, enforce HTTPS, and tell the user it must use HTTPS if not browsing through `localhost`  
Even in self hosted environments. There are lots of options, reverse proxys ( taefik, zoraxy, NginxProxyManager etc.) with or without owning a domain. maybe adding some easy to follow documentation or links to youtube videos to how one could setup HTTPS in their self hosted environment.  
I can recommend [zoraxy](https://github.com/tobychui/zoraxy) which i use forover a year now for all my 30+ selfhosted apps and services and it’s a one time setup. The TLS/SSL certificates renewe every 3 month automatically.

Maybe it sounds a little bit harsh when i say that there is no excuse for anyone to not use HTTPS in 2025, but that a must nowadays imho.

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [November 10, 2025, 2:41pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/7 "2025-11-10T14:41:51Z")

</div>

Cool. So I’d be happy to take contributions to [silverbullet/website/TLS.md at main · silverbulletmd/silverbullet · GitHub](https://github.com/silverbulletmd/silverbullet/blob/main/website/TLS.md) with more options to get a certificate setup easily.

---

<div class="post-metadata">

### Author: ![Mr.Red](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mr.red/32/821_2.png) [@Mr.Red](https://community.silverbullet.md/u/Mr.Red)
#### Post date: [November 10, 2025, 2:58pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/8 "2025-11-10T14:58:14Z")

</div>

😅  
OK

I will need to dig out the instruction videos and will give it a try this weekend. The problem is, there are so many variables in the mix:

- Silverbullet running barebone
- Silverbullet running through docker
- user has a dynamic/static address
- does the user want to expose SB outside its local network or not
- user already owns a domain
- user needs a free domain
- user preference for: traefik, NginxProxyManager, zoraxy, caddy  
etc.

with each of these variable there is different step by step instructions to follow.  
I will try to cover the most simple and “idiot”-proof version of all these which require the least steps and of course it’s FREE. at least we could cover 50-60% of all these scenarios.

I will give it some thoughts…

---

<div class="post-metadata">

### Author: ![Mr.Red](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mr.red/32/821_2.png) [@Mr.Red](https://community.silverbullet.md/u/Mr.Red)
#### Post date: [November 12, 2025, 12:01am UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/9 "2025-11-12T00:01:16Z")

</div>

![](https://community.silverbullet.md/uploads/default/optimized/2X/6/6163e162aa2ce0d697ee1b2f7df3fe0cca0be89c_2_690x388.jpeg)https://www.youtube.com/embed/qlcVx-k-02E?feature=oembed&wmode=opaque

Try this one. I used this method for 1 year, before switching to zoraxy.  
The method Wolfgang presents is free & easy to setup.

Also if you want to use silverbullet only locally I can recommend you caddy with [nip.io](http://nip.io) domain, also very easy to setup (tried it out myself on a raspberry to meet your scenario) I will make you a guide tomorrow.

---

<div class="post-metadata">

### Author: ![Mr.Red](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mr.red/32/821_2.png) [@Mr.Red](https://community.silverbullet.md/u/Mr.Red)
#### Post date: [November 12, 2025, 9:18pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/10 "2025-11-12T21:18:15Z")

</div>

Here is the promised guide for HTTPS & `caddy` for your local network:

> [@\[LEVEL 1\] Local HTTPS with caddy and self signed certificates](https://community.silverbullet.md/t/local-https-with-caddy-and-self-signed-certificates/3531):
>
> Local HTTPS with caddy and self signed certificates Let’s assume silverbullet is running on 192.168.1.69:3000 on your local network Step 1.: Let’s install caddy sudo apt update sudo apt install caddy Step 2. Create or edit your Caddyfile (usually in /etc/caddy/Caddyfile) sudo nano /etc/caddy/Caddyfile Delete or comment out everything inside the file and add: (replace with your own IP address in both places), notice in the first line the - and . in second line. { local\_certs } silverbul…

---

<div class="post-metadata">

### Author: ![scottmyers](https://community.silverbullet.md/user_avatar/community.silverbullet.md/scottmyers/32/960_2.png) [@scottmyers](https://community.silverbullet.md/u/scottmyers)
#### Post date: [November 12, 2025, 9:27pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/11 "2025-11-12T21:27:35Z")

</div>

Hi, Zef. Thanks for your response. Being from “the old days”, I’m used to a browser as a simple viewer. I wasn’t aware of the complexity of the interactions between the modern browser and the server – with service workers and such. I did happen to stumble upon your mention of tailscale. And, let me say, “It’s magic.” No changes to ufw on my Pi was required. No holes poked in my network’s firewall. No applying of certificates and such – just magic. Very cool tool, that. In a matter of minutes, I was able to get it set up and working such that I SilverBullet came to life once again. I could see my pages. Inline queries worked again. All was back to normal once I attained a 443 connection. So, that’s my long-winded way of saying, “thanks for that!”

---

<div class="post-metadata">

### Author: ![scottmyers](https://community.silverbullet.md/user_avatar/community.silverbullet.md/scottmyers/32/960_2.png) [@scottmyers](https://community.silverbullet.md/u/scottmyers)
#### Post date: [November 12, 2025, 9:29pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/12 "2025-11-12T21:29:13Z")

</div>

Thank you, Mr Red. I and others, I am sure, appreciate what you’ve documented here!

---

<div class="post-metadata">

### Author: ![Mr.Red](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mr.red/32/821_2.png) [@Mr.Red](https://community.silverbullet.md/u/Mr.Red)
#### Post date: [November 12, 2025, 9:58pm UTC](https://community.silverbullet.md/t/blank-page-when-running-silverbullet-through-server/3492/13 "2025-11-12T21:58:53Z")

</div>

It’s not the “best” option, but it’s definitely the easiest way to get into running Silverbullet through HTTPS locally.
