Clean install: Blank page

I followed this guide to setup a PeerTube instance on a Debian 10 (buster) server:

(I also installed webservice with nginx package)

Last, when I visit website I get a blank page (HTML source is not empty and page title is that configured).
Tried with M.Firefox 78, Icecat 52, Midori 7, Iridium 2019.04

Log shown by « sudo journalctl -feu peertube » says no error; only « GET » queries.

What is your instance url?

Most likely your reverse-proxy is misconfigured. How have you setup the peertube part of your Nginx configuration?

At peertube container I copied /var/www/peertube/peertube-latest/support/nginx/peertube to /etc/nginx/sites-available/peertube and the only two modifications I did were:

  • Replace « [peertube-domain] » by public FQDN
  • Fix ssl_certificate* paths to point to real file locations.

I’ve tried either with reverse proxy (Apache container) and with direct TCP/443 forward, both with same result.

You cannot have both reverse-proxies, nor a direct connection. You have to use Nginx as your reverse proxy.

Infrastructure scenario is: Apache reverse proxy as TCP/443 public frontend.
Next hop is a container dedicated to Peertube.

Peertube installation guides are focused to nginx local setup; then I setup nginx at Peertube container as indicated. I have no problem in not using nginx at all or using nginx as middle backend…

« direct connection » testing I mentioned was from internet to Peertube container with indicated nginx in it.
I can’t leave nginx as public frontend when this goes to production.

Sorry, we only support Nginx since otherwise we would have to become experts in each and every reverse-proxy available and their scenarios…

In your case, if you really want to stay with Apache as the front reverse-proxy, then let it do the TLS termination, and just proxy to the Nginx reverse-proxy with the same configuration switched to a non-TLS connection and stripped of all certificate setup on a different port.

Do you mean this?
Internet -> HTTPS/443(Apache) -> HTTP/80(nginx+peertube)
I’ve tried and got same result.
I’ve also tried with direct HTTP (port 80 directly to nginx+peertube container) and got same result.

I want to reach a testable working setup with « direct » HTTP/S from Internet to nginx+peertube container; this before trying alternate circuits as Apache frontend.
I need to see that Peertube just works, at least in its main supported scenario.

If I look into blank page source code and there I see some conditioned (disabled) messages about Javascript and browser checks, apart of title and description tags that are taken from customized config/production.yaml

Please show your reverse-proxy configs at least

If you are asking for Apache’s profile at container dedicated to webproxies:

SSLEngine on
SSLCertificateChainFile "/etc/sesele/local-certs/mytube.example.net/chain.pem"
SSLCertificateFile "/etc/sesele/local-certs/mytube.example.net/fullchain.pem"
SSLCertificateKeyFile "/etc/sesele/local-certs/mytube.example.net/privkey.pem"

SSLProxyEngine on
ProxyPreserveHost on
#ProxyPass / https://mytubebackend.example.net/
ProxyPass / http://mytubebackend.example.net/

If you are asking for nginx installed at container dedicated to Peertube (mytubebackend), website profile is copied from /var/www/peertube/peertube-latest/support/nginx/peertube and its proxy main part says:

location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 8G;
proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;
}

(and there are others for locations /tracker/socket and /socket.io)

What can I do to find the problem at this point?

