Homer Configure

Homer is a dead simple static HOMepage for your servER to keep your services on hand, from a simple yaml
configuration file.
We can use this app in order to have a homepage for all our services, apps and links of our server into one place, and edit only one yaml
file.
In order to run the app we need Docker installed in our system, as it is going to be run as a container. We will also need Docker Compose if we are going to use Compose to start and stop the container.
Create assets directory
First we create a local assets
directory in which Homer
will store all the assets for the web app and a default config.yml
configuration file:
Run Using Docker
We can now run the container (the first time it will be downloaded from dockerhub):
Docker run options explained:
-p
: We can bind whichever port we want on the server-host, like69
:-p 69:8080
.-v
: We specify the localassets
directory we created previously.
Run as specific user
It is best to run the container using the UID
and GID
environmental variables, in order to specify the user permissions of the local assets
directory. This will enable us to edit the config.yml
later, without changing the file permissions:
Docker run option explained:
-e
: Set theUID
andGID
depending on your user’s. Find it withid
command.
Run Using Docker Compose
The better way to run the container is using docker-compose
file where we can keep all the configurations tracked and simple start and stop the container with one command.
Create a docker-compose.yml
file:
We will fetch the docker-compose file that Homer provides, and we will change some settings:
The file currently is the following:
We will change the volume path where are assets
directory, the port
that Homer will use and the UID
andGID
owner, just like our docker run
command:
To run the container we now run:
To stop the container we run:
Access Web UI
Once Homer is deployed and you can navigate to http://ip-server, to see the home page.
Edit config file
We can edit the local ~/homer/assets/config.yml
on our server-host, and the changes will be the saved to the same file inside the container under /www/assetes/config.yml
:
Default config file
The default config file is available under the name ~/homer/assets/config.yml.dist
if we ever want to have access to it.
We can replace the config.yml
with the default like this:
Config Theme
Another theme is available on the config file under the name ~/homer/assets/config.yml.dist.sample-sui
that we can try replacing the config.yml
:
Config Options
All the following examples follow this live demo of the app.
Title & Logo
Header & Footer
We can hide the footer, by setting it false:
Options
These are some options that we can change for the home page:
Theme Customization
We can choose custom themes from the Homer Repo:
We can also add custom CSS, by adding a custom css template from the default one:
and adding the path of the stylesheet:
We can also edit directly the colors of the theme:
Message
We can have a message as the first message, or we can delete it:
We can even fetch info from an API as a message:
Navbar
The navigation bar is also customizable (default dark mode, layout, and search options) and we can add or delete items from the links
element:
Services
Here we define all the applications and services we want in groups.
The properties of each group can be:
name
icon
orlogo
items
(a list with all the services of the group)
Now each service can have these properties (not a complete list):
name
icon
orlogo
subtitle
(small description)tag
tastyle
(color of the tag)is-info
(blue)is-success
(green)is-warning
(yellow)is-danger
(red)
class
(optional custom CSS class for card, useful with custom stylesheet)background
(optional color for card to set color directly without custom stylesheet)target
(optional html a tag target attribute)
An example of the list from the demo:
Homer Structure
Add Icons - Logos
Icons
We can add icons from Font Awesome. Just browse the site for the icon you want and in the icon
element the class of the icon.
For example for the cloud icon, we have:
Logos
To add our own logos, create a separate directory in assets
for the logo images:
Place a logo, for example a Wordpress logo:
Stop & Delete Homer
If we want to start over, or just delete Homer
we can do this easily by first stopping the container and deleting the local assets
directory.
Find the ID
of the container using:
Now stop the container using the ID
you found:
And delete the local assets
directory: