English | 中文
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.
- 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
- 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
- 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
- 📱 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)
- Next.js 15 - React Framework
- React 19 - UI Library
- Prisma - Database ORM
- TailwindCSS - CSS Framework
- TypeScript - Type System
- MinIO - Object Storage (Optional)
- PM2 - Process Manager
- SwiftUI - iOS UI Framework
- Docker - Containerization
- Clone the repository:
git clone https://github.com/FaiChou/IntraPaste.git
cd IntraPaste
- Configure environment variables:
cp .env.example .env
- 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
- 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
- Access the service:
- Web UI: http://localhost:3210
- MinIO Console (if running locally): http://192.168.2.100:9001
- Admin Management: http://localhost:3210/admin (default password: admin)
⚠️ For security reasons, please change the default password immediately after first login.
- Node.js 18+
- SQLite
- MinIO Server (Optional, for image sharing)
- Xcode 15+ (for iOS development)
- Install dependencies
npm install
- Configure environment variables
cp .env.example .env
# Edit .env with your settings
- Initialize database
npx prisma generate
npx prisma migrate deploy
- Build and start with PM2
npm run build
pm2 start ecosystem.config.js
- Install MinIO Server
# Using Docker
docker run -p 9000:9000 -p 9002:9001 minio/minio server /data --console-address ":9001"
- Bucket Creation
The system will automatically create a bucket named intrapaste
and set appropriate access policies.
- Open iOS project
cd ios/IntraPaste
open IntraPaste.xcodeproj
- Build and run
- Select your target device/simulator
- Press Cmd+R or click the Run button
- The app requires iOS 17.0 or later
app/page.tsx
- Main pagecomponents/
- React componentslib/
- Utility functionsprisma/
- Database modelsios/
- iOS native appViews/
- SwiftUI viewsServices/
- API and server managementModels/
- Data models
- 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