This commit is contained in:
retoor 2025-11-13 12:05:05 +01:00
parent b23fd25337
commit 5a61910a93
7 changed files with 24 additions and 24 deletions

View File

@ -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

View File

@ -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,

View File

@ -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
)

View File

@ -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

View File

@ -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>
"""

View File

@ -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 = ""

View File

@ -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):