Skip to content

winksplorer/summit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

summit

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

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

Important

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

Features

  • All of summit is distributed as one file
  • As of July 29th, 2025, the entire final executable is ~3.0 MB
  • Portability (Tested with Debian, Alpine, and FreeBSD 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 clang binutils libarchive-dev linux-pam-dev git openssl minify xz \
    && git clone https://github.com/winksplorer/summit \
    && cd summit \
    && make all install

Debian

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

FreeBSD

pkg install go gmake binutils libarchive git openssl minify gsed \
    && git clone https://github.com/winksplorer/summit \
    && cd summit \
    && gmake all install LD=ld.gold SED=gsed \
    && mkdir -p /etc/ssl/private

Code structure

backend

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.

sea.c

The self-extracting archive code so that the entire server is distributed as one file. Written in C.

TODO

  • SEA
  • HTTP/2
  • TLS
  • Login
    • PAM
    • Login page
    • Cookies
    • Admin system
    • Slight refactoring (use my other login impl instead)
  • Stats
    • Basic numerical stats
    • Implement Odometer
    • Make stat values persist across pages
  • WebSocket terminal
    • Switch to xterm.js
    • Firefox compatibility
    • Fix the fucking thing
    • Fix doas
  • UI Notifications
  • Implement templates
  • Use a WebSocket connection instead of HTTP endpoints
    • Proof of concept (Stats test)
    • Fully switch to WebSockets
  • Simplify entire frontend
    • Simplify HTML using templates
    • Simplify JS
      • Use window._
      • Bundling
      • Minification
    • Simplify CSS
  • 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
    • User choosable accent color
    • Sync with system dark/light theme
  • Global config
  • 404 page
  • Logging
    • Backend
      • Application-specific logs?
      • Init system logs
      • Kernel logs
    • Logging page
  • Storage page
  • Networking page
  • Containers
    • Backend
      • Podman support
      • Docker support
    • Container page
  • Services
    • Backend
      • OpenRC support
      • systemd support
      • other init systems
    • Services page
  • Updates
    • Backend
      • apt support
      • apk support
      • pkg support
      • other package managers
    • Updates page
  • Service files
  • Installer shell script

About

A self-contained Linux/BSD server management web UI that fits in 3MB

Resources

License

Stars

Watchers

Forks

Releases

No releases published