Zum Inhalt

Dashy role

Deploy Dashy, a highly customizable dashboard application for organizing web services, bookmarks, and widgets.

Usage

The role automatically generates the conf.yml configuration file from Ansible variables.

Basic Configuration

Configure Dashy settings in your inventory:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# vars/main.yml
registry_username: your_registry_user
registry_password: your_registry_password
dashy_hostname: dashy
dashy_description: Dashy dashboard
dashy_image_name: lissy93/dashy
dashy_image_version: latest
dashy_configfile_name: conf.yml
dashy_configfile_location: /docker/dashy
dashy_network_name: proxy

Application Config & Authentication

The application configuration is defined in dashy_app_config. Note: For authentication, the admin password hash is handled separately via dashy_admin_hash to ensure correct handling of Ansible Vault encrypted strings.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Define the admin password hash (encrypted via ansible-vault)
dashy_admin_hash: "$2a$10$..."

# App configuration
dashy_app_config:
  theme: dashy-docs
  layout: auto
  auth:
    enableGuestAccess: true
    users:
      - user: dashy-admin
        type: admin
        # hash is injected automatically from dashy_admin_hash

Dashboard Sections

Define your dashboard items in dashy_sections:

1
2
3
4
5
6
7
8
dashy_sections:
  - name: Development
    icon: fas fa-code
    items:
      - title: Gitea
        description: Git Server
        icon: gitlab
        url: https://git.example.com

Include the role in your playbook:

1
2
3
4
# playbooks/proxmox/deploy_docker_services.yml
- hosts: docker_services
  roles:
    - role: dashy

The role provides these tags: - dashy-install - Deploy Dashy container - dashy-uninstall - Remove Dashy container

Docs

Deploy Dashy to your Docker host:

1
ansible-playbook -i inventory/hosts.yml playbooks/proxmox/deploy_docker_services.yml --tags dashy-install

Remove Dashy installation:

1
ansible-playbook -i inventory/hosts.yml playbooks/proxmox/deploy_docker_services.yml --tags dashy-uninstall

Configuration Details

The role deploys Dashy with: - Official Image: lissy93/dashy (from Docker Hub) - Traefik Integration: Automatic HTTPS via Traefik reverse proxy - Custom Configuration: Mount your conf.yml from host - Network: Connects to external proxy network - Restart Policy: unless-stopped

Accessing Dashy

After deployment, Dashy is available at: - URL: https://dashy.rwcloud.ch - Port: 8080 (internal, accessed via Traefik)

Configuration File

The role copies your configuration file from the role's files/ directory to the host at /docker/dashy/conf.yml, then mounts it into the container.

Example conf.yml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pageInfo:
  title: My Dashboard
  description: Welcome to my self-hosted services

sections:
  - name: Infrastructure
    icon: fas fa-server
    items:
      - title: Portainer
        url: https://portainer.rwcloud.ch
        icon: favicon
      - title: Traefik
        url: https://traefik.rwcloud.ch
        icon: favicon

  - name: Applications
    icon: fas fa-rocket
    items:
      - title: Nextcloud
        url: https://nextcloud.rwcloud.ch
        icon: favicon
      - title: Gitea
        url: https://gitea.rwcloud.ch
        icon: favicon

See Dashy documentation for full configuration options.

Features

Dashy provides: - Customizable sections and item layouts - Icon support (Font Awesome, favicon, custom) - Built-in status checking - Search functionality - Keyboard shortcuts - Multiple themes (light, dark, custom) - Widget support (weather, RSS, system stats, etc.) - Multi-page support - Authentication options - Backup and restore - Material Design interface

Customization

Edit /docker/dashy/conf.yml on the host and restart the container:

1
docker restart dashy

Or update via Dashy's web UI (requires authentication to be enabled).

Authentication

To enable authentication, add to your conf.yml:

1
2
3
4
5
appConfig:
  auth:
    users:
      - user: admin
        hash: your_bcrypt_hash_here

Generate bcrypt hash:

1
docker exec dashy node /app/services/hash-password.js your_password