embedder/README.md
waveringana ad0aa6365e
Some checks failed
Docker / build (push) Has been cancelled
1.14.1
2025-05-14 17:54:55 -04:00

3.1 KiB

Embedder 🖼️

A media host specialized in producing visually appealing embeds for services like Discord. Enjoy limitless file sizes and no compression.

Embedder Demo

🚀 Upcoming Features

  • 📊 MariaDB/SQL support (currently uses SQLite)
  • 🔗 Redundancy & Sync: Enhance reliability and enable synchronization across nodes.

🌐 Potential Features

  • 🛰️ IPFS Integration

🔧 How to Run

Using Source

$ export EBPASS=changeme
$ export EBPORT=3000
$ export EBAPI_KEY=changeme # For ShareX support
$ export EB_PROCESS_VIDEO=true # Enable video processing

$ npm install
$ npm start

Note: Default username is admin with the password being whatever EBPASS is set to.

ShareX Support

Enabled at /upload. Requires authentication with key. expire key specifies duration in days.

{
  "Version": "14.1.0",
  "Name": "embedder",
  "DestinationType": "ImageUploader, FileUploader",
  "RequestMethod": "POST",
  "RequestURL": "http://localhost:3000/sharex",
  "Headers": {
    "key": "changeme"
  },
  "Body": "MultipartFormData",
  "Arguments": {
    "fileupload": null,
    "expire": null
  },
  "FileFormName": "fileupload",
  "URL": null,
  "ThumbnailURL": null,
  "DeletionURL": null,
  "ErrorMessage": null
}

Configuration

This project uses environmental variables for configuration:

Variable Description Default
EBPASS Password for the admin account required
EBAPI_KEY Key for API uploading (ShareX) required
EBPORT Port the server runs on required
EB_PROCESS_VIDEO Enable video processing/optimization true
EB_ENCODER Video encoder to use (CPU, NVENC, QSV, etc.) CPU
EB_FFMPEG_PATH Path to ffmpeg binary auto-detected or bundled
EB_FFPROBE_PATH Path to ffprobe binary auto-detected or bundled
EB_RANDOMIZE_NAMES Randomize uploaded file names false

Video Processing

When EB_PROCESS_VIDEO is enabled (which is the default), Embedder will:

  1. Process uploaded videos to create optimized 720p versions
  2. Show "Copy as GIFv" links for video files
  3. Display a processing spinner while videos are being optimized

If disabled by setting EB_PROCESS_VIDEO=false, videos will be served directly without processing, which can be useful on systems with limited resources.

Using Docker

docker run -d -p "3000:3000" \
  -e EBPORT=3000 \
  -e EBPASS=changeme \
  -e EBAPI_KEY=changeme \
  -e EB_PROCESS_VIDEO=true \
  ghcr.io/waveringana/embedder:1.14.1

Docker Compose

services:
  embedder:
    ports:
      - "3000:3000"
    environment:
      - EBPORT=3000
      - EBPASS=changeme
      - EBAPI_KEY=changeme
      - EB_PROCESS_VIDEO=true
    volumes:
      - ./db:/var/db
      - ./uploads:/uploads
    image: ghcr.io/waveringana/embedder:1.14.1

📜 License

Distributed under The Unlicense.