snipo

module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2026 License: AGPL-3.0

README

Snipo

A lightweight, self-hosted snippet manager designed for single-user deployments.

Note: This project is intentionally scoped for single-user use. Multi-user features are not planned.

CI CI Release Go Version GitHub release

Snipo Demo

Features

  • Fast & Lightweight: Built with Go and pure SQLite.
  • Powerful Search: Fuzzy search across titles, descriptions, and file content.
  • Organization: Organize snippets with folders and tags.
  • Public Sharing: Share snippets publicly with granular file-level access.
  • Version History: Automatic tracking of all changes with restore capabilities.
  • Trash & Recovery: Soft delete mechanism with restore capabilities.
  • GitHub Gist Sync: Two-way synchronization with GitHub Gists for backup.
  • Developer Friendly: RESTful API with tokens and granular permissions.
  • Docker Ready: Easy deployment with Docker and standard or hardened images.
  • Customizable: Extensive theming support via custom CSS.
  • RTL Support: Support for RTL languages with intelligent mixed-content handling.

Client Integrations

The Snipo RESTful API enables extensive client integration. As an example, the repository includes a ready-to-use Terminal User Interface (TUI) client:

  • Snippy: A rich TUI client showcasing a seamless, keyboard-driven integration with a running Snipo server.

Quick Start

# Create environment file
cat > .env << EOF
SNIPO_MASTER_PASSWORD=your-secure-password
SNIPO_SESSION_SECRET=$(openssl rand -hex 32)
SNIPO_ENCRYPTION_SALT=$(openssl rand -base64 32)
EOF

# Run with Docker Compose
docker compose up -d

Or using Docker directly:

docker run -d \
  -p 8080:8080 \
  -v snipo-data:/data \
  -e SNIPO_MASTER_PASSWORD=your-secure-password \
  -e SNIPO_SESSION_SECRET=$(openssl rand -hex 32) \
  -e SNIPO_ENCRYPTION_SALT=$(openssl rand -base64 32) \
  --name snipo \
  ghcr.io/mohamedelashri/snipo:latest

Access at http://localhost:8080

Binary
# Download latest release
curl -LO https://github.com/MohamedElashri/snipo/releases/latest/download/snipo_linux_amd64.tar.gz
tar xzf snipo_linux_amd64.tar.gz

# Configure and run
export SNIPO_MASTER_PASSWORD="your-secure-password"
export SNIPO_SESSION_SECRET=$(openssl rand -hex 32)
export SNIPO_ENCRYPTION_SALT=$(openssl rand -base64 32)
./snipo serve

Documentation

  • Deployment & Configuration: Installation, environment variables, reverse proxy setup, and database/API configuration.
  • Features Guide: In-depth guide to Search, Public Snippets, Gist Sync, API, and Arabic/RTL support.
  • Security: Security model, authentication modes, and best practices.
  • Customization: Theming, custom CSS, and RTL customization guide.
  • Development: Build instructions and contribution guidelines.
  • API Spec: OpenAPI specification.

License

This project is licensed under the AGPLv3. Use at your own risk.

Directories

Path Synopsis
cmd
server command
internal
api
testutil
Package testutil provides testing utilities for the snipo application.
Package testutil provides testing utilities for the snipo application.
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL