Skip to content

FaiChou/IntraPaste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 中文

IntraPaste

CI Status Docker Pulls License

📸 Preview

Home

Admin

Mobile

IntraPaste is a simple and efficient temporary content sharing service that supports text and image sharing. All content will be automatically cleaned up after a specified time to keep the system clean.

⚠️ Security Notice: It is recommended to deploy this service within an intranet environment rather than exposing it to the public internet. This helps prevent potential information leaks and malicious usage.

Why IntraPaste?

Comparison with Similar Solutions

vs. AirDrop

  • AirDrop is limited to Apple devices only
  • Requires both devices to have Bluetooth and WiFi enabled
  • Needs manual device discovery and acceptance
  • IntraPaste works across any platform with a web browser
  • No device pairing or discovery needed
  • Instant access through web interface

vs. LocalSend

  • LocalSend requires app installation on all devices
  • Needs device discovery process
  • IntraPaste works directly in browser - no app needed
  • Access content instantly via URL
  • Perfect for quick text sharing with one-click copy

Key Advantages

  • Universal Access: Works on any device with a web browser
  • No Installation: Zero setup for end users
  • Instant Sharing: Just paste and share URL
  • Text Optimized: One-click copy for text content
  • Intranet Focused: Secure sharing within your network
  • Cross-Platform: Share between any devices/OS
  • Simple Setup: Single deployment serves entire network

Features

  • 📱 iOS Client
    • Native iOS app with SwiftUI (Download)
    • Multiple server management
    • Dark mode support
    • Media preview & download
  • 🌍 Internationalization
    • Multiple language support
    • Available in: English, 简体中文, 繁體中文, 日本語, Français, 한국어, Deutsch
    • Easy language switching
  • 📝 Text Sharing
    • Multi-line text support
    • Click to copy
    • Shift + Enter for new line
  • 📸 Media Sharing (Optional)
    • Requires MinIO setup
    • Image preview & zoom
    • Video playback (mp4, webm, mov)
    • Audio playback (mp3, wav, ogg, etc.)
    • General file upload support
    • One-click download
  • 🎨 UI/UX
    • Light/Dark theme
    • Fully responsive design
    • Clean and intuitive interface
    • Upload progress indication
  • 👨‍💼 Admin Features
    • Admin dashboard
    • Content management
    • Password management
    • Upload settings
  • 🧹 System Features
    • Auto cleanup expired content
    • Optional file storage with MinIO
    • Rate limiting
    • System logging
    • File type validation
    • Upload size limits (1GB max)

Tech Stack

Deployment

Docker Deployment (Recommended)

  1. Clone the repository:
git clone https://github.com/FaiChou/IntraPaste.git
cd IntraPaste
  1. Configure environment variables:
cp .env.example .env
  1. MinIO Configuration (Optional):

If you want to enable image sharing, configure MinIO settings in your .env file:

MINIO_ENDPOINT=http://your-minio-server
MINIO_PORT=9000
MINIO_ROOT_USER=your-user
MINIO_ROOT_PASSWORD=your-password

If MinIO is not configured, the system will operate in text-only mode.

You can run MinIO locally using Docker:

docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  minio/minio server /data --console-address ":9001"

Then update your .env file:

MINIO_ENDPOINT=http://192.168.2.100
MINIO_PORT=9000
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
  1. Start the service:
chmod +x start.sh
./start.sh

The script will automatically:

  • Start the application container
  • Initialize the database and run migrations
  • Check and initialize MinIO if configured
  1. Access the service:

⚠️ For security reasons, please change the default password immediately after first login.

Manual Deployment

Requirements

  • Node.js 18+
  • SQLite
  • MinIO Server (Optional, for image sharing)
  • Xcode 15+ (for iOS development)

Backend Setup

  1. Install dependencies
npm install
  1. Configure environment variables
cp .env.example .env
# Edit .env with your settings
  1. Initialize database
npx prisma generate
npx prisma migrate deploy
  1. Build and start with PM2
npm run build
pm2 start ecosystem.config.js

MinIO Setup (Optional, without MinIO, only text sharing is enabled)

  1. Install MinIO Server
# Using Docker
docker run -p 9000:9000 -p 9002:9001 minio/minio server /data --console-address ":9001"
  1. Bucket Creation

The system will automatically create a bucket named intrapaste and set appropriate access policies.

iOS App Setup

  1. Open iOS project
cd ios/IntraPaste
open IntraPaste.xcodeproj
  1. Build and run
  • Select your target device/simulator
  • Press Cmd+R or click the Run button
  • The app requires iOS 17.0 or later

Development

  • app/page.tsx - Main page
  • components/ - React components
  • lib/ - Utility functions
  • prisma/ - Database models
  • ios/ - iOS native app
    • Views/ - SwiftUI views
    • Services/ - API and server management
    • Models/ - Data models

File Upload Limits

  • Maximum file size: 1GB
  • Supported video formats: mp4, webm, mov
  • Supported audio formats: mp3, wav, ogg, m4a, webm, aac
  • Rate limiting: Configurable upload limits per IP
  • File type validation for security

About

IntraPaste is a simple content sharing service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages