Skip to content

NeonRook/uppity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Uppity

License: AGPL-3.0 Contributor Covenant

A self-hosted monitoring and status page application built with SvelteKit 2 and Svelte 5.

Features

  • Monitor Types: HTTP, TCP, and push-based health checks
  • Incident Management: Track and manage service incidents
  • Notifications: Multi-channel alerts via Email, Slack, Discord, and Webhooks
  • Public Status Pages: Customizable status pages for your customers
  • Multi-tenant: Organization-based authentication with team support
  • Admin Panel: Manage users and organizations

Tech Stack

Getting Started

Prerequisites

Quick Start

  1. Clone the repository

    git clone https://github.com/NeonRook/uppity.git
    cd uppity
  2. Install dependencies

    bun install
  3. Start PostgreSQL (using Docker)

    docker compose up -d
  4. Configure environment

    cp .env.example .env

    Edit .env and set at minimum:

    • DATABASE_URL - PostgreSQL connection string (default works with Docker)
    • BETTER_AUTH_SECRET - Generate with openssl rand -base64 32
  5. Push database schema

    bun run db:push
  6. Start the development server

    bun run dev

    Open http://localhost:5173 in your browser.

Development

Commands

# Start dev server
bun run dev

# Type checking
bun run check

# Linting (with auto-fix)
bun run lint

# Formatting (use pnpm for this command)
pnpm run fmt

# Run unit tests
bun run test:unit

# Run e2e tests
bun run test:e2e

# Database GUI
bun run db:studio

Project Structure

src/
├── lib/
│   ├── server/
│   │   ├── db/schema.ts        # Drizzle database schema
│   │   ├── services/           # Business logic layer
│   │   ├── notifications/      # Notification channel implementations
│   │   ├── jobs/scheduler.ts   # Background job scheduler
│   │   └── auth.ts             # Authentication configuration
│   ├── schemas/                # Validation schemas
│   └── components/ui/          # shadcn-svelte components
└── routes/
    ├── (app)/                  # Protected application routes
    │   ├── dashboard/          # Main dashboard
    │   ├── monitors/           # Monitor management
    │   ├── incidents/          # Incident tracking
    │   ├── notifications/      # Notification channels
    │   ├── status-pages/       # Status page configuration
    │   └── settings/           # User settings
    ├── (auth)/                 # Login and registration
    ├── (admin)/                # Admin panel
    ├── (public)/status/[slug]/ # Public status pages
    └── api/                    # API endpoints

Deployment

Docker

Build and run with Docker Compose:

# Set required environment variables
export BETTER_AUTH_SECRET=$(openssl rand -base64 32)
export BETTER_AUTH_URL=https://your-domain.com
export BETTER_AUTH_TRUSTED_ORIGINS=https://your-domain.com

# Start with production compose file
docker compose -f docker-compose.prod.yml up -d

Or build the image manually:

docker build \
  --build-arg VITE_BETTER_AUTH_URL=https://your-domain.com \
  -t uppity .

Environment Variables

See .env.example for all available configuration options.

Required:

  • DATABASE_URL - PostgreSQL connection string
  • BETTER_AUTH_SECRET - Auth secret key (min 32 characters)
  • BETTER_AUTH_URL - Public URL of your application

Optional:

  • SMTP_* - Email notification settings
  • UPPITY_DEFAULT_* - Monitor default configurations
  • UPPITY_CRON_* - Background job schedules

Contributing

We welcome contributions! Please see our Contributing Guide for details.

This project follows the Contributor Covenant Code of Conduct.

License

This project is licensed under the GNU Affero General Public License v3.0.

Commercial licensing is available for organizations that cannot use AGPL-licensed software. Contact us for details.

About

Simple uptime monitoring for solo builders. HTTP, TCP, and push-based health checks with status pages. Self-host or use hosted.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors