docs: beate uhse for freedom
This commit is contained in:
388
README.md
388
README.md
@@ -1,70 +1,162 @@
|
|||||||
# sexy.pivoine.art
|
# 💋 sexy.pivoine.art
|
||||||
|
|
||||||
An adult content platform built with SvelteKit, Directus CMS, and hardware integration via Buttplug.io.
|
<div align="center">
|
||||||
|
|
||||||
[](https://github.com/valknarxxx/sexy/actions/workflows/docker-build-push.yml)
|

|
||||||
[](https://github.com/valknarxxx/sexy/actions/workflows/docker-scan.yml)
|
|
||||||
|
|
||||||
## Quick Start
|
*"Lust und Liebe gehören zusammen - wer das eine verteufelt, zerstört auch das andere."*
|
||||||
|
— **Beate Uhse**, Pionierin der sexuellen Befreiung ✈️
|
||||||
|
|
||||||
### Using Docker (Recommended)
|
---
|
||||||
|
|
||||||
|
### 🍆 An Intimate Platform for Liberation & Pleasure 🍆
|
||||||
|
|
||||||
|
Built with passion, technology, and the fearless spirit of sexual empowerment
|
||||||
|
|
||||||
|
[](https://github.com/valknarxxx/sexy.pivoine.art/actions/workflows/docker-build-push.yml)
|
||||||
|
[](https://github.com/valknarxxx/sexy.pivoine.art/actions/workflows/docker-scan.yml)
|
||||||
|
[](LICENSE)
|
||||||
|
[](http://sexy.pivoine.art)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👅 What Is This Delicious Creation?
|
||||||
|
|
||||||
|
Welcome, dear pleasure-seeker! This is **sexy.pivoine.art** — a modern, sensual platform combining the elegance of **SvelteKit**, the power of **Directus CMS**, and the intimate connection of **Buttplug.io** hardware integration.
|
||||||
|
|
||||||
|
Like Beate Uhse breaking barriers in post-war Germany, we believe in the freedom to explore, create, and celebrate sexuality without shame. This platform is built for **models**, **creators**, and **connoisseurs** of adult content who deserve technology as sophisticated as their desires.
|
||||||
|
|
||||||
|
### ♉ Features That'll Make You Blush ♊
|
||||||
|
|
||||||
|
- 💖 **Sensual SvelteKit Frontend** with Tailwind CSS 4 styling
|
||||||
|
- 🗄️ **Headless CMS** powered by Directus for content liberation
|
||||||
|
- 🎮 **Hardware Integration** via Buttplug.io (yes, really!)
|
||||||
|
- 🌐 **Multi-Platform Support** (AMD64 + ARM64) — pleasure everywhere
|
||||||
|
- 🔒 **Session-Based Authentication** — discretion guaranteed
|
||||||
|
- 📱 **Responsive Design** that looks sexy on any device
|
||||||
|
- 🌍 **Internationalization** — pleasure speaks all languages
|
||||||
|
- 📊 **Analytics Integration** (Umami) — know your admirers
|
||||||
|
- 📧 **Newsletter Integration** (Letterspace) — stay connected
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
### 🍑 Technology Stack 🍑
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ 💋 Frontend Layer │
|
||||||
|
│ ├─ SvelteKit 2.0 → Smooth as silk │
|
||||||
|
│ ├─ Tailwind CSS 4 → Styled to seduce │
|
||||||
|
│ ├─ bits-ui Components → Building blocks of pleasure │
|
||||||
|
│ └─ Vite → Fast and furious │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 🍷 Backend Layer │
|
||||||
|
│ ├─ Directus CMS → Content with no limits │
|
||||||
|
│ ├─ Custom Extensions → Bespoke pleasures │
|
||||||
|
│ └─ PostgreSQL → Data deep and secure │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 🎀 Hardware Layer │
|
||||||
|
│ ├─ Buttplug.io → Real connections │
|
||||||
|
│ ├─ TypeScript + Rust → Power and precision │
|
||||||
|
│ └─ WebBluetooth API → Wireless intimacy │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 🌸 DevOps Layer │
|
||||||
|
│ ├─ Docker → Containerized ecstasy │
|
||||||
|
│ ├─ GitHub Actions → Automated seduction │
|
||||||
|
│ └─ GHCR → Images served hot │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔥 Quick Start — Get Intimate Fast
|
||||||
|
|
||||||
|
### 💕 Option 1: Using Docker (Recommended)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Pull and run the latest image
|
# Pull the pleasure
|
||||||
docker pull ghcr.io/valknarxxx/sexy:latest
|
docker pull ghcr.io/valknarxxx/sexy:latest
|
||||||
|
|
||||||
|
# Run with passion
|
||||||
docker run -d -p 3000:3000 \
|
docker run -d -p 3000:3000 \
|
||||||
-e PUBLIC_API_URL=https://api.your-domain.com \
|
-e PUBLIC_API_URL=https://api.your-domain.com \
|
||||||
-e PUBLIC_URL=https://your-domain.com \
|
-e PUBLIC_URL=https://your-domain.com \
|
||||||
ghcr.io/valknarxxx/sexy:latest
|
ghcr.io/valknarxxx/sexy:latest
|
||||||
|
|
||||||
|
# Visit your creation at http://localhost:3000 💋
|
||||||
```
|
```
|
||||||
|
|
||||||
See [QUICKSTART.md](QUICKSTART.md) for detailed instructions.
|
See [QUICKSTART.md](QUICKSTART.md) for the full seduction guide.
|
||||||
|
|
||||||
### Local Development
|
### 💜 Option 2: Local Development
|
||||||
|
|
||||||
**Prerequisites:**
|
**Prerequisites:**
|
||||||
|
|
||||||
1. Install Node.js 20.19.1
|
1. Node.js 20.19.1 — *the foundation*
|
||||||
2. Enable corepack: `corepack enable`
|
2. `corepack enable` — *unlock the tools*
|
||||||
3. Install dependencies: `pnpm install`
|
3. `pnpm install` — *gather your ingredients*
|
||||||
4. Install Rust and wasm-bindgen: `cargo install wasm-bindgen-cli`
|
4. Rust + `cargo install wasm-bindgen-cli` — *forge the connection*
|
||||||
|
|
||||||
**Start development environment:**
|
**Start your pleasure journey:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Start all services (Docker Compose + frontend)
|
# Awaken all services
|
||||||
pnpm dev
|
pnpm dev
|
||||||
|
|
||||||
# Or start individually
|
# Or tease them one by one
|
||||||
pnpm dev:data # Start data services
|
pnpm dev:data # The foundation
|
||||||
pnpm dev:directus # Start Directus CMS
|
pnpm dev:directus # The content
|
||||||
pnpm --filter @sexy.pivoine.art/frontend dev # Start frontend
|
pnpm --filter @sexy.pivoine.art/frontend dev # The face
|
||||||
```
|
```
|
||||||
|
|
||||||
Access the application at `http://localhost:3000`
|
Visit `http://localhost:3000` and let the experience begin... 💋
|
||||||
|
|
||||||
## Project Structure
|
---
|
||||||
|
|
||||||
This is a pnpm monorepo with three packages:
|
## 🌹 Project Structure
|
||||||
|
|
||||||
- **`packages/frontend`** - SvelteKit application with Tailwind CSS 4
|
This monorepo contains three packages, each serving its purpose:
|
||||||
- **`packages/bundle`** - Directus extensions (endpoints, hooks, themes)
|
|
||||||
- **`packages/buttplug`** - Hardware control library (TypeScript + Rust/WASM)
|
|
||||||
|
|
||||||
## Documentation
|
```
|
||||||
|
sexy.pivoine.art/
|
||||||
|
├─ 💄 packages/frontend/ → SvelteKit app (the seduction)
|
||||||
|
├─ 🎭 packages/bundle/ → Directus extensions (the power)
|
||||||
|
└─ 🎮 packages/buttplug/ → Hardware control (the connection)
|
||||||
|
```
|
||||||
|
|
||||||
- **[QUICKSTART.md](QUICKSTART.md)** - Get running in 5 minutes with Docker
|
---
|
||||||
- **[DOCKER.md](DOCKER.md)** - Comprehensive Docker deployment guide
|
|
||||||
- **[CLAUDE.md](CLAUDE.md)** - Development guide and architecture
|
|
||||||
- **[.github/workflows/README.md](.github/workflows/README.md)** - CI/CD workflows
|
|
||||||
|
|
||||||
## Building
|
## 📚 Documentation — Your Guide to Pleasure
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
| Document | Purpose | Emoji |
|
||||||
|
|----------|---------|-------|
|
||||||
|
| [QUICKSTART.md](QUICKSTART.md) | Get wet... I mean, get started! | 💦 |
|
||||||
|
| [DOCKER.md](DOCKER.md) | Complete deployment manual | 🐳 |
|
||||||
|
| [CLAUDE.md](CLAUDE.md) | Architecture & development | 🤖 |
|
||||||
|
| [.github/workflows/README.md](.github/workflows/README.md) | CI/CD workflows | ⚙️ |
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎨 Building — Craft Your Masterpiece
|
||||||
|
|
||||||
### Build All Packages
|
### Build All Packages
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Prepare everything
|
||||||
pnpm install
|
pnpm install
|
||||||
|
|
||||||
|
# Build the WASM foundation
|
||||||
pnpm --filter @sexy.pivoine.art/buttplug build:wasm
|
pnpm --filter @sexy.pivoine.art/buttplug build:wasm
|
||||||
|
|
||||||
|
# Build the packages
|
||||||
pnpm --filter @sexy.pivoine.art/buttplug build
|
pnpm --filter @sexy.pivoine.art/buttplug build
|
||||||
pnpm --filter @sexy.pivoine.art/frontend build
|
pnpm --filter @sexy.pivoine.art/frontend build
|
||||||
pnpm --filter @sexy.pivoine.art/bundle build
|
pnpm --filter @sexy.pivoine.art/bundle build
|
||||||
@@ -73,102 +165,114 @@ pnpm --filter @sexy.pivoine.art/bundle build
|
|||||||
### Build Docker Image
|
### Build Docker Image
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Using the build script
|
# Quick build
|
||||||
./build.sh
|
./build.sh
|
||||||
|
|
||||||
# Or manually
|
# Manual control
|
||||||
docker build -t sexy.pivoine.art:latest .
|
docker build -t sexy.pivoine.art:latest .
|
||||||
|
|
||||||
# Multi-platform
|
# Multi-platform pleasure
|
||||||
docker buildx build --platform linux/amd64,linux/arm64 -t sexy.pivoine.art:latest .
|
docker buildx build --platform linux/amd64,linux/arm64 -t sexy.pivoine.art:latest .
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deployment
|
---
|
||||||
|
|
||||||
|
## 🚀 Deployment — Share Your Creation
|
||||||
|
|
||||||
### Production with Docker
|
### Production with Docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Using docker-compose
|
# Configure your secrets
|
||||||
cp .env.production.example .env.production
|
cp .env.production.example .env.production
|
||||||
# Edit .env.production with your values
|
# Edit .env.production with your intimate details
|
||||||
|
|
||||||
|
# Deploy with grace
|
||||||
docker-compose -f docker-compose.production.yml up -d
|
docker-compose -f docker-compose.production.yml up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Production without Docker
|
### Production without Docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Build all packages
|
# Build everything
|
||||||
pnpm build:frontend
|
pnpm build:frontend
|
||||||
|
|
||||||
# Start the server
|
# Start serving
|
||||||
pnpm --filter @sexy.pivoine.art/frontend start
|
pnpm --filter @sexy.pivoine.art/frontend start
|
||||||
```
|
```
|
||||||
|
|
||||||
## Features
|
---
|
||||||
|
|
||||||
- 🎨 Modern SvelteKit frontend with Tailwind CSS 4
|
## 🌈 Environment Variables
|
||||||
- 🗄️ Headless CMS powered by Directus
|
|
||||||
- 🎮 Hardware integration via Buttplug.io
|
|
||||||
- 🌐 Multi-platform support (AMD64/ARM64)
|
|
||||||
- 🔒 Session-based authentication
|
|
||||||
- 📱 Responsive design with bits-ui components
|
|
||||||
- 🌍 Internationalization support (i18n)
|
|
||||||
- 📊 Built-in analytics integration (Umami)
|
|
||||||
- 📧 Newsletter integration (Letterspace)
|
|
||||||
|
|
||||||
## Technology Stack
|
### 💖 Required (The Essentials)
|
||||||
|
|
||||||
### Frontend
|
- `PUBLIC_API_URL` — Your Directus backend
|
||||||
- **Framework:** SvelteKit 2
|
- `PUBLIC_URL` — Your frontend domain
|
||||||
- **Styling:** Tailwind CSS 4
|
|
||||||
- **UI Components:** bits-ui, custom component library
|
|
||||||
- **Build Tool:** Vite
|
|
||||||
- **Deployment:** Node.js adapter
|
|
||||||
|
|
||||||
### Backend
|
### 💜 Optional (The Extras)
|
||||||
- **CMS:** Directus (headless)
|
|
||||||
- **Extensions:** Custom endpoints, hooks, and themes
|
|
||||||
- **Database:** PostgreSQL (via Directus)
|
|
||||||
|
|
||||||
### Hardware
|
- `PUBLIC_UMAMI_ID` — Analytics tracking
|
||||||
- **Library:** Buttplug.io
|
- `LETTERSPACE_API_URL` — Newsletter endpoint
|
||||||
- **Languages:** TypeScript + Rust (compiled to WASM)
|
- `LETTERSPACE_API_KEY` — Newsletter key
|
||||||
- **Protocols:** WebBluetooth API
|
- `LETTERSPACE_LIST_ID` — Mailing list
|
||||||
|
|
||||||
### DevOps
|
See [.env.production.example](.env.production.example) for the full configuration.
|
||||||
- **Containerization:** Docker + Docker Compose
|
|
||||||
- **CI/CD:** GitHub Actions
|
|
||||||
- **Registry:** GitHub Container Registry (GHCR)
|
|
||||||
- **Security:** Trivy vulnerability scanning
|
|
||||||
|
|
||||||
## Environment Variables
|
---
|
||||||
|
|
||||||
### Required
|
## 🎭 Development Workflow
|
||||||
|
|
||||||
- `PUBLIC_API_URL` - Directus API endpoint
|
```mermaid
|
||||||
- `PUBLIC_URL` - Frontend application URL
|
graph LR
|
||||||
|
A[💡 Idea] --> B[💻 Code]
|
||||||
|
B --> C[🧪 Test Locally]
|
||||||
|
C --> D[🌿 Feature Branch]
|
||||||
|
D --> E[📤 Push & PR]
|
||||||
|
E --> F{✅ CI Pass?}
|
||||||
|
F -->|Yes| G[🔀 Merge to Main]
|
||||||
|
F -->|No| B
|
||||||
|
G --> H[🚀 Auto Deploy]
|
||||||
|
H --> I[🏷️ Tag Release]
|
||||||
|
I --> J[🎉 Celebrate]
|
||||||
|
```
|
||||||
|
|
||||||
### Optional
|
1. Create → `git checkout -b feature/my-sexy-feature`
|
||||||
|
2. Develop → Write beautiful code
|
||||||
|
3. Test → `pnpm dev`
|
||||||
|
4. Push → Create PR (triggers CI build)
|
||||||
|
5. Merge → Automatic deployment to production
|
||||||
|
6. Release → `git tag v1.0.0 && git push origin v1.0.0`
|
||||||
|
|
||||||
- `PUBLIC_UMAMI_ID` - Umami analytics tracking ID
|
---
|
||||||
- `LETTERSPACE_API_URL` - Newsletter API endpoint
|
|
||||||
- `LETTERSPACE_API_KEY` - Newsletter API key
|
|
||||||
- `LETTERSPACE_LIST_ID` - Mailing list identifier
|
|
||||||
|
|
||||||
See [.env.production.example](.env.production.example) for full reference.
|
## 🔐 Security — Protected Pleasure
|
||||||
|
|
||||||
## Development Workflow
|
- 🛡️ Daily vulnerability scans with Trivy
|
||||||
|
- 🔒 Non-root Docker containers
|
||||||
|
- 📊 Security reports in GitHub Security tab
|
||||||
|
- 🤐 Confidential issue reporting available
|
||||||
|
|
||||||
1. Make changes to code
|
*Report security concerns privately via GitHub Security.*
|
||||||
2. Test locally with `pnpm dev`
|
|
||||||
3. Create a feature branch
|
|
||||||
4. Push and create PR (triggers CI build)
|
|
||||||
5. Merge to `main` (triggers production build)
|
|
||||||
6. Tag release: `git tag v1.0.0 && git push origin v1.0.0`
|
|
||||||
|
|
||||||
## CI/CD Pipeline
|
---
|
||||||
|
|
||||||
Automated workflows handle:
|
## 💝 Contributing — Join the Movement
|
||||||
|
|
||||||
|
Like Beate Uhse fought for sexual liberation, we welcome contributors who believe in freedom, pleasure, and quality code.
|
||||||
|
|
||||||
|
1. **Fork** this repository
|
||||||
|
2. **Create** your feature branch
|
||||||
|
3. **Commit** your changes
|
||||||
|
4. **Push** to your branch
|
||||||
|
5. **Submit** a pull request
|
||||||
|
|
||||||
|
All contributors are bound by our code of conduct: **Respect, Consent, and Quality.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 CI/CD Pipeline — Automated Seduction
|
||||||
|
|
||||||
|
Our GitHub Actions workflows handle:
|
||||||
|
|
||||||
- ✅ Multi-platform Docker builds (AMD64 + ARM64)
|
- ✅ Multi-platform Docker builds (AMD64 + ARM64)
|
||||||
- ✅ Automated publishing to GHCR
|
- ✅ Automated publishing to GHCR
|
||||||
@@ -176,38 +280,82 @@ Automated workflows handle:
|
|||||||
- ✅ Weekly cleanup of old images
|
- ✅ Weekly cleanup of old images
|
||||||
- ✅ Semantic versioning from git tags
|
- ✅ Semantic versioning from git tags
|
||||||
|
|
||||||
Images are available at: `ghcr.io/valknarxxx/sexy`
|
**Images available at:** `ghcr.io/valknarxxx/sexy`
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
1. Fork the repository
|
|
||||||
2. Create a feature branch
|
|
||||||
3. Make your changes
|
|
||||||
4. Ensure tests pass (when implemented)
|
|
||||||
5. Submit a pull request
|
|
||||||
|
|
||||||
## Security
|
|
||||||
|
|
||||||
- Docker images are scanned daily for vulnerabilities
|
|
||||||
- Security reports available in GitHub Security tab
|
|
||||||
- Report security issues privately via GitHub Security
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
See [LICENSE](LICENSE) file for details.
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
- **Issues:** [GitHub Issues](https://github.com/valknarxxx/sexy/issues)
|
|
||||||
- **Discussions:** [GitHub Discussions](https://github.com/valknarxxx/sexy/discussions)
|
|
||||||
|
|
||||||
## Acknowledgments
|
|
||||||
|
|
||||||
- Built with [SvelteKit](https://kit.svelte.dev/)
|
|
||||||
- Powered by [Directus](https://directus.io/)
|
|
||||||
- Hardware control via [Buttplug.io](https://buttplug.io/)
|
|
||||||
- UI components from [bits-ui](https://www.bits-ui.com/)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Note:** This is an adult content platform. Users must be 18+ or the age of majority in their jurisdiction.
|
## 💌 Credits & Acknowledgments
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
### 🌸 Created with Love by 🌸
|
||||||
|
|
||||||
|
**[Palina](http://sexy.pivoine.art) & [Valknar](http://sexy.pivoine.art)**
|
||||||
|
|
||||||
|
*Für die Mäuse...* 🐭💕
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 🙏 Built With
|
||||||
|
|
||||||
|
| Technology | Purpose |
|
||||||
|
|------------|---------|
|
||||||
|
| [SvelteKit](https://kit.svelte.dev/) | Framework |
|
||||||
|
| [Directus](https://directus.io/) | CMS |
|
||||||
|
| [Buttplug.io](https://buttplug.io/) | Hardware |
|
||||||
|
| [bits-ui](https://www.bits-ui.com/) | Components |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 💐 Inspired by Beate Uhse
|
||||||
|
|
||||||
|
Pioneer of sexual liberation (1919-2001)
|
||||||
|
Pilot, Entrepreneur, Freedom Fighter
|
||||||
|
|
||||||
|
*"Eine Frau, die ihre Sexualität selbstbestimmt lebt, ist eine freie Frau."*
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚖️ License & Legal
|
||||||
|
|
||||||
|
- 📜 See [LICENSE](LICENSE) file for details
|
||||||
|
- 🔞 **18+ Only** — This platform is for adults
|
||||||
|
- 🌍 Users must be of legal age in their jurisdiction
|
||||||
|
- ⚖️ We support equality, freedom, and consensual pleasure
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Support & Community
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://github.com/valknarxxx/sexy.pivoine.art/issues)
|
||||||
|
[](https://github.com/valknarxxx/sexy.pivoine.art/discussions)
|
||||||
|
[](http://sexy.pivoine.art)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
### 🍑 Made with 💜 for Freedom, Pleasure & Technology 🍑
|
||||||
|
|
||||||
|
```
|
||||||
|
██████╗ ███████╗██╗ ██╗██╗ ██╗
|
||||||
|
██╔════╝ ██╔════╝╚██╗██╔╝╚██╗ ██╔╝
|
||||||
|
╚█████╗ █████╗ ╚███╔╝ ╚████╔╝
|
||||||
|
╚═══██╗ ██╔══╝ ██╔██╗ ╚██╔╝
|
||||||
|
██████╔╝ ███████╗██╔╝╚██╗ ██║
|
||||||
|
╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
|
||||||
|
```
|
||||||
|
|
||||||
|
*Pleasure is a human right. Technology is freedom. Together, they are power.*
|
||||||
|
|
||||||
|
**[sexy.pivoine.art](http://sexy.pivoine.art)** | © 2025 Palina & Valknar
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user