Compare commits
10 Commits
add-env-do
...
master
Author | SHA1 | Date | |
---|---|---|---|
fd86c86d6b | |||
d5b6cf585c | |||
ccc36c4326 | |||
cdb360dc3e | |||
0812dbeef1 | |||
a55f74bdd2 | |||
1672e76eca | |||
|
dc6c8ce332 | ||
|
e54c665574 | ||
|
085909b1d2 |
49
.gitea/workflows/deploy.yml
Normal file
49
.gitea/workflows/deploy.yml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
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 }}
|
@ -1,30 +0,0 @@
|
|||||||
image: alpine:latest
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- test
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
test_build:
|
|
||||||
stage: test
|
|
||||||
image: klakegg/hugo:0.111.3-ext-alpine-ci
|
|
||||||
script:
|
|
||||||
- hugo version
|
|
||||||
- hugo --minify
|
|
||||||
only:
|
|
||||||
- merge_requests
|
|
||||||
- master
|
|
||||||
|
|
||||||
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 -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' {} \;
|
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
|
hugo -s . -d /var/www/yams.media/ --minify --cleanDestinationDir --gc --verbose --cacheDir $PWD/hugo-cache
|
||||||
|
@ -11,6 +11,8 @@ Port forwarding helps you get better download speeds by allowing incoming connec
|
|||||||
## ProtonVPN Users 🚀
|
## ProtonVPN Users 🚀
|
||||||
ProtonVPN makes port forwarding easy! Just follow these steps:
|
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`:
|
1. Create a script to update qBittorrent's port. Make sure you change `/your/install/location`:
|
||||||
```bash
|
```bash
|
||||||
mkdir -p /your/install/location/scripts
|
mkdir -p /your/install/location/scripts
|
||||||
@ -51,6 +53,8 @@ You should see an output similar to this:
|
|||||||
## Other VPN Providers 🌐
|
## Other VPN Providers 🌐
|
||||||
For other VPN providers, port forwarding configuration varies.
|
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).
|
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 ✅
|
## Verifying Port Forwarding ✅
|
||||||
|
@ -131,6 +131,16 @@ 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
|
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
|
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 🔧
|
## Troubleshooting 🔧
|
||||||
|
|
||||||
### Common Issues:
|
### Common Issues:
|
||||||
|
137
content/advanced/wireguard.md
Normal file
137
content/advanced/wireguard.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
---
|
||||||
|
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,6 +14,8 @@ 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!
|
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
|
## First steps
|
||||||
|
|
||||||
Before we dive in, we need to do a bit of setup magic to let Plex work its charms. First, stop YAMS:
|
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:
|
Each service has its strengths:
|
||||||
- **Jellyfin**: Free, open-source, easy to set up
|
- **Jellyfin**: Free, open-source, easy to set up
|
||||||
- **Emby**: Similar to Jellyfin but with premium features
|
- **Emby**: Similar to Jellyfin but with premium features
|
||||||
- **Plex**: Most polished, but requires online account and is more complex to configure
|
- **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
|
||||||
|
|
||||||
### 8. VPN Configuration
|
### 8. VPN Configuration
|
||||||
|
|
||||||
|
@ -7,9 +7,15 @@
|
|||||||
<li class="zerostatic">
|
<li class="zerostatic">
|
||||||
<img src="/pics/yams-small.png"/> <a href="https://yams.media">yams.media</a>
|
<img src="/pics/yams-small.png"/> <a href="https://yams.media">yams.media</a>
|
||||||
</li>
|
</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">
|
<li class="zerostatic">
|
||||||
<img src="/pics/gitlab-small.png"/> <a href="https://gitlab.com/rogs/yams">gitlab.com/rogs/yams</a>
|
<img src="/pics/gitlab-small.png"/> <a href="https://gitlab.com/rogs/yams">gitlab.com/rogs/yams</a>
|
||||||
</li>
|
</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">
|
<li class="zerostatic">
|
||||||
<img src="/pics/discord-small.png"/> <a href="https://discord.gg/Gwae3tNMST">Discord</a>
|
<img src="/pics/discord-small.png"/> <a href="https://discord.gg/Gwae3tNMST">Discord</a>
|
||||||
</li>
|
</li>
|
||||||
@ -22,7 +28,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<li class="zerostatic">
|
<li class="zerostatic">
|
||||||
<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>
|
<a href="https://www.buymeacoffee.com/rogs">🍕 Support YAMS! 🤑</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
BIN
static/pics/gitea-small.png
Normal file
BIN
static/pics/gitea-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 411 B |
BIN
static/pics/github-small.png
Normal file
BIN
static/pics/github-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 351 B |
Loading…
x
Reference in New Issue
Block a user