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.
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.
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
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:
<!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>
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…
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.