A Complete Self-Hostable JSFiddle Alternative
Go to file
2025-01-22 19:14:51 +00:00
config init 2025-01-17 15:05:21 -05:00
db init 2025-01-17 15:05:21 -05:00
middleware feat: add Eurda console feature with pause/play execution and improve UX 2025-01-18 15:34:54 -05:00
public new icons 2025-01-18 17:55:16 -05:00
routes feat: add Eurda console feature with pause/play execution and improve UX 2025-01-18 15:34:54 -05:00
services init 2025-01-17 15:05:21 -05:00
utils init 2025-01-17 15:05:21 -05:00
.env.example init 2025-01-17 15:06:10 -05:00
.gitignore chore: added .db in gitignore 2025-01-17 15:17:33 -05:00
addUser.js init 2025-01-17 15:05:21 -05:00
LICENSE chore: darkmode fix 2025-01-18 17:09:34 -05:00
package.json init 2025-01-17 15:05:21 -05:00
pnpm-lock.yaml init 2025-01-17 15:05:21 -05:00
README.md Update README.md 2025-01-22 19:14:51 +00:00
server.js chore: darkmode fix 2025-01-18 17:09:34 -05:00

BinCode - A Complete Self-Hostable JSFiddle Alternative

Overview

BinCode is a minimalist platform for managing and sharing code snippets, built with Vue.js and SQLite. It runs entirely on your own infrastructure, giving you full control over your data and workflow.

BinCode Demo

Key Features

  • Self-Contained: No external dependencies required.
  • Modern Stack: Vue.js frontend and SQLite database.
  • JWT Authentication: Secure, simple user management.
  • Instant Sharing: Generate unique URLs for snippets.
  • Minimal Setup: Create users manually to start sharing.
  • Performance-Focused: Lightweight and fast.

Architecture

  • Frontend: Vue.js
  • Database: SQLite
  • Authentication: JWT
  • Deployment: Single self-contained server.

There is no signups its by design just create users manullay and they can start commits snippets to share

Why BinCode?

BinCode is a lightweight, self-hostable tool for teams and individuals needing a simple, reliable solution for code sharing without relying on external services.

Design Choices

  • No Signups: Admins manually create user accounts for simplicity and security.
  • Self-Hosted: Ensures privacy and control over your data.

Contributing

Contributions are welcome, as long as the tool remains lightweight and self-contained.

Getting Started

1. Clone and Install Dependencies

git clone https://git.sheetjs.com/asadbek064/BinCode.git
cd BinCode
pnpm install

2. Set Up Environment Variables

Create a .env file in the project root and define the following variables:

NODE_ENV=development
PORT=3000
JWT_SECRET=your-secure-secret-here
JWT_EXPIRES_IN=7d

3. Adding user

node addUser.js "user@email.com" "password"

4. Development server

Before starting the development server, ensure you change the Vue.js library import from _prod to _dev in index.html.

pnpm dev

5. Production

Copy .env.example to .env and generate unique secret and cahnge NODE_ENV=production

  1. Copy .env.example to .env:
cp .env.example .env
  1. Generate a unique secret and set NODE_ENV=production in the .env file.

  2. Start the production server

pnpm start

5. Production

  • For development, using the _dev version of Vue.js (vue.global.js) is recommended as it includes debugging tools and warnings.

  • For production, switch to the _prod version (vue.global.prod.js) to optimize performance.