A code snippet storage solution written in React & node.js
Find a file
2025-11-22 22:07:51 +00:00
.github Updated check for the PR source being internal 2024-11-25 18:37:10 +00:00
client [feat] added verilog and systemverilog as supported languages 2025-11-22 21:50:57 +00:00
helm-charts/bytestash default to recreate 2025-10-21 09:14:43 +01:00
media Changed logo colour to work better with both light and dark themes 2024-11-26 22:51:37 +00:00
server [feat] added pagination to api snippet routes 2025-11-22 22:07:51 +00:00
.gitignore Added API keys and snippet pushing endpoint 2024-12-10 18:47:43 +00:00
docker-compose.yaml [feat] added allowed hosts environment variable 2025-10-09 21:23:41 +01:00
Dockerfile Add Swagger documentation 2025-06-06 09:52:08 +01:00
LICENSE Update LICENSE 2024-11-17 16:51:03 +00:00
package-lock.json [feat] added allowed hosts environment variable 2025-10-09 21:23:41 +01:00
package.json chore: Upgrade packages 2025-06-09 09:37:28 +01:00
README.md [chore] updated readme 2025-10-09 22:44:30 +01:00

ByteStash

ByteStash is a self-hosted web application designed to store, organise, and manage your code snippets efficiently. With support for creating, editing, and filtering snippets, ByteStash helps you keep track of your code in one secure place.

ByteStash App

Demo

Check out the ByteStash demo powered by PikaPods!
Username: demo
Password: demodemo

Features

  • Create and Edit Snippets: Easily add new code snippets or update existing ones with an intuitive interface.
  • Filter by Language and Content: Quickly find the right snippet by filtering based on programming language or keywords in the content.
  • Secure Storage: All snippets are securely stored in a sqlite database, ensuring your code remains safe and accessible only to you.

Howto

Unraid

ByteStash is now on the Unraid App Store! Install it from there.

PikaPods

Also available on PikaPods for 1-click install from $1/month.

Docker

ByteStash can also be hosted manually via the docker-compose file:

services:
  bytestash:
    image: "ghcr.io/jordan-dalby/bytestash:latest"
    restart: always
    volumes:
      - /your/snippet/path:/data/snippets
    ports:
      - "5000:5000"
    environment:
      # See https://github.com/jordan-dalby/ByteStash/wiki/FAQ#environment-variables
      #ALLOWED_HOSTS: localhost,my.domain.com,my.domain.net
      BASE_PATH: ""
      JWT_SECRET: your-secret
      TOKEN_EXPIRY: 24h
      ALLOW_NEW_ACCOUNTS: "true"
      DEBUG: "true"
      DISABLE_ACCOUNTS: "false"
      DISABLE_INTERNAL_ACCOUNTS: "false"

      # See https://github.com/jordan-dalby/ByteStash/wiki/Single-Sign%E2%80%90on-Setup for more info
      OIDC_ENABLED: "false"
      OIDC_DISPLAY_NAME: ""
      OIDC_ISSUER_URL: ""
      OIDC_CLIENT_ID: ""
      OIDC_CLIENT_SECRET: ""
      OIDC_SCOPES: ""

Tech Stack

  • Frontend: React, Tailwind CSS
  • Backend: Node.js, Express
  • Containerisation: Docker

API Documentation

Once the server is running you can explore the API via Swagger UI. Open /api-docs in your browser to view the documentation for all endpoints.

Contributing

Contributions are welcome! Please submit a pull request or open an issue for any improvements or bug fixes.