Updat.e
This commit is contained in:
parent
b23fd25337
commit
5a61910a93
18
README.md
18
README.md
@ -1,6 +1,6 @@
|
||||
# RBox
|
||||
# MyWebdav
|
||||
|
||||
RBox is a self-hosted cloud storage web application designed for secure, scalable file management and sharing. Built with modern web technologies, it provides a comprehensive solution for individuals and organizations seeking full control over their data storage.
|
||||
MyWebdav is a commercial cloud storage web application designed for secure, scalable file management and sharing. Built with modern web technologies, it provides a comprehensive solution for individuals and organizations seeking full control over their data storage.
|
||||
|
||||
## Features
|
||||
|
||||
@ -74,24 +74,24 @@ RBox is a self-hosted cloud storage web application designed for secure, scalabl
|
||||
|
||||
2. Set up the database:
|
||||
```bash
|
||||
createdb rbox
|
||||
createdb mywebdav
|
||||
```
|
||||
|
||||
3. Configure environment variables in `.env`
|
||||
|
||||
4. Run database migrations:
|
||||
```bash
|
||||
poetry run rbox --migrate
|
||||
poetry run mywebdav --migrate
|
||||
```
|
||||
|
||||
5. Start the application:
|
||||
```bash
|
||||
poetry run rbox --host 0.0.0.0 --port 8000
|
||||
poetry run mywebdav --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
RBox uses environment variables for configuration. Key settings include:
|
||||
MyWebdav uses environment variables for configuration. Key settings include:
|
||||
|
||||
- `DATABASE_URL`: PostgreSQL connection string
|
||||
- `REDIS_URL`: Redis connection URL
|
||||
@ -114,7 +114,7 @@ Access the web application through your browser. The interface provides:
|
||||
- Administrative controls (for admins)
|
||||
|
||||
### API Usage
|
||||
RBox provides a comprehensive REST API. Example requests:
|
||||
MyWebdav provides a comprehensive REST API. Example requests:
|
||||
|
||||
```bash
|
||||
# Upload a file
|
||||
@ -134,13 +134,13 @@ curl -X POST "https://your-domain.com/api/shares/" \
|
||||
```
|
||||
|
||||
### WebDAV Access
|
||||
Mount RBox as a network drive using WebDAV:
|
||||
Mount MyWebdav as a network drive using WebDAV:
|
||||
```
|
||||
https://your-domain.com/webdav/
|
||||
```
|
||||
|
||||
### SFTP Access
|
||||
Connect via SFTP using your RBox credentials on port 22.
|
||||
Connect via SFTP using your MyWebdav credentials on port 22.
|
||||
|
||||
## Deployment
|
||||
|
||||
|
||||
@ -107,7 +107,7 @@ class InvoiceGenerator:
|
||||
|
||||
stripe_invoice = await StripeClient.create_invoice(
|
||||
customer_id=subscription.stripe_customer_id,
|
||||
description=f"RBox Usage Invoice for {period_start.strftime('%B %Y')}",
|
||||
description=f"MyWebdav Usage Invoice for {period_start.strftime('%B %Y')}",
|
||||
line_items=stripe_line_items,
|
||||
metadata={"rbox_invoice_id": str(invoice.id)}
|
||||
)
|
||||
@ -153,7 +153,7 @@ Due Date: {invoice.due_date}
|
||||
You can view and pay your invoice at: {invoice.user.email} # Placeholder, should be a link to invoice page
|
||||
|
||||
Best regards,
|
||||
The RBox Team
|
||||
The MyWebdav Team
|
||||
"""
|
||||
html = f"""
|
||||
<h2>Invoice {invoice.invoice_number}</h2>
|
||||
@ -168,7 +168,7 @@ The RBox Team
|
||||
</table>
|
||||
<p>Due Date: {invoice.due_date}</p>
|
||||
<p>You can view and pay your invoice at: <a href="#">Invoice Link</a></p>
|
||||
<p>Best regards,<br>The RBox Team</p>
|
||||
<p>Best regards,<br>The MyWebdav Team</p>
|
||||
"""
|
||||
queue_email(
|
||||
to_email=invoice.user.email,
|
||||
|
||||
@ -46,8 +46,8 @@ async def lifespan(app: FastAPI):
|
||||
print("Shutting down...")
|
||||
|
||||
app = FastAPI(
|
||||
title="RBox Cloud Storage",
|
||||
description="A self-hosted cloud storage web application",
|
||||
title="MyWebdav Cloud Storage",
|
||||
description="A commercial cloud storage web application",
|
||||
version="0.1.0",
|
||||
lifespan=lifespan
|
||||
)
|
||||
|
||||
@ -65,9 +65,9 @@ async def register_user(user_in: UserCreate):
|
||||
from ..mail import queue_email
|
||||
queue_email(
|
||||
to_email=user.email,
|
||||
subject="Welcome to RBox!",
|
||||
body=f"Hi {user.username},\n\nWelcome to RBox! Your account has been created successfully.\n\nBest regards,\nThe RBox Team",
|
||||
html=f"<h1>Welcome to RBox!</h1><p>Hi {user.username},</p><p>Welcome to RBox! Your account has been created successfully.</p><p>Best regards,<br>The RBox Team</p>"
|
||||
subject="Welcome to MyWebdav!",
|
||||
body=f"Hi {user.username},\n\nWelcome to MyWebdav! Your account has been created successfully.\n\nBest regards,\nThe MyWebdav Team",
|
||||
html=f"<h1>Welcome to MyWebdav!</h1><p>Hi {user.username},</p><p>Welcome to MyWebdav! Your account has been created successfully.</p><p>Best regards,<br>The MyWebdav Team</p>"
|
||||
)
|
||||
|
||||
access_token_expires = timedelta(minutes=30) # Use settings
|
||||
|
||||
@ -73,7 +73,7 @@ Access link: {share_url}{password_text}
|
||||
This link is valid{expiry_text}.
|
||||
|
||||
--
|
||||
RBox File Sharing Service"""
|
||||
MyWebdav File Sharing Service"""
|
||||
|
||||
email_html = f"""
|
||||
<html>
|
||||
@ -85,7 +85,7 @@ RBox File Sharing Service"""
|
||||
{f'<p><strong>Password:</strong> {share_in.password}</p>' if share_in.password else ''}
|
||||
<p><small>This link is valid{expiry_text}.</small></p>
|
||||
<hr>
|
||||
<p><small>RBox File Sharing Service</small></p>
|
||||
<p><small>MyWebdav File Sharing Service</small></p>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
@ -5,26 +5,26 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
class Settings(BaseSettings):
|
||||
model_config = SettingsConfigDict(env_file='.env', extra='ignore')
|
||||
|
||||
DATABASE_URL: str = "sqlite:///app/rbox.db"
|
||||
DATABASE_URL: str = "sqlite:///app/mywebdav.db"
|
||||
REDIS_URL: str = "redis://redis:6379/0"
|
||||
SECRET_KEY: str = "super_secret_key"
|
||||
ALGORITHM: str = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
|
||||
REFRESH_TOKEN_EXPIRE_DAYS: int = 7
|
||||
DOMAIN_NAME: str = "localhost"
|
||||
DOMAIN_NAME: str = "MyWebdav.eu"
|
||||
CERTBOT_EMAIL: str = "admin@example.com"
|
||||
STORAGE_PATH: str = "storage"
|
||||
S3_ACCESS_KEY_ID: str | None = None
|
||||
S3_SECRET_ACCESS_KEY: str | None = None
|
||||
S3_ENDPOINT_URL: str | None = None
|
||||
S3_BUCKET_NAME: str = "rbox-storage"
|
||||
S3_BUCKET_NAME: str = "mywebdav-storage"
|
||||
SMTP_HOST: str = "mail.example.com"
|
||||
SMTP_PORT: int = 587
|
||||
SMTP_USERNAME: str = "noreply@example.com"
|
||||
SMTP_PASSWORD: str = "your-smtp-password"
|
||||
SMTP_USE_TLS: bool = True
|
||||
SMTP_SENDER_EMAIL: str = "noreply@example.com"
|
||||
TOTP_ISSUER: str = "RBox"
|
||||
TOTP_ISSUER: str = "MyWebdav"
|
||||
STRIPE_SECRET_KEY: str = ""
|
||||
STRIPE_PUBLISHABLE_KEY: str = ""
|
||||
STRIPE_WEBHOOK_SECRET: str = ""
|
||||
|
||||
@ -75,7 +75,7 @@ async def webdav_auth(request: Request, authorization: Optional[str] = Header(No
|
||||
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
headers={'WWW-Authenticate': 'Basic realm="RBox WebDAV"'}
|
||||
headers={'WWW-Authenticate': 'Basic realm="MyWebdav WebDAV"'}
|
||||
)
|
||||
|
||||
async def resolve_path(path_str: str, user: User):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user