Uploaded code

This commit is contained in:
2025-09-27 17:45:52 +01:00
commit b73af5bf11
61 changed files with 10500 additions and 0 deletions

196
docs/README.md Normal file
View File

@@ -0,0 +1,196 @@
# Sharey
A simple file sharing and pastebin service using Backblaze B2 cloud storage.
## Features
- 📁 **File Sharing**: Upload files and get shareable links
- 📝 **Pastebin**: Share text snippets with syntax highlighting support
- ☁️ **Cloud Storage**: Files stored securely in Backblaze B2
- 🔗 **Short URLs**: Clean, easy-to-share links
- 🎨 **Clean UI**: Simple, responsive web interface
## Setup
### Prerequisites
- Python 3.7+
- Backblaze B2 account with:
- Application Key ID
- Application Key
- Bucket name
### Installation
1. **Clone the repository**
```bash
git clone <your-repo-url>
cd sharey
```
2. **Run the setup script**
```bash
python setup.py
```
This will automatically create a virtual environment and install dependencies.
3. **Configure B2 credentials**
Sharey supports two configuration methods:
**Option 1: JSON Configuration (Recommended)**
```bash
# Edit config.json with your credentials
nano config.json
```
**Option 2: Environment Variables**
```bash
# Edit .env file with your credentials
nano .env
```
**Interactive Configuration**
```bash
python config_util.py set
```
4. **Test B2 connection**
```bash
python test_b2.py
```
5. **Run the application**
```bash
# If using virtual environment (recommended)
source venv/bin/activate
python app.py
# Or directly
venv/bin/python app.py
```
The application will be available at `http://127.0.0.1:8866`
## Backblaze B2 Setup
1. **Create a Backblaze B2 account** at [backblaze.com](https://www.backblaze.com/b2/cloud-storage.html)
2. **Create an application key**:
- Go to [App Keys](https://secure.backblaze.com/app_keys.htm)
- Click "Add a New Application Key"
- Name it "Sharey" or similar
- Choose appropriate permissions (read/write access to your bucket)
- Save the Key ID and Application Key
3. **Create a bucket**:
- Go to [Buckets](https://secure.backblaze.com/b2_buckets.htm)
- Click "Create a Bucket"
- Choose "Public" if you want files to be publicly accessible
- Note the bucket name
4. **Configure bucket for public access** (if desired):
- Set bucket type to "Public"
- Configure CORS settings if needed for web access
## File Organization in B2
Files are organized in your B2 bucket as follows:
```
your-bucket/
├── files/
│ ├── abc123.jpg
│ ├── def456.pdf
│ └── ...
└── pastes/
├── ghi789.txt
├── jkl012.txt
└── ...
```
## Development
### Manual Installation
If you prefer not to use the setup script:
```bash
# Install dependencies
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env with your credentials
nano .env
# Test configuration
python test_b2.py
# Run the app
python app.py
```
## Configuration
Sharey uses a flexible configuration system that supports both JSON files and environment variables.
### Configuration Files
- `config.json` - Main configuration file (recommended)
- `.env` - Environment variables (fallback/legacy support)
### Configuration Management
**View current configuration:**
```bash
python config_util.py show
```
**Interactive setup:**
```bash
python config_util.py set
```
**Validate configuration:**
```bash
python config_util.py validate
```
**Reset to defaults:**
```bash
python config_util.py reset
```
### Configuration Options
```json
{
"b2": {
"application_key_id": "your_key_id_here",
"application_key": "your_application_key_here",
"bucket_name": "your_bucket_name_here"
},
"flask": {
"host": "127.0.0.1",
"port": 8866,
"debug": true
},
"upload": {
"max_file_size_mb": 100,
"allowed_extensions": [".jpg", ".jpeg", ".png", ".gif", ".pdf", ".txt", ".doc", ".docx", ".zip", ".mp4", ".mp3"]
},
"paste": {
"max_length": 1000000
},
"security": {
"rate_limit_enabled": false,
"max_uploads_per_hour": 50
}
}
```
## License
MIT License - see [LICENSE](LICENSE) file for details.