Installation and compatibility with IPv6 only VPS

AI-generated summary

A user, mstm, is having trouble installing Discourse on a VPS with only IPv6. Despite fixing DNS issues using guides from unixfox and Tecmint, the installation fails with a Pups::ExecError.

pfaffman suggests that the issue might be related to GitHub not having AAAA records, which is necessary for IPv6 connections. mstm confirms that adding DNS records allows them to use GitHub without issues. However, pfaffman points out that this might not be enough to allow Docker to access GitHub.

pfaffman and mstm discuss the possibility of Docker not being able to access GitHub from within a container. pfaffman suspects that this might be an unsupported scenario for IPv6-only setups and shares a link to a related discussion on Concourse.

Ultimately, mstm decides to give up on the installation due to the complexity and instability of the setup.

Hi all,
I’m trying to install Discourse on a VPS (ubuntu server 22.04 LTS) with only IPv6 but I get this error

103:M 04 Feb 2023 17:27:33.313 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse git fetch --depth 1 origin tests-passed failed with return #<Process::Status: pid 145 exit 128>
Location of failure: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"code", "cmd"=>["sudo -H -E -u discourse git reset --hard", "sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse git remote set-branches --add origin main", "sudo -H -E -u discourse git remote set-branches origin $version", "sudo -H -E -u discourse git fetch --depth 1 origin $version", "sudo -H -E -u discourse git checkout $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp", "[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete"]}
bootstrap failed with exit code 128
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
364d2e22530738ab198f829e14d7d8f4d7513ec7da82e30b774381aaa28f2f63

Following these guides I fixed the problems with IPv4 dns but I still can’t complete ./launcher rebuild app
https://gist.github.com/unixfox/bb299ce4f862fad66ee2e6d9024bef98/
https://www.tecmint.com/set-permanent-dns-nameservers-in-ubuntu-debian/

Is Discourse not compatible?
If yes, then I won’t try again.

IPv6 is used extensively on their own hosting, so Discourse itself is compatible with IPv6.

Can you show more of the logs? The actual error is above the section you included. A wild guess is that something in your config is causing a problem pulling stuff from github. I don’t see any AAAA records for github, so that may be the issue. And there’s this:

I’ll add the full log soon…

After adding the dns shown here, I can use github without problems.

Hmm. But if you did that before the problems that you’re having now, it may not be enough to get docker to have access to github. Can you use github from inside of a docker container?

I changed DNS before starting the installation, docker was installed successfully with the script but I didn’t check if I can use github inside a docker container…

How can I check?
Thank you :slight_smile:

I don’t know well enough to tell you.

You’d need to crank up some container, enter it, and then try to git clone or maybe even just curl https://github.com/.

I suspect for your IPv6-only setup it’s going to be difficult and unsupported. I with google git+clone+inside+docker+ipv6 I found this: tasks have no access to ipv6 services · concourse · Discussion #5919 · GitHub

After reading several sites and guides I decided to give up.
Too complicated and unstable, anyway thanks for your help!