2025-10-13 18:09:01 +02:00
2025-10-13 18:21:23 +02:00
2025-10-13 18:40:05 +02:00
2025-10-13 18:21:23 +02:00
2025-10-13 18:09:01 +02:00
2025-10-13 18:21:23 +02:00
2025-10-13 18:09:01 +02:00
2025-10-13 18:21:23 +02:00
2025-10-13 18:40:05 +02:00
2025-10-13 18:41:09 +02:00

// README.md

unknownBIN

unknownBIN is a secure and modern open-source Pastebin software written in Node.js. It is a fork of the original Hastebin, completely modernized for security, performance, and easy deployment via Docker.

unknownBIN Screenshot

Features

  • Modern & Clean Interface: A simple, classic design that focuses on the content.
  • Syntax Highlighting: Automatic language detection and highlighting for dozens of languages.
  • Security First:
    • Uses cryptographically-strong random generation for secure, unpredictable paste IDs.
    • Includes security headers via Helmet to protect against common web vulnerabilities.
    • Protects against path traversal attacks.
  • Docker-Ready: Deploy in seconds using the pre-built Docker image from GitHub Packages.
  • Automated CI/CD: Docker images are automatically built and published with GitHub Actions.
  • Core Functionality:
    • View raw paste content.
    • Duplicate and edit existing pastes easily.
    • Lightweight and fast.

The easiest and recommended way to deploy unknownBIN is by using the pre-built Docker image from the GitHub Container Registry (GHCR).

Prerequisites

  • Docker installed on your system.

Running the Container

  1. Pull the latest image:

    docker pull ghcr.io/mrunknownde/unknownbin:main
    
  2. Run the container: To ensure your pastes are saved even if the container is removed or updated, you must mount a volume for the data directory.

version: '3.9'
services:
    unknownbin:
        image: 'ghcr.io/mrunknownde/unknownbin:main'
        container_name: unknownbin
        volumes:
            - '/path/to/your/data:/usr/src/app/data'
        ports:
            - '8080:8080'
    docker run -d \
      -p 8080:8080 \
      -v /path/to/your/data:/usr/src/app/data \
      --name my-unknownbin \
      ghcr.io/mrunknownde/unknownbin:main

Explanation: * -d: Runs the container in the background (detached mode). * -p 8080:8080: Maps port 8080 on your host to port 8080 in the container. You can change the first number (e.g., -p 3000:8080) to use a different host port. * -v /path/to/your/data:/usr/src/app/data: (Important!) Mounts a directory from your host machine into the container to persist paste data. Replace /path/to/your/data with an actual path on your server (e.g., /opt/unknownbin/data). * --name my-unknownbin: Gives the container a memorable name.

Your unknownBIN instance is now running and accessible at http://localhost:8080.


🛠️ Manual Installation

If you prefer not to use Docker, you can install and run the application directly with Node.js.

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/MrUnknownDE/unknownbin.git
    cd unknownbin
    
  2. Install dependencies:

    npm install
    
  3. Build static assets: This step minifies the CSS and JavaScript files.

    npm run build
    
  4. Configure the application: Open config.json in a text editor and adjust the settings to your needs.

  5. Start the application:

    npm start
    

The application will be available at http://localhost:8080 (or as configured in config.json).


⚙️ Configuration

Configuration is managed via the config.json file in the root directory.

Key Description Default Value
host The host address the server binds to. "0.0.0.0"
port The port the server listens on. 8080
dataPath The directory where paste files are stored. "./data"
keyLength The length of the randomly generated paste keys. 10
maxLength The maximum number of characters allowed in a paste. 500000
createKey A secret key that must be prepended to a paste to allow its creation. "" (disabled)
documents A map of static documents to serve from files. {}

Example config.json

{
	"host": "0.0.0.0",
	"port": 8080,
	"dataPath": "./data",
	"keyLength": 10,
	"maxLength": 500000,
	"createKey": "",
	"documents": {
		"about": "./README.md"
	}
}

🔄 Updating

Docker Installation

  1. Pull the latest image: docker pull ghcr.io/mrunknownde/unknownbin:main
  2. Stop and remove the old container: docker stop my-unknownbin docker rm my-unknownbin
  3. Start a new container with the same docker run command you used initially (including the volume mount). Your data will be preserved. Manual Installation

Pull the latest changes: git pull Install/update dependencies and rebuild assets:

npm install
npm run build

Restart the application (e.g., using npm start or your process manager).

Description
No description provided
Readme 133 KiB
Languages
JavaScript 69.6%
CSS 9.1%
Dockerfile 6.3%
EJS 4.7%
Java 4.5%
Other 5.8%