# Setting up Homepage on Fedora Linux
This guide will walk you through installing and configuring the **Homepage service** on Fedora Linux. Homepage provides a customisable dashboard where you can monitor useful information such as **weather, system resources, network status, and time/date**.
Official documentation: [gethomepage.dev](https://gethomepage.dev/configs/)
---
## 1. Install Dependencies
Homepage runs best in Docker.
```bash
# Update Fedora
sudo dnf update -y
# Install Docker
sudo dnf install -y docker docker-compose
# Enable and start Docker
sudo systemctl enable --now docker
```
Verify Docker is running:
```bash
docker --version docker-compose --version
```
---
## 2. Setup Homepage with Docker Compose
Create a homepage folder:
```bash
mkdir ~/homepage && cd ~/homepage
```
Create a docker-compose.yaml file:
```bash
sudo nano docker-compose.yaml
```
Once opened, add this boilerplate code:
```bash
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
volumes:
- ./config:/app/config
ports:
- 3000:3000
restart: unless-stopped
```
---
## 3. Configure Homepage
All configuration files must be stored in ~/homepage/config/
### Settings files
Create a config folder, then create a settings.yaml file within it:
```bash
mkdir config
nano config/settings.yaml
```
We will add some basic starter code:
```yaml
title: "Fedora Dashboard"
theme: dark
```
Save and Exit by pressing Ctrl + X, confirm save buffer, and file name.
Start the Homepage container:
```bash
sudo docker-compose up -d
```
In your web browser, open http://localhost:3000
---
## 4. Adding Widgets
### Time & Date
Create a new widgets.yaml file:
```bash
nano config/widgets.yaml
```
Inside, place the following code:
```yaml
- datetime:
format:
timeStyle: short
dateStyle: long
```
### System Resources
Add the following to your config/widgets.yaml file:
```yaml
- resources:
cpu: true
memory: true
network: true
```
### Weather
For a bonus, add weather functionality. For this you will need to create an account on [OpenWeatherMap](https://home.openweathermap.org/users/sign_up) and generate an API key. The add the following to your widgets file:
```yaml
- openweathermap:
label: "Dover"
latitude: 51.128
longitude: 1.311
units: metric
provider: openweathermap
apiKey: "YOUR_API_KEY_HERE"
cache: 5
```
Save and Exit by pressing Ctrl + X, confirm save buffer, and file name.
---
## 5. Restart Homepage
After editing and saving your yaml files, restart the Homepage service:
```bash
sudo docker-compose restart
```
Check http://localhost:3000 for change
---
## 6. Additional Widgets
There are many different widgets that you can implement into Homepage, full list available here:
[Homepage Widgets](https://gethomepage.dev/widgets/)