2 Installation
SluberskiHomeLab edited this page 2025-10-03 07:46:05 -05:00

Installation

Installation of DitDashDot is pretty simple and is done through Docker Compose.

Prerequisites

Installation Procedue

  1. Create a new directory for your dashboard:

    mkdir ditdashdot
    cd ditdashdot
    
  2. Create a docker-compose.yml file:

    curl -O https://raw.githubusercontent.com/SluberskiHomeLab/ditdashdot/main/docker-compose.yml
    
  3. Start the services:

    docker compose up -d
    

This will start three services:

  • Frontend Dashboard (accessible at http://localhost:80)
  • Backend API Server
  • PostgreSQL Database

Development Installation

Submit an issue here on the repository to request a branch with the up to date dockerfiles. I do not keep them in this Gitlab unless in Staging.

Migration Guide

From 2.0.0 to 2.1.0

  1. Database Migration: The migration scripts will run automatically when the database container starts, but for existing installations:

    docker compose exec db psql -U ditdashdot -d ditdashdot -c "ALTER TABLE services ALTER COLUMN ip DROP NOT NULL; ALTER TABLE services ALTER COLUMN port DROP NOT NULL;"
    docker compose exec db psql -U ditdashdot -d ditdashdot -f /docker-entrypoint-initdb.d/003_add_pages.sql
    
  2. Docker Compose: Update your docker-compose.yml to use the new image tags:

    dashboard:
      image: sluberskihomelab/ditdashdot-dashboard:1.2
    api:
      image: sluberskihomelab/ditdashdot-api:1.2
    
  3. Configuration: After upgrading:

    • Access /config to manage your pages
    • Existing groups will be automatically assigned to the default "Home" page
    • Create additional pages as needed
    • Reassign groups to appropriate pages

Breaking Changes

  • URL structure changed: root URL now redirects to /page/1 (or first available page)
  • Groups now require page assignment (automatically handled for existing groups)

Backward Compatibility

  • All existing configurations are preserved
  • Existing groups are automatically assigned to the default page
  • No manual intervention required for basic functionality