Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instructions for Heroku? #162

Closed
TylerHobanDotCom opened this issue Sep 13, 2018 · 10 comments
Closed

Instructions for Heroku? #162

TylerHobanDotCom opened this issue Sep 13, 2018 · 10 comments
Labels
question Further information is requested

Comments

@TylerHobanDotCom
Copy link

I am looking to selfhost Invidious on Heroku. In its current state Invidious can't just be deployed as it doesn't have a Procfile and also Heroku's Crystal buildpack is community maintained so it can be kinda broken. I would probably have to find a add-on to make logins work (even though I don't plan on using them) as Heroku does not have SQL or any type of database system built into webapps. It may even require a seperate branch of the source code just to make Invidious compatible. I am not the sharpest when it comes to Crystal but I could definitely help with creating a branch that is ready to deploy to Heroku.

I also understand if you wish not to support Heroku. In that case I may just make my own repo and try to make that work. I await your reply.

Resources:

Crystal buildpack for Heroku: https://github.com/crystal-lang/heroku-buildpack-crystal
Procfile format: https://devcenter.heroku.com/articles/procfile
Potential add on to be used for database: https://elements.heroku.com/addons/heroku-postgresql

@omarroth
Copy link
Contributor

I don't know much about Heroku, but I am currently looking into alternative ways to host Invidious: as a Docker image, on Ubuntu, and obviously support for Heroku would be good so that other folks can host the project.

Unfortunately it may be a bit before I can dig into this, although I would absolutely be interested in merging if you'd like to work on it, and I'd be happy to answer any questions here or on the FreeTube Matrix server.

@omarroth
Copy link
Contributor

Just merged support for Docker with #186. As I mentioned earlier I'm not familiar with Heroku, but I saw this article, which might be a good place to start for creating clusters on Heroku.

@ghost
Copy link

ghost commented Dec 24, 2018

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

@TylerHobanDotCom
Copy link
Author

@gustavo-gomez Incredible! Nice work, please provide source as soon as possible. Can't wait to deploy this!

@omarroth omarroth added the question Further information is requested label Apr 30, 2019
@TylerHobanDotCom
Copy link
Author

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

Hey I know it's been quite some time but could you please post source? I'm still interested in deploying this. Even if it's not current anymore I'd love something to work with.

@unixfox
Copy link
Member

unixfox commented Apr 2, 2020

It's against the TOS to host Invidious on Heroku:

Use the Service to operate an "open proxy" or any other form of Internet proxy service that is capable of forwarding requests to any End User or third party-supplied Internet host;
Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

-https://www.heroku.com/policy/aup

@TylerHobanDotCom
Copy link
Author

It's against the TOS to host Invidious on Heroku:

Use the Service to operate an "open proxy" or any other form of Internet proxy service that is capable of forwarding requests to any End User or third party-supplied Internet host;
Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

-https://www.heroku.com/policy/aup

As far as I know Heroku uses this restriction against "web proxy" scripts like GlypeProxy but not something like Invidious. Invidious is moreso an alternative client then a web proxy.

There are already other projects that work as alternative to YouTube's web interface like YouTube Video Downloader and otherwise.

Even then, Heroku's terms against proxies are rarely (if ever) enforced. But Invidious is still not a web proxy script and as such probably would not fall into these terms in the first place.

@unixfox
Copy link
Member

unixfox commented Apr 3, 2020

Invidious literally fall into this category of their AUP:

Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

Invidious doesn't identify as a unique User Agent and it does some web scraping for fetching YouTube content.

If Invidious starts to support officially Heroku I'm pretty sure that they will ban Invidious from their platform just like they did with cloud-torrent: jpillora/cloud-torrent#82. They enforce their ToS when the app is getting quite popular on their platform.

@odysseusmax
Copy link

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

can you say how you managed to host it on heroku?

@unixfox
Copy link
Member

unixfox commented Jan 22, 2021

@TheFrenchGhosty this can be closed. I explained why it's not good to host invidious on heroku in #162 (comment)

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 11, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

5 participants