This is the website content I still get:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta name="theme-color" content="#fff" />
    <meta property="og:platform" content="PeerTube" />
    <!-- Web Manifest file -->
    <link rel="manifest" href="/manifest.webmanifest?b3ce402e8723b5bb479e41955fa34c30946dd462">

    <link rel="icon" type="image/png" href="/client/assets/images/favicon.png?c196c3f0840d394145d800d820115bc91b502fc0" />

    <!-- logo background-image -->
    <style type="text/css">
      .icon-logo {
        background-image: url(/client/assets/images/logo.svg?ba658078954907bb024da7247e32bbe66da7ba10);
      }
    </style>

    <!-- base url -->
    <base href="/client/en-US/">
    <!-- /!\ The following comment is used by the server to prerender some tags /!\ -->

    <title>Mi videoteca</title>
    <meta name="description" content="Audiovisuales en red" />
    <style class="custom-css-style"></style>
    <!-- meta tags -->

    <!-- /!\ Do not remove it /!\ -->
  <link rel="stylesheet" href="styles.7342350cfd83d59a05b4.css"></head>

  <!-- 3. Display the application -->
  <body id="custom-css">

    <noscript>
      <p>It seems you are either <strong>blocking or disabling Javascript</strong> on your browser, and we totally get that. However this endpoint uses Angular, so the front end is in full JavaScript and won't work without it.</p>

      <p>There might be numerous reasons you refuse to use JavaScript. If it just has to do with security (or lack thereof) of JavaScript-based web applications, then depending on your threat menace you might want to go through the code running on the node you are trying to access, and look for security audits.</p>

      <p>There are other non JS-based unofficial clients to access PeerTube. You can find a list maintained by the PeerTube project in <a href="https://framagit.org/framasoft/peertube/documentation/-/raw/master/use-third-party-application.md">the thid-party applications section</a>. You can also develop your own as our code is open source and libre software under the <a href="https://github.com/Chocobozzz/PeerTube/blob/develop/LICENSE" target="_blank" rel="noopener">GNU AGPLv3.0</a> and documented on <a href="https://docs.joinpeertube.org/api-rest-reference.html">docs.joinpeertube.org</a>.</p>
    </noscript>

    <div id="incompatible-browser" class="alert alert-danger" style="display: none">
      <p>We are sorry but it seems that PeerTube is not compatible with your web browser.</p>
      <p>Please try with the latest version of <a href="https://www.mozilla.org" target="_blank">Mozilla Firefox</a>.</p>
      <p>If you think this is a mistake, do not hesitate <a href="https://github.com/Chocobozzz/PeerTube/issues/new" target="_blank">to report it</a>.</p>
    </div>

    <script type="text/javascript">
      function displayIncompatibleBrowser () {
        var elem = document.getElementById('incompatible-browser')
        if (elem.className.indexOf('browser-ok') === -1) {
          elem.style.display = 'block'
        }
      }

      window.onerror = function () {
        displayIncompatibleBrowser()
      }

      if (/MSIE|Trident/.test(window.navigator.userAgent) ) {
        displayIncompatibleBrowser()
      }
    </script>

    <my-app>
    </my-app>

  <script src="runtime-es2015.157a65e0e8bbda6e9e3d.js" type="module"></script><script src="runtime-es5.157a65e0e8bbda6e9e3d.js" nomodule defer></script><script src="polyfills-es5.d52de1e5be9235384e85.js" nomodule defer></script><script src="polyfills-es2015.a056ef761beb7a20be01.js" type="module"></script><script src="main-es2015.b5c61bf16e81587a49b3.js" type="module"></script><script src="main-es5.b5c61bf16e81587a49b3.js" nomodule defer></script></body>
</html>

This content seems correct. What is your browser? Can you please copy/paste the browser’s console logs.

  • Firefox: No messages on console when visiting website. Page view in blank.
  • Midori: No messages on console when visiting website. Page view in blank.
  • GnuIcecat: No messages on console when visiting website. Page view in blank.
  • Iridium: No messages on console when visiting website. Page view in blank.

Now also tried with a Windows client host:

  • Internet Explorer 11: No messages on console when visiting website. Page view with message « PeerTube is not compatible with your web browser »
  • Edge 11: Can’t launch from console (only GUI launcher works for me). Page view in blank.

What is your instance url?

About annunced requirements in Chocobozzz home page, I installed:

  • nodejs 10.21.0~dfsg-1~deb10u1 (from Debian repository)
  • postgresql 11+200+deb10u4 (from Debian repository)
  • redis-server 5.0.3-4+deb10u2 (from Debian repository)
  • yarnpkg 1.22.4-2~bpo10+1 (from buster-backports)

To yarn works, I needed to run this:
sudo ln -s /usr/bin/yarnpkg /usr/bin/yarn

Seeing your other post here: Install guides path , I think the problem comes from your browsers configuration. You need to allow javascript and ajax requests…

As I said above, the html content is fine.

I see other Peertube nodes fine.

Please give us your instance url, so we can check.

I just encountered the same symptoms described here. The problem for me turned out to be a permissions issue. /var/www/peertube was created with 700 permissions, so nginx was unable to open any files inside it. Changing that to 755 cleared up the issue for me.