Skip to content

aatuh/tiled-media

Repository files navigation

Tiled Media

Tiled Media is an app for browsing and displaying local media in a flexible, composable grid. The API serves media and configuration, and the Web UI renders tiles like video, audio, slideshow, text, exec, and program. It supports lightweight programmability through a JSON interface.

  • API default port: 8000
  • Web default port: 3000

What this is about

  • Tiled layout: Arrange tiles in a grid; set sizes and positions.
  • Multiple tile types: Video, audio, slideshow, text, exec, program.

Architecture

  • api: Serves /media and reads JSONC configs from CONFIG_DIR.
  • web: Dev server for the UI (Vite/Next/Vue/etc. depending on repo).

Quick start (public demo)

# Copy env example and adjust ports if needed
cp .env.example .env

# Build and run the base demo
docker compose up --build

Open:

  • API: http://localhost:8000
  • Web: http://localhost:3000

The public demo uses config/layout.jsonc and config/program.jsonc.

Mounting local media

Create an overlay directory e.g. tiled-media-overlay as a sibling directory to this repo. You can modify the overlay directory contents freely without affecting this repo

Move your .env and move the config directory file into the overlay directory.

Create a new docker-compose.yml. Example:

services:
  api:
    volumes:
      - type: bind
        source: /home/user/sounds/ # E.g. notification.mp3
        target: /app/media
        read_only: false
      - type: bind
        source: /home/user/media/ # Point to your media dir
        target: /app/media/.host
        read_only: true
      - type: bind
        source: /home/user/tiled-media-overlay/.config # Custom json dir
        target: /config
        read_only: false

This is what you should have now:

tiled-media/
tiled-media-overlay/
  config
  docker-compose.yml
  .env

Run run-overlay.sh from the overlay directory.

Common commands

# Build both services
docker compose build

# Start (public demo)
docker compose up

# Start with personal override (dotfile)
docker compose -f docker-compose.yml   -f .docker-compose.local.yml up

# Stop and remove containers
docker compose down -v

About

Tiled Media is a lightweight web app for arranging and controlling media in resizable tiles. Supports images, video, audio, and exec widgets, with JSONC config, Docker setup, and a simple API for automation. Ideal for local dashboards, media walls, and experimentation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages