Replace Heroku with local server?

Hi all,
Apologies if this has been asked/answered before, but after a couple hours of searching I cannot find this information. After reading alot on how best to combat the issue with Amazon's websocket change for Alexa Speaks, it seams like having a local server in place of Heroku is the best option regardless of what tonesto's solution is. I have an RPI4 setup with docker so I can setup a local server to replace Heroku but I cannot find info on how to get that and Alexa Speaks setup. Can anyone point me to any instructions on how to do that? Thanks all.

You might have better luck asking within that topic. I know I’ve seen it before, but don’t have a bookmark.

1 Like

Thanks, that's one of the many threads I looked through, the most I found was to check tonesto's git but I found no luck there either. I'll still keep digging, if it's out there I'll find it, was just hoping someone had the location handy.

1 Like

If you find it let me know. I saw the same thing. I have a RPi that I am not using and figured this would be a good project for it. I did a brief search and could not find any instructions either. It's not really high on my list of things to do right now and I figured when I got ready to try I would search again. So I am watching this to see if you get a response.

AFAIK, the only function of the Heroku server is updating the cookie from Amazon every few days (or whatever time frame you have it set to) and has nothing else to do with the functionality of ES.

Understood, after reading thru the Echo threads it seems like the best solution for getting/maintaining the cookie would end up surpassing the free usage for Heroku. Since using a local server will work with whatever solution tonesto comes up with and I have an RPI available I figured now would be a good time to convert and future-proof my setup.

1 Like

I think I at least found something to try...

2 Likes

I have got it running locally myself. That github link is the correct link to the server code that I used. I installed it using NPM but I do not think you have to clone the repo with Git. I believe I gave NPM a direct link to the repo (somehow, I know I found info using google) and I can use NPM to keep it updated as well this way.

For keeping it running, I am using a windows server so I used another method but the advice for using pm2 is good as well, I have seen that app mentioned before.

Hi @tonesto7 (thanks for a great app!) and @molepage (thanks for the write-up), after yet more digging, this is where I wanted to be, running the speaks server in a docker container. This is my first foray into this type of setup so please forgive any stupid questions. Being over a year old are these instructions still valid and do you see any 'gotchas' using the RPi OS instead of Synology? As the container config in these instructions didn't reference nodejs I'm thinking I at least need to install nodejs either in the container or in the OS. or is it not needed at all? Thanks.

I haven't upgraded to Echo Speaks v4 yet, but the instructions should work.
There's nothing specific to Synology, so should work on RPi.
No need to install nodejs. As you'll see in the docker-composer.yml, the container is initialized with image: "node:alpine". This image is nodejs and it will serve the index.js we modified and mounted in the volume.

Let me know if it doesn't work, I'll update to v4 and write new instructions. Good luck!

Thanks, I plan to try this Saturday after I'm done with my honey-do list. :slight_smile:
If I get it to work then I'll post up any lessons learned compared to your instructions.

2 Likes

I went through this last weekend on a pi, and it is pretty much the same as the post from @molepage
I used an environment variable to deal with the IPAddress issue, that was mentioned.

To make things easier, you can try using this branch:
Tony's echo-speaks-server docker Branch

Instructions are in the docker/ directory (if you try it, please provide feedback).

2 Likes

Is it possible to deploy this on a Windows 10 PC. It’s currently only used for running Homebridge.

Thanks, I'll give that a try. Like I mentioned this will be my first try at building a container so I may need to bounce a question off you as some things you know inherently may not be that obvious to a newbie but I'll give it the ole college try. Thanks again.

Hi @tony.fleisher, sorry to bug you and I really hope this isn't something dumb on my part but I'm trying to clone your docker version but it fails with 'cannot find repository'.

I copy/paste this link into my 'git clone' function, https://github.com/TonyFleisher/echo-speaks-server/tree/docker-enablement, and it fails.

To test to make sure I have connectivity I can successfully clone this one, https://github.com/TonyFleisher/echo-speaks-server, but that does not have the docker support (no path to the docker folder).

I downloaded the zip file fine and it listed the main folder as echo-speaks-server-docker-enablement so I tried https://github.com/TonyFleisher/echo-speaks-server-docker-enablement but that failed authentication with my git login so I'm guessing that one's a private link. I could obviously copy the files into my RPI but then, I assume, I'd lose any automatic future updates by not having the clone.

I've triple checked the syntax and spelling but can't seem to find a reason for it not to clone. Am I missing something? Thanks.

EDIT: Finally got past this step, the git clone command needs to ID the branch specifically instead of the full git link. This worked, 'git clone -b docker-enablement https://github.com/TonyFleisher/echo-speaks-server.git'
Now onward!

Victory! Got it working, thanks @tony.fleisher. A couple of small things I came across before I got it working.

  1. The git clone command to get the docker branch (maybe that's something well known but as a newbie it wasn't obvious), as mentioned above.
  2. When running the build it fails because it can't find the 'env...' file. I noticed in the YAML file that the 'dist' extension was not added. So I made a local copy of the 'env...' file, removed the 'dist' extension and then the build went through, no problem.

Thanks again

2 Likes

Yes it runs off node.js / npm, same as homebridge. You just need to have something to start it as a system service. It does not come with a fancy auto-installer like homebridge does. NSSM, WinSW, or pm2 would work (if pm2 works in windows).

1 Like

I just saw that Echo Speaks will stop working soon because of the end of free Heroku accounts.

I use Echo Speaks but not enough to pay $7 to $12 per month for something that used to be free. I would rather spend hundreds of dollars on more computer stuff and hundreds of hours of my time trying to get it to work.

I have some legacy software/IT knowledge and a spare Raspberry Pi. So, this sounds like a good way for me to keep using Echo Speaks.

Does anyone agree as of 9/22?

Does anyone have any good links to recommend for implementation?

Thanks!

1 Like

If you already have a pi and have nodejs installed. The following post from the ES thread should get you going...

1 Like

That's not scheduled until November IIRC, and @tonesto7 has stated a few times that he is working to completely revise the process such that the Heroku server isn't needed. Just need to be little patient so that you don't spend a lot of time replicating the current, only to turn around and rip it out as unnecessary.

10 Likes