This is the main javascript application you can use on d.tube. This is probably the starting point for anyone wanting to contribute to d.tube.
- Linux and Mac:
curl https://install.meteor.com/ | sh
- Windows: link
Clone this repository and meteor npm install
in it. This will install all dependencies coming from npm including the ones required for development.
Finally, do meteor
in the folder to start the app in development mode.
-p 3456
for running on a different port than the default 3000.--production
will minify and merge the javascript and css files.
Meteor will automatically push any change on the code to the browser while you keep the meteor dev server running.
For doing anything on the upload side, it is strongly recommended to run your own dtube/ipfs-uploader. Once running, simply turn the localhost
setting to true
in client/settings.js
and it will upload locally instead of our production servers.
As you can see, we use the embed directly available on emb.d.tube. This is the dtube/embed repository. Feel free to clone it and directly point the client/views/commons/videos/player.js
to your file:// version of the player if you want to make changes that include the player.
The dtube/minidtube repository is responsible for all the pre-rendering and serving a decent version of d.tube to bots which normally wouldn't be able to.
.meteor
meteor files, don't touch unless you know what you are doing..vscode
if you use visual studio code.public
all the static files like pictures, fonts and translations.client
all the app code-
client/collections
minimongo collections that templates feed from
-
client/css
css files.
-
client/lib
semantic ui related code.
-
client/views
templates, each has 2 files, html and js, a handlebar template and associated logic.
-
-
client/views/commons
all the re-used templates
-
-
-
client/views/pages
all the templates matching a route inrouter.js
-
-
-
client/views/topbar
the fixed menu on top of the app
-
-
-
client/views/sidebar
the sidebar menu
-
The plan is to keep on pushing key features of traditional video platforms to d.tube, and decentralizing it all over time. Our roadmap shows what is centralized / decentralized at the moment in the project and where work needs to be put. https://docs.google.com/presentation/d/10JjkCmQjKCo0p4wObrffcmApA9JwNpdMkpIfmEnir-U/edit?usp=sharing
If you are using windows, the meteor npm
seems to be buggy at times. You can try using the normal npm
instead if you have that installed.
After each meteor or package.json update, you will need to re-run meteor npm install
For any help, feel free to join us in our Discord Channel