Due to `umask 0007` set in `install_shadowbox` function, official docker installation script creates
`/usr/share/keyrings/docker-archive-keyring.gpg` file without read-other permission, which later
leads to permanent apt-update failure.
```
# sudo bash -c "$(cat install_server.sh)"
> Verifying that Docker is installed .......... NOT INSTALLED
> Would you like to install Docker? This will run 'curl https://get.docker.com/ | sh'. [Y/n] y
> Installing Docker ........................... OK
> Verifying Docker installation ...............
Last error: # Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c apt-get update -qq >/dev/null
W: GPG error: https://download.docker.com/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://download.docker.com/linux/ubuntu focal InRelease' is not signed.
Sorry! Something went wrong. If you can't figure this out, please copy and paste all this output into the Outline Manager screen, and send it to us, to see if we can help you.
Full log: /tmp/outline_log8Bv
```
Fix this issue by reverting the custom umask to a default one and manually fix
the existing file permissions, if any.
This cuts the GCP server setup time approximately in half, likely
because it avoids multiple calls to "apt update", which
synchronizes all known package repositories.
This PR also updates the underlying Ubuntu image to the latest LTS
release.
This change replaces the fake progress bar with a real one, reflecting
incremental installation progress. It also updates the text to avoid
claiming that installation takes less than two minutes. (It takes about
five minutes on GCP.)
Additionally, this change converts outline-server-progress-step.js to
Typescript.
Running "shellcheck", and attempting to comply with the shell script
style guide, required hundreds of trivial changes, and a small number of
nontrivial ones. For ease of review, this PR includes only the
nontrivial changes.
* Get public hostname from config file
* Tidy up
* Respond to Review Comments
At some point down the line I royally screwed up my git history and
reverted a bunch of changes. I'm not sure what or when, so I `git reset --hard 1cd28e4` and tried to redo my
past responses to comments from there.
* Export SB_PUBLIC_IP in cmd.sh
* respond to review comments
* Review response