Skip to content

prescott2m/summit

Repository files navigation

summit

GitHub Actions Workflow Status GitHub code size in bytes x64 glibc compiled size

summit is a portable and self-contained Linux server management web dashboard that fits in 10MB.

Important

A lot of features (storage, networking, containers, updates, etc.) are missing currently.

Features

  • All of summit is distributed as one small file
  • Portability across init systems and libcs (Tested with Debian and Alpine so far)
  • Fast page loads
  • PAM-based login system
  • xterm.js-based terminal
  • HTTP/2 & HTTPS

Screenshots

Building

All of these commands assume you're running as root. summit will likely build & run on other systems, but I have not tested.

The final compiled output is simply ./summit. By default, summit installs to /usr/local/bin.

Alpine

Note

Make sure you have the community repo enabled

apk add go make linux-pam-dev git openssl minify \
    && git clone https://github.com/prescott2m/summit \
    && cd summit \
    && make all install

Debian

apt install golang-go make libpam0g-dev git openssl minify \
    && git clone https://github.com/prescott2m/summit \
    && cd summit \
    && make all install

Code structure

*.go

The backend server code. It serves the frontend, and provides a simple API using WebSockets + MessagePack. Written in Go.

frontend

The frontend web UI code. Written in HTML, vanilla CSS, and vanilla JS.

TODO

  • HTTP/2
  • TLS
  • Login
    • PAM
    • Login page
    • Cookies
    • Admin system
  • Stats
    • Basic numerical stats
    • Implement Odometer
    • Make stat values persist across pages
  • WebSocket terminal
    • Switch to xterm.js
    • Firefox compatibility
    • Fix doas
  • UI Notifications
  • Implement templates
  • WebSocket + MessagePack API
  • Settings
    • Settings page
    • Backend settings system
    • Frontend settings system
    • Default config
  • Complete frontend redesign
    • Independent pages
      • Login prototype
      • Responsiveness
      • Admin page
      • Cleanup
    • Main UI
      • Colors
      • Sidebar
      • Main page content
    • Messages
    • Input elements
    • Light mode
    • Sync with system dark/light theme
  • Global config
  • 404 page
  • Go embedding
  • Extend session + connection length on activity
  • Storage
    • Backend
      • ID/name
      • Readonly
      • Size
      • Model/serial
      • Partitions
      • FS type
      • Mountpoint
      • Basic SMART data (Temperature, power cycles, power on hours, etc.)
      • Advanced SMART data (Reallocated_Sector_Ct, Percent_Lifetime_Remain, etc.)
      • Formatting
      • Partitioning
    • Storage page
    • Handle unpartitioned disks
  • Networking
    • Backend
      • Name
      • MAC address
      • Virtual
      • Speed
      • Duplex
      • IPs
      • Usage meter
    • Networking page
  • Services
    • Backend
      • OpenRC support
      • systemd support
      • other init systems
    • Services page
  • Updates
    • Backend
      • apt support
      • apk support
      • other package managers
    • Updates page
  • Service files
  • Installer shell script
  • Containers
    • Backend
      • Podman support
      • Docker support
    • Container page
  • Logging
    • Backend
      • Application-specific logs?
      • Init system logs
      • Kernel logs
    • Logging page

About

A portable and self-contained Linux server management web UI

Resources

License

Stars

Watchers

Forks

Releases

No releases published