Skip to content

Akshad135/ghostbin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ghostbin

A fast, self-hosted, private-first ghostbin with syntax highlighting, file attachments, and End-to-End Encryption (E2EE), powered by Rust and React.

Features

  • Backend powered by Rust and SQLite
  • Syntax highlighting for 50+ languages via Shiki
  • File attachments with configurable size limits
  • End-to-End Encryption (E2EE) derived from your auth passphrase
  • Single-user authentication (no accounts needed)
  • PWA support for mobile and desktop installation
  • Pin important pastes to the top
  • 8 Character Code based sharing
  • Zero tracking (no analytics, no tracking cookies)

Screenshots

Tokyo Night Dark

Tokyo Night (Dark)

Catppuccin Light

Catppuccin Latte (Light)

View All 18 Themes

Themes ported from herdr.

Dark Themes

Light Themes

Getting Started (Docker)

You can run ghostbin by pulling the pre-built Docker image or by building it yourself.

Using Pre-built Image

docker run -d \
  -p 8788:8788 \
  -v ghostbin-data:/app/data \
  -e AUTH_KEY="your_secure_passphrase" \
  akshad135/ghostbin

Build from Source

  1. Clone the repository:

    git clone https://github.com/Akshad135/ghostbin.git
    cd ghostbin
  2. Start the services via Docker Compose:

    # Make sure to set a secure AUTH_KEY. This protects login and derives the encryption key.
    AUTH_KEY="your_secure_passphrase" docker-compose up -d
  3. Open http://localhost:8788 in your browser.

Note: You can also define AUTH_KEY, MAX_TEXT_SIZE, and MAX_FILE_SIZE in an .env file in the root directory.

Local Build

If you want to run the project natively you will need Node.js and Rust.

Prerequisites

  • Node.js & npm
  • Rust (cargo)

Setup

# 1. Install frontend dependencies
npm install

# 2. Start the Rust backend (runs on :8788 by default)
# Make sure to set the AUTH_KEY environment variable.
AUTH_KEY="your_secure_passphrase" npm run dev:backend

# 3. Start the Vite frontend in a new terminal
npm run dev

Visit http://localhost:5173 to see the frontend. API requests are automatically proxied to the backend.

Configuration

Branding is configured in config.yaml (committed to the repo). Edit it to customize your instance (app name, description, icons, etc).

For backend limits, you can adjust environment variables:

  • MAX_TEXT_SIZE: Max size in bytes for a text paste (Default: 512 KB).
  • MAX_FILE_SIZE: Max size in bytes for a single file attachment (Default: 50 MB).

Icons: Drop your own images into public/ and update config.yaml. The bundled ghost icon is used by default and adapts its color to the active theme.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks