# Cannot get past bootstrapping

**URL:** https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284
**Category:** Self-hosting
**Created:** [April 30, 2025, 7:27pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284 "2025-04-30T19:27:43Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [April 30, 2025, 7:27pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/1 "2025-04-30T19:27:43Z")

</div>

I’ve now installed Discourse on 2 different VMs.  
I’m using the [official install](https://meta.discourse.org/t/142537?silent=true) instructions.  
One running Debian 12 in a VMWare Fusion instance on a Mac Pro, the other is Ubuntu 24 in a VM running under TrueNAS.  
They are both on dedicated servers running on my local network with bridged networks and have unique accessible IP addresses.  
The TN server hosts multiple other docker containerized apps and they are all working and accessible via LAN and Internet, the Mac Pro natively hosts a wiki.  
On both, the bootstrap function completes, but I don’t get a working site. Just ‘server not responding’ in a browser.  
According to `docker ps` the container “app” is up and running, listening on ports 80 and 443, ufw reports that it’s allowing those ports.  
For a while the Debian site was showing an nginx default welcome page, but now that’s no longer responding either.  
I’m not any sort of developer or web wizard so I’m not sure how to troubleshoot, I asked Grok for some help but so far nothing has worked.

Definitely appreciate any help given.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 30, 2025, 7:35pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/2 "2025-04-30T19:35:42Z")

</div>

> [@tknospdr](#):
>
> They are both on dedicated servers running on my local network with bridged networks and have unique accessible IP addresses.

If they are not on the public internet with a domain name pointing at them then you can’t do a [standard install](https://meta.discourse.org/t/142537?silent=true).

You can look at [Install Discourse on a residential internet with Cloudflare Tunnel](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297)

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [April 30, 2025, 7:58pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/3 "2025-04-30T19:58:29Z")

</div>

I have a publicly available static IP address and a domain name pointing to that address.  
I generally use a wildcard A record to point any host to that IP but in my troubleshooting I ran across a post saying that Discourse may not play nice with proxied addresses in Cloudflare DNS so I created a dedicated A record and turned off proxy for that one.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 30, 2025, 8:11pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/4 "2025-04-30T20:11:07Z")

</div>

> [@tknospdr](#):
>
> On both, the bootstrap function completes, but I don’t get a working site. Just ‘server not responding’ in a browser.

Did you run `discourse-setup`? Did it pass the connection test?

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [April 30, 2025, 8:16pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/5 "2025-04-30T20:16:28Z")

</div>

Am I using the term ‘bootstrap function’ correctly?  
Just want to be sure we’re talking about the same thing.  
./discourse-setup IS the bootstrap, right?  
So if I say it bootstraps, and the container is running, then the connection test, which happens at the very beginning of the setup has passed.

Does all that make sense?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 30, 2025, 8:27pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/6 "2025-04-30T20:27:05Z")

</div>

> [@tknospdr](#):
>
> ./discourse-setup IS the bootstrap, right?

Well, sort of. It creates a `app.yml` and then runs `./launcher bootstrap app`.

If you’ve run it a bunch of times without DNS working right then you’ve hit rate limits with let’s encrypt. The easy solutions are to wait a week or to use a different domain name.

> [@tknospdr](#):
>
> I created a dedicated A record and turned off proxy for that one.

And nothing else is running on that machine?

And when you ran discourse-setup it didn’t complain about not being able to connect to itself?

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [April 30, 2025, 8:59pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/7 "2025-04-30T20:59:18Z")

</div>

> [@pfaffman](#):
>
> If you’ve run it a bunch of times without DNS working right then you’ve hit rate limits with let’s encrypt. The easy solutions are to wait a week or to use a different domain name.

I’ve only run it once on each VM, and I used a different host name for each.

> [@pfaffman](#):
>
> And nothing else is running on that machine?

Brand new VMs with nothing else running on them. On the actual hardware there are other things running. But they have separate internal IP addresses from their hosts.

> [@pfaffman](#):
>
> And when you ran discourse-setup it didn’t complain about not being able to connect to itself?

Correct.

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [April 30, 2025, 11:42pm UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/8 "2025-04-30T23:42:01Z")

</div>

Here’s the errors I found in the install output, none look like show stoppers:

```plaintext
690:M 30 Apr 2025 22:05:22.859 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
690:M 30 Apr 2025 22:05:22.859 # Failed listening on port 6379 (TCP), aborting.

```

```plaintext
109:M 30 Apr 2025 21:59:42.411 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition...

```

```plaintext
2025-04-30 21:59:41.125 UTC [60] postgres@postgres ERROR: database "discourse" already exists
2025-04-30 21:59:41.274 UTC [63] postgres@discourse ERROR: role "discourse" already exists

```

```plaintext
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
      stringio (>= 0)
      Available/installed versions of this gem:
      - 3.1.7
      - 3.1.5
      - 3.1.1
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.

```

```plaintext
The setting 'staticAddonTrees' will default to true in the next version of Embroider and can't be turned off. To prepare for this you should set 'staticAddonTrees: true' in your Embroider config.
The setting 'staticAddonTestSupportTrees' will default to true in the next version of Embroider and can't be turned off. To prepare for this you should set 'staticAddonTestSupportTrees: true' in your Embroider config.

```

```plaintext
Node.js heap_size_limit is less than 2048MB. Setting --max-old-space-size=2048 and CHEAP_SOURCE_MAPS=1

```

```plaintext
-e DISCOURSE_SMTP_DOMAIN=discourse.example.com

```

```plaintext
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js as it exceeds the max of 500KB.
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js as it exceeds the max of 500KB.

```

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [May 1, 2025, 3:21am UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/9 "2025-05-01T03:21:04Z")

</div>

What are the specs of your VMs? As in, how many vCPUs/RAM is allocated to them?

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [May 1, 2025, 8:39am UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/10 "2025-05-01T08:39:09Z")

</div>

Both have 2/2

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [May 1, 2025, 9:32am UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/11 "2025-05-01T09:32:50Z")

</div>

Does increasing it to 4 GB RAM help? I think the memory requirements may have gone up.

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [May 1, 2025, 10:36am UTC](https://meta.discourse.org/t/cannot-get-past-bootstrapping/364284/12 "2025-05-01T10:36:35Z")

</div>

I wasn’t thinking about the fact that since port 80 is already in use and I only have the one external IP that even though the domain check was passing during the setup process, I had to alter the host side ports to get things going.

I’m using NPM internally.

Steps to get things working:

1. Change host side port to 7080 for http
2. Since I’ll be passing traffic through my proxy manager I simplified my life and disabled the LE scripts
3. Updated the app
4. Passed ‘ext IP:80’ to ‘int IP:7080’ in the reverse proxy, then the container reversed the ports… then they did the Hokey Pokey and turned around.

Now everything so far appears to be working.
