Skip to content

TestDesk/one-file-dash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

one-file-dash

A lightweight, file-based server dashboard in a single PHP file. No database, no framework, no setup — just upload the file and go.

Light Mode Columns Dark Mode Rows Dark Mode Columns Dark Mode Rows


Features

  • Single PHP file — no setup, no dependencies
  • TXT-based configuration — add projects via text files
  • Light & Dark Mode — toggle with one click, preference is saved
  • Two layouts — columns side by side or categories stacked
  • Responsive — works on desktop, tablet and mobile
  • Two versions — Static (manual IP/domain) and Dynamic (auto-detected)

Versions

Version File Description
v1.0 Static index_static_de.php / index_static_en.php IP and domain entered manually
v1.1 Dynamic index_dynamic_de.php / index_dynamic_en.php IP and domain auto-detected

Installation

  1. Upload the PHP file (e.g. index_static_en.php) to your web directory
  2. Rename the file to index.php
  3. Edit the configuration at the top of the file (title, categories, etc.)
  4. Create a subdirectory for each project with a TXT file inside

TXT File Format

Each subdirectory needs a TXT file with the same name as the folder:

my-project/
└── my-project.txt

Content of the TXT file:

CATEGORY
Project Name
Short description of the project

Or with an external link (e.g. for Docker apps on different ports):

DOCKER
<a href="http://192.168.1.1:8080">My Service</a>
Short description

Important: Line 3 (description) must not contain line breaks.


Configuration

The main settings are at the top of the PHP file:

$directory      = './';              // Directory to scan
$pageTitle      = 'My Server';      // Browser tab title
$pageBadge      = 'My Server';      // Badge above heading
$pageHeading1   = 'My Server';      // Heading line 1
$pageHeading2   = 'Overview';       // Heading line 2 (bold & colored)
$pageSubheading = '192.168.1.1';    // Info line (IP, domain)
$pageFooter     = '';               // Footer text (empty = no footer)

Customize categories

$categories = [
    'DOCKER'   => [],   // Key must match line 1 of the TXT file
    'CMS'      => [],
    'MEDIA'    => [],
];

$displayNames = [
    'DOCKER'   => 'Docker Apps',    // Display name shown on the page
    'CMS'      => 'CMS Systems',
    'MEDIA'    => 'Media',
];

Customize layout (CSS)

Setting Line Value
Total width (column layout) ~230 width: 90%
Number of columns ~232 repeat(3, 1fr)
Equal column height ~234 align-items: stretch
Tiles per row (stacked) ~303 repeat(3, 1fr)

Compatibility

Runs on any web server with PHP — Apache, Nginx, Angie, shared hosting, Raspberry Pi, VPS. No minimum version, no extensions required.


Changelog

v1.1 — Dynamic

  • IP address and domain are automatically detected via PHP (gethostbyname, $_SERVER)
  • Both IPv4 and IPv6 are displayed
  • No more manual entry of server information required

v1.0 — Static

  • Initial release
  • IP address and domain entered manually in configuration
  • Light/Dark Mode
  • Two layouts: Columns and Stacked
  • TXT-based project management

License

MIT License — free to use, modify and distribute.


Note

This project was developed with the assistance of AI.

About

A lightweight, file-based server dashboard in a single PHP file. No database, no framework, no setup.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages