Compare commits
No commits in common. "master" and "add-proxmox-lxc-docs" have entirely different histories.
master
...
add-proxmo
@ -1,49 +0,0 @@
|
||||
name: Hugo Build and Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
test_build:
|
||||
name: Build Hugo Site
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: klakegg/hugo:0.111.3-ext-alpine-ci
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Check Hugo Version and Build
|
||||
run: |
|
||||
hugo version
|
||||
hugo --minify
|
||||
|
||||
deploy:
|
||||
name: Deploy to Server
|
||||
runs-on: ubuntu-latest
|
||||
needs: test_build
|
||||
if: github.ref == 'refs/heads/master'
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup SSH and Deploy
|
||||
run: |
|
||||
eval "$(ssh-agent -s)"
|
||||
mkdir -p ~/.ssh
|
||||
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
chmod 700 ~/.ssh
|
||||
ssh-keyscan "$SSH_HOST" >> ~/.ssh/known_hosts
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
|
||||
ssh -p "$SSH_PORT" "$SSH_USER@$SSH_HOST" 'cd repo && git stash && git pull --force origin master && ./build.sh'
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
SSH_USER: ${{ secrets.SSH_USER }}
|
||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||
SSH_PORT: ${{ secrets.SSH_PORT }}
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -18,6 +18,3 @@ hugo.linux
|
||||
# Temporary lock file while building
|
||||
/.hugo_build.lock
|
||||
*.webp
|
||||
|
||||
# Aider
|
||||
.aider*
|
||||
|
16
.gitlab-ci.yml
Normal file
16
.gitlab-ci.yml
Normal file
@ -0,0 +1,16 @@
|
||||
image: alpine:latest
|
||||
|
||||
deploy:
|
||||
stage: deploy
|
||||
before_script:
|
||||
- 'command -v ssh-agent >/dev/null || ( apk add --update openssh )'
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh
|
||||
- chmod 700 ~/.ssh
|
||||
- ssh-keyscan $SSH_HOST >> ~/.ssh/known_hosts
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
script:
|
||||
- ssh -p $SSH_PORT $SSH_USER@$SSH_HOST "cd repo && git stash && git pull --force origin master && ./build.sh"
|
||||
only:
|
||||
- master
|
2
build.sh
2
build.sh
@ -2,4 +2,4 @@
|
||||
|
||||
find ./ -type f -name '*.png' -not -path '*/.git/*' -exec sh -c 'cwebp -lossless $1 -o "${1%.png}.webp"' _ {} \;
|
||||
find . -type f -not -path '*/.git/*' -exec sed -i -e 's/\.png/\.webp/g' {} \;
|
||||
hugo -s . -d /var/www/yams.media/ --minify --cleanDestinationDir --gc --verbose --cacheDir $PWD/hugo-cache
|
||||
hugo -s . -d /var/www/yams.media/ --minify --cleanDestinationDir --gc --verbose
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Adding your own containers to YAMS"
|
||||
date: 2023-10-21T21:41:29-03:00
|
||||
draft: false
|
||||
weight: 20
|
||||
weight: 2
|
||||
summary: A complete guide to expanding YAMS with your own Docker containers
|
||||
---
|
||||
|
||||
@ -26,7 +26,7 @@ cd /opt/yams
|
||||
|
||||
## The Magic Variables ✨
|
||||
|
||||
YAMS provides some handy environment variables you can use in your custom containers. These are defined in your central [`.env` settings file]({{< relref "/advanced/env-file" >}}) (learn more about it!) and make it super easy to keep your custom containers working in harmony with YAMS:
|
||||
YAMS provides some handy environment variables you can use in your custom containers:
|
||||
|
||||
```yaml
|
||||
PUID: Your user ID
|
||||
@ -102,7 +102,7 @@ Want your custom container to use YAMS's VPN? Add this to your container config:
|
||||
Check out [Running Prowlarr behind the VPN](/advanced/prowlarr-behind-vpn) for a detailed example!
|
||||
|
||||
### 4. Variable Power 💪
|
||||
You can access any environment variable defined in YAMS's [`.env` file]({{< relref "/advanced/env-file" >}}) within your custom containers. Just use the `${VARIABLE_NAME}` syntax! This is great for things like API keys or other settings you want to manage centrally.
|
||||
You can access any environment variable from YAMS's `.env` file in your custom containers. Just use the `${VARIABLE_NAME}` syntax!
|
||||
|
||||
## Common Gotchas 🚨
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Backups"
|
||||
date: 2023-01-17T19:38:39-03:00
|
||||
draft: false
|
||||
weight: 80
|
||||
weight: 7
|
||||
summary: Everything you need to know about backing up and restoring your YAMS setup
|
||||
---
|
||||
|
||||
|
@ -1,68 +0,0 @@
|
||||
---
|
||||
title: "Your Environment File (.env)"
|
||||
weight: 30
|
||||
description: "Get to know the handy .env file that helps configure YAMS."
|
||||
summary: Learn about the central .env file used for YAMS configuration variables like paths and user IDs.
|
||||
---
|
||||
|
||||
## Your Environment File (`.env`) - The YAMS Settings Hub!
|
||||
|
||||
Think of the `.env` file as the central control panel for some of YAMS's key settings. It's a simple text file living right where you installed YAMS (remember specifying that location during the [install steps]({{< relref "/install/steps" >}})? The default spot is `/opt/yams`).
|
||||
|
||||
### So, What Does It Do?
|
||||
|
||||
At its heart, the `.env` file holds **environment variables**. That sounds technical, but it's just a fancy way of saying "named settings". You give a setting a name, set its value, and then you can easily reuse that name elsewhere.
|
||||
|
||||
It looks like this inside:
|
||||
|
||||
```env
|
||||
# Lines starting with # are comments (ignored)
|
||||
PUID=1000
|
||||
PGID=100
|
||||
MEDIA_DIRECTORY=/srv/media
|
||||
# You might add your own later!
|
||||
# MY_API_KEY=supersecret123
|
||||
```
|
||||
|
||||
See? Just `SETTING_NAME=some_value` on each line. Easy peasy!
|
||||
|
||||
### How YAMS Uses It (The Magic Part!)
|
||||
|
||||
Now, where do these settings get used? Primarily in your `docker-compose.yaml` and `docker-compose-custom.yaml` files. These files tell Docker how to run all the YAMS services (like Radarr, Sonarr, Plex, etc.).
|
||||
|
||||
Instead of writing the same path or ID over and over again in those files, we can just use the *name* of the setting from `.env`, but with a dollar sign (`$`) in front. Like this:
|
||||
|
||||
```yaml
|
||||
# Inside a service definition in docker-compose.yaml...
|
||||
environment:
|
||||
- PUID=$PUID # Aha! Use the PUID value from .env
|
||||
- PGID=$PGID # And the PGID value too!
|
||||
volumes:
|
||||
- $MEDIA_DIRECTORY:/data # Map the media folder defined in .env
|
||||
```
|
||||
|
||||
When Docker starts the container, it automatically swaps `$PUID` with `1000` (or whatever you set in `.env`), `$MEDIA_DIRECTORY` with `/srv/media`, and so on. Neat, right?
|
||||
|
||||
### Why Bother With `.env`? (Spoiler: It Makes Life Easier!)
|
||||
|
||||
Okay, why the extra step? It actually helps you out in a few great ways:
|
||||
|
||||
* **Keep Secrets Secret:** Got API keys or passwords? Pop them in your `.env` file. This way, you can share your `docker-compose.yaml` file if you need help, without accidentally giving away sensitive info! **Super Important:** Make sure you add `.env` to your `.gitignore` file so you don't accidentally upload your secrets to Git! (We've already suggested adding this for you).
|
||||
* **Change Once, Update Everywhere:** Imagine you move your media library. Instead of editing the path in *every single service* in your `docker-compose.yaml`, you just change the `MEDIA_DIRECTORY` line in your `.env` file once. Done!
|
||||
* **Easy Tweaks:** It keeps your main `docker-compose.yaml` cleaner and lets you adjust core settings without digging through complex files.
|
||||
|
||||
### The Defaults YAMS Gives You
|
||||
|
||||
When you first set up YAMS, your `.env` file comes pre-filled with a few essentials:
|
||||
|
||||
* `PUID` and `PGID`: These numbers tell the containers which user on your computer "owns" the files they create. This is super important for permissions (making sure Radarr can actually save files to your media folder!). You usually *don't* need to change the defaults (often `1000` for both) unless you know you need to run things as a different specific user.
|
||||
* `MEDIA_DIRECTORY`: This is the main folder on your computer where all your media lives (or will live!). The default is `/srv/media`. Feel free to change it to wherever you keep your stuff, just make sure the user from `PUID`/`PGID` can read and write there! **Heads Up:** For smooth sailing and efficient hardlinking (which saves disk space!), try to keep all your media (movies, TV, music, books) in *subfolders* under this *one* main directory.
|
||||
* `INSTALL_DIRECTORY`: This tells YAMS where its own configuration files for each service should live. Default is `/opt/yams`. You set this during install and probably won't touch it again.
|
||||
|
||||
### What About VPN Stuff?
|
||||
|
||||
Good question! Some VPN setups also rely on settings you might put in your `.env` file. For the specifics on that, head over to the [Torrenting with VPN guide]({{< relref "/advanced/torrenting" >}}).
|
||||
|
||||
---
|
||||
|
||||
*Thanks to Airwreck on Discord for contributing to this guide!*
|
@ -2,7 +2,7 @@
|
||||
title: "Lidarr"
|
||||
date: 2023-01-31T11:20:14-03:00
|
||||
draft: false
|
||||
weight: 100
|
||||
weight: 9
|
||||
summary: Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new albums from your favorite artists and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.
|
||||
|
||||
---
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Port Forwarding"
|
||||
date: 2024-12-30T10:14:29-03:00
|
||||
draft: false
|
||||
weight: 50
|
||||
weight: 4
|
||||
summary: Everything you need to know about configuring and using a VPN with YAMS
|
||||
---
|
||||
|
||||
@ -11,8 +11,6 @@ Port forwarding helps you get better download speeds by allowing incoming connec
|
||||
## ProtonVPN Users 🚀
|
||||
ProtonVPN makes port forwarding easy! Just follow these steps:
|
||||
|
||||
> 🆕 ProtonVPN now supports **WireGuard with port forwarding**! If you want faster VPN performance, check out our [Switching Gluetun to WireGuard](/advanced/wireguard/) guide.
|
||||
|
||||
1. Create a script to update qBittorrent's port. Make sure you change `/your/install/location`:
|
||||
```bash
|
||||
mkdir -p /your/install/location/scripts
|
||||
@ -53,8 +51,6 @@ You should see an output similar to this:
|
||||
## Other VPN Providers 🌐
|
||||
For other VPN providers, port forwarding configuration varies.
|
||||
|
||||
> 💡 Some providers support WireGuard too! See [Switching Gluetun to WireGuard](/advanced/wireguard/) for details.
|
||||
|
||||
For detailed provider-specific instructions, check the [Gluetun Port Forwarding Documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/vpn-port-forwarding.md).
|
||||
|
||||
## Verifying Port Forwarding ✅
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Portainer"
|
||||
date: 2023-01-30T15:46:05-03:00
|
||||
draft: false
|
||||
weight: 90
|
||||
weight: 8
|
||||
summary: Your visual control center for all YAMS containers
|
||||
---
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Running Prowlarr Behind the VPN"
|
||||
date: 2024-09-27T16:44:00-03:00
|
||||
draft: false
|
||||
weight: 60
|
||||
weight: 5
|
||||
summary: A complete guide to routing Prowlarr's traffic through your VPN for extra privacy
|
||||
---
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Proxmox LXC Prerequisites"
|
||||
date: 2025-03-29T10:00:00-03:00
|
||||
draft: false
|
||||
weight: 10
|
||||
weight: 1
|
||||
summary: Required steps before installing YAMS in a Proxmox LXC container.
|
||||
---
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Readarr"
|
||||
date: 2023-01-31T13:52:34-03:00
|
||||
draft: false
|
||||
weight: 110
|
||||
weight: 10
|
||||
summary: Readarr is a ebook collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new books from your favorite authors and will interface with clients and indexers to grab, sort, and rename them.
|
||||
|
||||
---
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "Torrenting"
|
||||
date: 2023-01-16T14:48:14-03:00
|
||||
draft: false
|
||||
weight: 70
|
||||
weight: 6
|
||||
summary: Everything you need to know about safe and effective torrenting with YAMS
|
||||
---
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: "VPN"
|
||||
date: 2023-01-15T21:16:29-03:00
|
||||
draft: false
|
||||
weight: 40
|
||||
weight: 3
|
||||
summary: Everything you need to know about configuring and using a VPN with YAMS
|
||||
---
|
||||
|
||||
@ -131,16 +131,6 @@ If you get an error, double-check all your settings and make sure they're correc
|
||||
3. **Speed Matters**: Choose a VPN server that's relatively close to you for better download speeds
|
||||
4. **Port Problems**: If you can't access qBittorrent after setting up the VPN, check the troubleshooting section below
|
||||
|
||||
## Switching to WireGuard ⚡
|
||||
|
||||
By default, YAMS uses **OpenVPN** for Gluetun. But if your VPN provider supports it, you can switch to **WireGuard** for faster speeds and quicker connections.
|
||||
|
||||
We recommend ProtonVPN for this, and we’ve written a full guide to help you switch:
|
||||
|
||||
👉 [Switching Gluetun to WireGuard](/advanced/wireguard/)
|
||||
|
||||
> 💡 If you store your WireGuard private key in the `.env` file, make sure to read the [Environment File Guide](/advanced/env-file/) to learn how to manage secrets securely.
|
||||
|
||||
## Troubleshooting 🔧
|
||||
|
||||
### Common Issues:
|
||||
|
@ -1,137 +0,0 @@
|
||||
---
|
||||
title: "Switching Gluetun to WireGuard"
|
||||
date: 2025-04-05T12:00:00-03:00
|
||||
draft: false
|
||||
weight: 55
|
||||
summary: Learn how to switch your Gluetun VPN configuration from OpenVPN to WireGuard for faster and more reliable connections.
|
||||
---
|
||||
|
||||
Want faster VPN speeds and quicker connection times? It's time to switch from OpenVPN to **WireGuard**! This guide will walk you through updating your Gluetun configuration to use WireGuard — with a focus on **ProtonVPN**.
|
||||
|
||||
> ✅ **Why switch?** WireGuard is a modern VPN protocol that’s faster, more efficient, and easier to configure than OpenVPN.
|
||||
|
||||
---
|
||||
|
||||
## For ProtonVPN Users 🚀
|
||||
|
||||
ProtonVPN makes it easy to use WireGuard with Gluetun. Here's how to update your configuration.
|
||||
|
||||
### Step 1: Get Your WireGuard Private Key 🔑
|
||||
|
||||
1. Go to [ProtonVPN WireGuard Config Generator](https://account.proton.me/u/0/vpn/WireGuard)
|
||||
2. Select a server and enable **Port Forwarding** and **Moderate NAT** (optional)
|
||||
3. Click **Download** to get the `.conf` file
|
||||
4. Open the file and copy the value of `PrivateKey`
|
||||
|
||||
It will look something like this:
|
||||
```
|
||||
PrivateKey = wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Update Your `.env` File 🛠️
|
||||
|
||||
Open your `.env` file and remove the OpenVPN credentials:
|
||||
|
||||
```bash
|
||||
nano /opt/yams/.env
|
||||
```
|
||||
|
||||
Remove or comment out:
|
||||
```env
|
||||
VPN_USER=your-username
|
||||
VPN_PASSWORD=your-password
|
||||
```
|
||||
|
||||
You can also remove `VPN_SERVICE=protonvpn` if you want to hardcode it in the compose file (see below), or leave it — both work.
|
||||
|
||||
> 💡 Not sure how the `.env` file works? Check out our [Environment File Guide](/advanced/env-file/) to learn how to manage variables like `WIREGUARD_PRIVATE_KEY` securely.
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Update `docker-compose.yaml` 🐳
|
||||
|
||||
Find the `gluetun` service and replace the `environment:` section with the following:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- VPN_SERVICE_PROVIDER=protonvpn
|
||||
- VPN_TYPE=wireguard
|
||||
- WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
|
||||
- VPN_PORT_FORWARDING=on
|
||||
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
|
||||
- PORT_FORWARD_ONLY=on
|
||||
```
|
||||
|
||||
> 🧠 **Tip:** You can still use `${VARIABLE}` syntax if you prefer to keep the private key in your `.env` file. See the [Environment File Guide](/advanced/env-file/) for more info.
|
||||
|
||||
---
|
||||
|
||||
### Step 4: Restart YAMS 🔄
|
||||
|
||||
Apply the changes:
|
||||
|
||||
```bash
|
||||
yams restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 5: Verify It’s Working ✅
|
||||
|
||||
Run the VPN check:
|
||||
|
||||
```bash
|
||||
yams check-vpn
|
||||
```
|
||||
|
||||
You should see your qBittorrent IP is different from your local IP — and located in the country you selected in ProtonVPN.
|
||||
|
||||
You can also check the Gluetun logs:
|
||||
|
||||
```bash
|
||||
docker logs gluetun
|
||||
```
|
||||
|
||||
Look for lines like:
|
||||
```
|
||||
Using VPN provider: protonvpn
|
||||
VPN type: wireguard
|
||||
Port forwarding is enabled
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## For Other VPN Providers 🌐
|
||||
|
||||
WireGuard support varies by provider. Here’s what to do:
|
||||
|
||||
1. Visit the [Gluetun Provider Docs](https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers)
|
||||
2. Find your VPN provider and follow their WireGuard instructions
|
||||
3. Replace the `gluetun` environment variables in your `docker-compose.yaml` accordingly
|
||||
|
||||
> ⚠️ Not all providers support WireGuard or port forwarding. Check their documentation carefully.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting 🔧
|
||||
|
||||
### Gluetun won’t start?
|
||||
- Double-check your `WIREGUARD_PRIVATE_KEY`
|
||||
- Make sure `VPN_TYPE=wireguard` is set
|
||||
- Check for typos in your `docker-compose.yaml`
|
||||
|
||||
### Port forwarding not working?
|
||||
- Ensure `VPN_PORT_FORWARDING=on` and `PORT_FORWARD_ONLY=on` are set
|
||||
- Verify that port forwarding is enabled in your ProtonVPN config
|
||||
- Check Gluetun logs for forwarded port info
|
||||
|
||||
---
|
||||
|
||||
## Need Help? 🆘
|
||||
|
||||
If you're stuck:
|
||||
- Visit our [Common Issues](/faqs/common-errors/) page
|
||||
- Join our [Discord](https://discord.gg/Gwae3tNMST) or [Matrix](https://matrix.to/#/#yams-space:rogs.me) chat
|
||||
- Or ask in the [YAMS Forum](https://forum.yams.media)
|
@ -14,8 +14,6 @@ From their [website](https://www.plex.tv/):
|
||||
|
||||
In YAMS, Plex is going to be your streaming service powerhouse! 🌟 It's like having your own Netflix, but with way more control. Plus, sharing with friends and family is super easy!
|
||||
|
||||
**Note:** Be warned that Plex has [recently](https://www.plex.tv/blog/important-2025-plex-updates/) put its most basic features behind a monthly subscription or a single lifetime purchase.
|
||||
|
||||
## First steps
|
||||
|
||||
Before we dive in, we need to do a bit of setup magic to let Plex work its charms. First, stop YAMS:
|
||||
|
@ -189,7 +189,7 @@ Pick your streaming service:
|
||||
Each service has its strengths:
|
||||
- **Jellyfin**: Free, open-source, easy to set up
|
||||
- **Emby**: Similar to Jellyfin but with premium features
|
||||
- **Plex**: Most polished, but requires online account and is more complex to configure. Be aware of these [new limitations](https://www.plex.tv/blog/important-2025-plex-updates/) if you don't have a Plex Pass
|
||||
- **Plex**: Most polished, but requires online account and is more complex to configure
|
||||
|
||||
### 8. VPN Configuration
|
||||
|
||||
|
@ -7,15 +7,9 @@
|
||||
<li class="zerostatic">
|
||||
<img src="/pics/yams-small.png"/> <a href="https://yams.media">yams.media</a>
|
||||
</li>
|
||||
<li class="zerostatic">
|
||||
<img src="/pics/gitea-small.png"/> <a href="https://git.rogs.me/rogs/yams">git.rogs.me/rogs/yams</a>
|
||||
</li>
|
||||
<li class="zerostatic">
|
||||
<img src="/pics/gitlab-small.png"/> <a href="https://gitlab.com/rogs/yams">gitlab.com/rogs/yams</a>
|
||||
</li>
|
||||
<li class="zerostatic">
|
||||
<img src="/pics/github-small.png"/> <a href="https://github.com/rogsme/yams">github.com/rogsme/yams</a>
|
||||
</li>
|
||||
<li class="zerostatic">
|
||||
<img src="/pics/discord-small.png"/> <a href="https://discord.gg/Gwae3tNMST">Discord</a>
|
||||
</li>
|
||||
@ -28,7 +22,7 @@
|
||||
</li>
|
||||
{{ end }}
|
||||
<li class="zerostatic">
|
||||
<a href="https://www.buymeacoffee.com/rogs">🍕 Support YAMS! 🤑</a>
|
||||
<a href="https://www.buymeacoffee.com/rogs"><img src="https://img.buymeacoffee.com/button-api/?text=Support YAMS&emoji=\U0001f355&slug=rogs&button_colour=40DCA5&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 411 B |
Binary file not shown.
Before Width: | Height: | Size: 351 B |
Loading…
x
Reference in New Issue
Block a user