Secure web access

 It is possible to have world wide access to Ired via the web, however I would like to restrict access in order to prevent illegal access. Especially when controlling my mother's TV and radio. Can I set a password on the iRed web server or use Apache as web server for iRed? When using apache, which files shall be accessible via Apache?

Not yet

 Rob,

the iRed web server has no access control, yet. I am not sure when this feature will be implemented.

I think you can solve this by using the ired2:// syntax. Using the scripting clips on the Action Editor, you get a URL like "ired2://perform?uuid=77E9F7C1-7FF5-492E-AB26-631A042068D0". If you call that on your webserver, iRed will perform the respective action. iRed must be running for that and the user must be logged in. There is a little bit more on that in the manual (at the bottom of this page).

You can create a remote using html with those links included, then put it on your webserver. Securing the webserver is a different issue. Unfortuntaly I have no details on that, but Mac OS X is running Apache and there are lots of FAQs and HowTos on the web.

I am currently working at

I am currently working at the following solution using reverse proxy: define a protected directory "iRed" in the apache server, and forward requests for this directory to the iRedserver. So everything to www.myserver.com/iRed goes to www.myserver.com:4142. So far I managed to realize the login and to see the start page of the iReserver, but disrupted. I am not yet an expert in reverse proxy, but I think this is due to te fact that the iRedserver is not designed for reverse proxying. When a html page contains absolute refrences to other pages , like /CSS and /INDEX, these references are not forwarded because the path does not contain "iRed". I will try several solutions:

  1. copy all absolute references to the apache webserver. However there is a reference to /INDEX but no file INDEX, so this will not work
  2. forward áll request from the root of the apache server, so from www.myserver.com to www.myserver.com:4142. That should work. 
  3. use a virtual server at port 81 for redirecting all request to the root of this server. So everything to www.myserver.com:81 is forwarded towww.myserver.com:4142. Just in case you are using your webserver at port 80 for other content.

I will let you know what my results are.

Rob

Awesome site!

Halten Sie die wunderbare Arbeit 

Got solution 2 working

1) define a user and password with the command sudo 

> htpasswd -c /etc/apache2/passwd/passwords iRed

(seel http://httpd.apache.org/docs/2.2/howto/auth.html)

 
2) add the following lines to /etc/apache2/httpd.conf (see http://www.apachetutor.org/admin/reverseproxies)

ProxyRequests Off

 

 <Proxy *>

Order deny,allow

Allow from all

</Proxy>

 

ProxyPass /  http://127.0.0.1:4142/

ProxyPassReverse /  http://127.0.0.1:4142/

 

<Location /  >

AuthType Basic

AuthName "iRed"

# (Following line optional)

AuthBasicProvider file

AuthUserFile /etc/apache2/passwd/passwords

Require user iRed

</Location>