High-performance self-hosted personal dashboard. Single binary, premium UI, native grid engine in pure JavaScript.
  • TypeScript 62.1%
  • Go 19.4%
  • CSS 13.7%
  • HTML 2.8%
  • Shell 1.5%
  • Other 0.5%
Find a file
k4wit0 9ca75a687a
Some checks are pending
CI / Go Build & Test (push) Waiting to run
CI / Frontend Tests (push) Waiting to run
Tests / Run Tests (push) Waiting to run
Tests / Run Benchmarks (push) Waiting to run
Tests / Security Scan (push) Waiting to run
chore(release): cleanup release notes
2026-04-08 00:07:33 +01:00
.github chore: retain last 10 stable releases in cleanup workflow 2026-04-03 00:42:19 +01:00
cmd/lastboard feat: minor updates 2026-04-02 19:04:19 +01:00
docs refactor: rename isSuperAdmin to isFirstAdmin and update docs 2026-04-07 17:33:23 +01:00
internal feat: minor updates 2026-04-08 00:07:31 +01:00
scripts feat: Multi-Dashboard, Reactive Pings, Localization (20 locales), and Layout Fixes 2026-03-31 23:25:39 +01:00
web feat: minor updates 2026-04-08 00:07:31 +01:00
.air.toml chore: rename cmd/dashboard to cmd/lastboard and update references 2026-03-05 20:48:07 +00:00
.dockerignore feat(docker): professionalize distribution (multi-stage build, ghcr workflow, fixed port) 2026-02-13 02:29:33 +00:00
.gitignore refactor: rename isSuperAdmin to isFirstAdmin and update docs 2026-04-07 17:33:23 +01:00
bun.lock chore(release): bump to v1.2.0-Beta.02 (padded system) 2026-02-11 06:51:50 +00:00
CHANGELOG.md chore(release): bump to v1.4.1 2026-03-19 16:05:30 +00:00
CONTRIBUTING.md chore: rename cmd/dashboard to cmd/lastboard and update references 2026-03-05 20:48:07 +00:00
docker-compose.yml Docker widget implementation, UI unification, and multi-language localization fixes 2026-03-05 20:38:00 +00:00
Dockerfile chore: align Go version to 1.26.1 across all workflows and Dockerfile 2026-03-25 09:21:13 +00:00
go.mod refactor(db): simplify schema initialization with CREATE TABLE IF NOT EXISTS 2026-03-25 09:12:01 +00:00
go.sum refactor: Fixed Coordinate Fluid Grid & Layout Cleanup 2026-02-06 04:34:39 +00:00
install.sh docs: add TRUST_PROXY support and update security notes 2026-03-02 18:40:22 +00:00
LICENSE feat: adopt Apache 2.0 license with proper attribution 2026-02-02 20:43:06 +00:00
Makefile fix: handle LastInsertId errors, log rate-limit failures, cleanup stale refs 2026-04-07 17:55:38 +01:00
NOTICE chore: complete project rename to Lastboard 2026-02-08 00:00:00 +00:00
package.json feat: minor updates 2026-04-08 00:07:31 +01:00
README.md refactor: rename isSuperAdmin to isFirstAdmin and update docs 2026-04-07 17:33:23 +01:00
SECURITY.md Update SECURITY.md 2026-02-19 11:43:05 +00:00
tsconfig.json chore: remove deprecated downlevelIteration from tsconfig 2026-04-07 17:59:14 +01:00


Lastboard

Lastboard

The personal dashboard you actually want to open every day.

     


Lastboard Dashboard





📖 Read the Official Documentation for detailed guides on installation, configuration, security, and widget usage.


Why Lastboard

Most self-hosted dashboards are either too heavy, too ugly, or too complex to maintain. Lastboard was built with a simple rule: nothing ships unless it's fast and looks good doing it.

  • Built-in drag & drop grid — written from scratch in native JS. No framework overhead, silky smooth on any device.
  • Real dark/light mode — dedicated color token sets per theme, not just a CSS filter.
  • Go backend — small memory footprint, concurrent by default. Runs fine on a Raspberry Pi.
  • Peace of mind — Backup and restore directly from the website.
  • Single SQLite file — your entire dashboard state in one portable file. Backup = cp lastboard.db.
  • Guided setup wizard — first run walks you through everything. Zero config files to touch.
  • Multi-dashboard system — create and switch between multiple independent dashboards, each with its own layout and widgets.
  • Multi-user support — per-user preferences and password management.
  • Personalized backgrounds — Set a custom image for your dashboard, optimized and saved per user.
  • Global unit system — Choose between Metric and Imperial units globally for all widgets.
  • Global readiness — Fully translated into 20 languages.
  • Real-time telemetry — server stats (CPU, RAM, disk) streamed over WebSocket.

Security & Widgets

Security

Lastboard is built from the ground up with defense-in-depth principles, including strict CSP headers, CSRF protection, secure session tokens, and aggressive rate limiting.

For a detailed breakdown of our security measures, please refer to our Security Overview.

Widgets (6)

Widget Description
Clock Analog/digital clock with configurable timezone and seconds display
Notepad Persistent per-user text notepad
Telemetry Real-time server metrics (CPU, RAM, disk) via WebSocket
Weather Current conditions and forecast via Open-Meteo
Markdown Freeform Markdown renderer for notes and links
Docker Live monitoring and lifecycle management (Start/Stop/Restart) of your containers

Installation Methods

The easiest way to get started is using Docker. Images are automatically built and published to GHCR.

Using Docker Compose:

services:
  lastboard:
    image: ghcr.io/codigosh/lastboard:latest
    container_name: lastboard
    ports:
      - "8080:8080"
    environment:
      - TZ=America/New_York
      # - TRUST_PROXY=true   # Uncomment if running behind a reverse proxy
    volumes:
      - ./data:/var/lib/lastboard
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Using Docker CLI:

# Note: Add `-e TRUST_PROXY=true \` before the image name if running behind a reverse proxy.
docker run -d \
  --name lastboard \
  -p 8080:8080 \
  -e TZ=America/New_York \
  -v $(pwd)/data:/var/lib/lastboard \
  --restart unless-stopped \
  ghcr.io/codigosh/lastboard:latest

For advanced configuration options, environment variables, and data backups, please refer to the Configuration Guide.


Quick Install (Linux)

Run this command to install or update Lastboard automatically:

curl -fsSL https://raw.githubusercontent.com/CodigoSH/Lastboard/main/install.sh | sudo bash

For more details on manual installations or building from source, check our Development Guide.


Updates

Lastboard updates are handled securely via a dedicated proxy to guarantee performance and protect our infrastructure.

For detailed updating instructions, visit the Updates Guide, or see our Security Policy for info about our proxy infrastructure.


Support & Recognition

We are an open-source initiative managed through Open Collective Europe.

Financial Support

If you find our tools useful, consider supporting our infrastructure through an unconditional donation.

Acknowledgments

Special thanks to everyone supporting our mission.

Organizations

We appreciate the organizations that support us as a gesture of goodwill to help maintain our infrastructure.


Credits


A project by CodigoSH — built to last.