ScriptShare - Bash Script Library

A modern, community-driven platform for discovering, sharing, and collaborating on bash scripts for system administration, automation, and development.

Features

  • 🚀 Browse & Search: Find scripts by category, OS compatibility, and other filters
  • 📝 Submit Scripts: Share your scripts with the community
  • 🔍 Advanced Filtering: Filter by OS, categories, date added, and more
  • 👥 User Profiles: Manage your scripts and track contributions
  • 🛡️ Community Review: All scripts are reviewed for quality and security
  • 📊 Analytics: Track script views, downloads, and popularity
  • 💬 Comments & Ratings: Community feedback and discussion
  • 🎨 Modern UI: Beautiful, responsive design with dark/light themes
  • 🔐 Authentication: Secure user accounts and profiles

Tech Stack

  • Frontend: React 18 + TypeScript + Vite
  • Styling: Tailwind CSS + shadcn/ui components
  • Database: MySQL (Digital Ocean Managed Database)
  • ORM: Drizzle ORM
  • State Management: React Query + React Context
  • Routing: React Router DOM
  • Forms: React Hook Form + Zod validation

Getting Started

  1. Install dependencies:

    npm install
    
  2. Set up environment variables:

    cp .env.example .env.local
    # Edit .env.local with your database credentials
    
  3. Set up the database:

    npm run db:generate
    npm run db:migrate
    
  4. Start development server:

    npm run dev
    
  5. Open your browser: Navigate to http://localhost:5173

Database Setup

This app uses a MySQL database hosted on Digital Ocean. You'll need to:

  1. Create a managed MySQL database on Digital Ocean
  2. Get your connection credentials
  3. Update the .env.local file with your database details

Superuser Admin Setup

ScriptShare includes a comprehensive admin system with superuser capabilities:

Creating Your First Superuser

You have two options for creating your first superuser:

npm run create-default-superuser

This creates a default superuser with these credentials:

⚠️ Important: Change the password immediately after first login!

Option 2: Interactive Setup

npm run create-superuser

This prompts you to enter custom details for your admin account.

  1. Both scripts will output your superuser credentials and save them to JSON files

Admin Panel Features

  • Dashboard: Overview of platform statistics and recent activity
  • User Management: Create and manage admin users and moderators
  • Content Moderation: Review and approve submitted scripts
  • System Monitoring: Track platform health and performance
  • Analytics: View usage statistics and trends

Permission Levels

  • Super User: Full system access including user management and system configuration
  • Admin User: Content moderation and user management capabilities
  • Moderator: Basic content review and approval permissions

Accessing the Admin Panel

  1. Log in with your superuser account
  2. Navigate to /admin or click "Super Admin" in the user menu
  3. Use the dashboard to manage the platform

Note: Only users with admin privileges can access the admin panel.

Script Submission Process

  1. Users submit scripts through the /submit page
  2. Scripts are reviewed by community moderators
  3. Approved scripts appear in the public library
  4. Users can rate, comment, and download approved scripts

Contributing

We welcome contributions! Please see our contributing guidelines for more details.

License

This project is licensed under the MIT License.

Description
No description provided
Readme 311 KiB
Languages
TypeScript 86.1%
JavaScript 7.7%
Dockerfile 2.1%
HTML 1.9%
PowerShell 1.2%
Other 1%