Skip to content

openHAB: redirect port 8080 to port 80

The openHAB Raspberry image, by default, listens on port 8080. After using the image for a while, it became quite boring to always add the port to the URL. Quickly I decided to redirect port 80 to port 8080, and make my life easier.

Not sure how much work that is in the openHAB settings, I settled with redirecting or forwarding the port 80 to port 8080.



There are a few options: use a proxy, install a full flavored webserver and use that as a proxy, use a tool which generates a "301" or "302" redirect on port 80, or use a tool which redirects the traffic itself.

The small utility "redir" seemed like a good start, and the operating system already has a package for that. All I have to do is install the package, and create a service file for systemd *sigh*

Let's start with the package installation: that's an easy task using Ansible. I decided to move everything into a separate role named "redir", this way I can just pull in the role. The directory structure looks like this:

Playbook Directory
 -> roles/
 -> roles/redir/
 -> roles/redir/tasks/
 -> roles/redir/templates/

The "tasks" directory holds a main.yml file which has all required installation instructions. The "templates" directory has the template for the service file: redir.service. The main.yml file:


- name: redir packages
    name: "{{ item }}"
    state: present
    - redir

- name: Install systemd service file
    src: "{{ role_path }}/templates/redir.service"
    dest: /etc/systemd/system/redir.service
  register: systemd_redir_service_file

- name: Enable redir service
    name: redir
    enabled: yes
    state: started

- name: Restart redir service
    name: redir
    state: restarted
  when: systemd_redir_service_file.changed

Three steps:

  1. Install the "redir" package
  2. Copy the template file to the remote host, into the systemd service directory
  3. Restart the service, in case something changed

And finally, the service file:

Description=redir service for redirecting port 80 to 8080 openhab2.service

ExecStart=/usr/bin/redir :80 :8080
ExecStop=/usr/bin/killall -15 redir


The service itself is started using this line:

ExecStart=/usr/bin/redir :80 :8080

This tells "redir" to redirect all traffic from port 80 to port 8080. Because the port 80 is a privileged port, the service must be started as root.


Now all I have to do is adding the role in my main Playbook:


- hosts: all
  become: yes
    - redir




No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options