summit is an "all-in-one" server management web UI for *nix systems designed to be portable and (somewhat) minimal while still being useful.
Currently, summit is not ready for production. Many, many things are missing, and there are likely lots of bugs and security issues I haven't fixed yet.
And yes, I'm aware that the code is awful.
- All of summit is distributed as one file
- Portable (Tested with Debian, Alpine, and FreeBSD so far)
- Simple, understandable user experience (I also hope)
- As of July 29th, 2025, the entire final executable is ~3.0 MB
- PAM-based login system
- xterm.js-based terminal
- HTTP/2 & HTTPS
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
.
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
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
pkg install go gmake binutils libarchive git openssl minify gsed \
&& git clone https://github.com/winksplorer/summit \
&& cd summit \
&& gmake all install PREFIX=/usr/local LD=ld.gold SED=gsed \
&& mkdir -p /etc/ssl/private
The backend server code. It serves the frontend, and provides a simple API using WebSockets + MessagePack. Written in Go.
The frontend web UI code. Written in HTML, vanilla CSS, and vanilla JS. I'm sorry.
The self-extracting archive code so that the entire server is distributed as one file. Written in C.
- 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
- Get rid of the dumb awful edition system
- 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
- Use
- Simplify CSS
- We need code comments 😭
- SEA
- Backend
- Frontend
- Settings
- Settings page
- Backend settings system
- Frontend settings system
- Default config
- Work on frontend design
- Hamburger menu navbar
- Complete redesign
- Logging
- Backend
- Application-specific logs?
- Init system logs
- Kernel logs
- Logging page
- Backend
- Storage page
- Networking page
- Containers
- Backend
- Podman support
- Docker support
- Container page
- Backend
- Services
- Backend
- OpenRC support
- systemd support
- other init systems
- Services page
- Backend
- Updates
- Backend
- apt support
- apk support
- pkg support
- other package managers
- Updates page
- Backend
- Installer shell script
- Translations