Stremio Server με Docker και Proton VPN

Σε αυτόν τον οδηγό θα δούμε πως μπορούμε να φτιάξουμε έναν Stremio Server για να κατεβάζουμε - βλέπουμε το αγαπημένο μας περιεχόμενο και όλα αυτά πίσω από το αγαπημένο μας VPN (Στην περίπτωση μου το Proton VPN).

Disclaimer

Αυτός ο οδηγός γίνεται καθαρά για εκπαιδευτικούς σκοπούς. Η πειρατεία είναι παράνομη, αλλά τουλάχιστον είναι πιο ενδιαφέρουσα και πίσω από απομωνομένες εφαρμογές όπως το docker είναι ασφαλέστερη:
  1. Κυρίως για τα δεδομένα μας μιας και οι εταιρείες πίσω από τις συνδρομητικές υπηρεσίες δεν πουλάνε τα δεδομένα μας, παρόλο που πληρώνουμε συνδρόμη
  2. Είναι σε απομωνομένο περιβάλλον, με αποτέλεσμα να μένουμε περισσότερο ασφαλείς από malware κτλ (ΠΡΟΣΟΧΗ ΠΑΝΤΟΥ!!! ;-) )
  3. Και το σημαντικότερο, ΜΑΘΑΙΝΟΥΜΕ ΑΠΟ ΤΗΝ ΔΙΑΔΙΚΑΣΙΑ…

Και αφού έβγαλα τον ωχετό μου για τις streaming υπηρεσίες. Ας ξεκινήσουμε με τα απλά...

Ποιος ο λόγος για να μπούμε σε αυτή την ταλαιπωρία;

Ο λόγος είναι να έχουμε ένα στάθερό σημείο να συνδεόμαστε, είτε στο σπίτι, είτε εκτός (θα δώσω ιδέα για αυτό, αλλά μιας και δεν με ενδιαφέρει, δεν θα το καλύψω!!!).
Το πρόβλημα μου ήταν πως ήθελα ένα σημείο για να συνδέομαι στο σπίτι, χωρίς να χρειάζεται κάθε φορά να μετακινώ το Laptop, χωρίς κάθε φορά να ανοίγω το VPN και χωρίς κάθε φορά να ψάχνομαι πως να συνδεθώ με αποτέλεσμα να βαρίεμαι και να μην βλέπω αυτό που θέλω.

Οι πρώτες απόπειρες και οι λόγοι που δεν λειτούργησαν(για εμένα τουλάχιστόν

Στην αρχή σκέφτηκα να βάλω ένα Router συνδεδεμένο με του ISP και να βάλω το VPN always on αλλά είχα 2 προβλήματα σε αυτό.
  1. Είμαι πίσω από CGNAT και δεν μπορούσα με τίποτα να πετύχω την δρομολόγηση.
  2. Και να μπορούσα να πετύχω την δρομολόγηση, έχω ένα παλίο router που δεν θα μπορούσα να τρέξω GBit ταχύτητες.
  3. Έχοντας ένα δίκτυα μόνο για το VPN σημαίνει πως θα είχα ακόμα ένα WiFi στο σπίτι με περιορισμένη ταχύτητα και θα έπρεπε να συνδέομαι σε αυτό κάθε φορά που θα ήθελα να δώ κάτι.

Το πρόβλημα είναι προφανές λοιπόν... βαρίεμαι ευκολά, αλλά επίσης μου αρέσει να παίζω

Τι χρησιμοποιήσα…

  1. Για την διανομή χρησιμοποιώ το Ubuntu 24.04 αλλά όποια διανομή και να θέλετε, μας κάνει.
  2. Docker και docker compose
  3. Proton VPN (Έχω το πληρωμένο αλλά φαντάζομαι ότι και το απλό κάνει, απλά η ταχύτητα δεν είναι ίδια)
  4. Καλή διάθεση
  5. Κάποια στιγμή θα το κάνω σε κάποιο Mini PC, γιατί τώρα το τρέχω στο main PC μου.

Η εγκατάσταση

Για την εγκατάσταση θα χρειαστεί να κάνουμε εγκατάσταση το Docker και το docker compose. Ο οδηγός του Docker είναι πάρα πολύ καλός, απλά επίλέξτε την διανομή σας και κάνετε την εγκατάσταση.

Προσωπικά πάω και στο post-installation για να τρέχω το docker χωρίς sudo…
Δεν αλλάζει κάτι, και χωρίς το παρακάτω θα γίνει η δουλεία μας

Έπειτα θα χρειαστεί να κάνουμε εγκατάσταση το docker-compose πακέτο με την εντολή
Και αυτό δεν ειναι απαραίτητο αλλά μας κάνει την ζωή πολύ πιο εύκολη και δεν τρέχουμε μια ατελείωτη εντολή στο τερματικό μας σαν μανιακοί αλλά από κάποιο yml αρχείο.

$ sudo apt-get install docker-compose

Μόλις όλα τα έχουν εγκατασταθεί θα χρειαστέι να δημιουργήσουμε ένα WireGuard configuration…
Αυτό είναι σχετικά εύκολο.

Συνδεόμαστε στο Proton VPN προφίλ μας και στο Downloads,

  1. δίνουμε ένα όνομα στο config πχ Stremio_server
  2. Επιλέγουμε την Πλατοφόρμα μας GNU/Linux
  3. Επιλέγουμε τον Level for NetShield (Εγώ επέλεγα malware και ads)
  4. Αν ο σερβερ μας κάνει, επίλέγουμε create, αλλιώς, επιλέγουμε τον server της επιλογής μας και έπειτα create…

Αυτο που μας ενδιαφέρει εδώ είναι το private key που αντιγράφουμε, αλλά κατά την απόψη μου… πατά το, το download… δεν χάθηκε και ο κόσμος

έπειτα σε ένα τερματικό, φτιάχνουμε ένα νέο φάκελο

$ mkdir stremio-docker
Δεν μας ενδιαφέρει που θα γίνει ο φάκελος, απλά να έχουμε δικαιώματα… Εμένα μου αρέσει να έχω ξεχωριστό φάκελο

~/Documents/dockers/
Μέσα σε αυτόν τον φάκελο θα δημιουργήσουμε ένα αρχείο με το όνομα docker-compose.yml

$ touch docker-compose.yml

έπειτα, θα μπούμε σε αυτό (nano of course…)

$ nano docker-compose.yml

και θα γράψουμε τα παρακάτω…

version: "3.7"

services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
cap_add:
- NET_ADMIN
environment:
# To configuration για Proton VPN και Wireguard
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=wireguard
# To private key πάει εδώ
- WIREGUARD_PRIVATE_KEY=*****
# Η χώρα που επέλεξα ήταν στην Ισπανία… Αλλάξε την στην Δική σου
- SERVER_COUNTRIES=Spain
- FIREWALL=on
# Αφήνουμε τις πόρτες στο firewall για το Stremio
- FIREWALL_VPN_INPUT_PORTS=11470,12470
# What is your time zone??? Probably GR
- TZ=Europe/Athens
ports:
- 11470:11470
- 12470:12470
restart: unless-stopped

stremio-server:
image: stremio/server:latest
container_name: stremio-server
# Χρησιμοποιούμε μια ρύθμιση δίκτυου για το Stremio
network_mode: “container:gluetun”
volumes:
# Προαιραιτικό… Αν θέλεις να αποθηκέυονται οι ρυθμίσεις
- ./stremio-data:/root/.stremio-server
restart: unless-stopped

Έπειτα ακολουθεί η εντολή που θα φτιάξει το docker μας
Προσοχη

  1. αν δεν έκανες το post installation στο docker, βάλε το sudo μπροστα
  2. Πρέπει να είμαστε μέσα στον φάκελο με το docker-compose.yml
    **$ docker compose up -d **

Περιμένουμε λιγάκι καιιιιι
μπούμ…

Λογικά, αν μπεις σε κάποιο browser και πατήσεις

https://localhost:11470

Θα πρέπει να δείς τον server σου…

Αλλά περίμενε λιγάκι…
βεβαιώσου πως η IP είναι μέσω του VPN

$ docker exec -it stremio-server curl ifconfig.me

Με την εντολή

$ hostname -I

ή

$ ip addr

Θα βρείς την IP του υπολογιστή σου… Δοκίμασε λοιπόν να δεις αν μπορείς να συνδεθείς και από κάποιο άλλο PC η κινήτο…


Είναι από KVM αλλά κάνει την δουλέια του

Τελευταίο δωράκι…

Μου αρέσει πολύ η εφαρμόγη του Stremio όποτε:

$ flatpak install flathub com.stremio.Stremio


Όπως βλέπουμε, η εφαρμογή παίζει με τον server μας

Αυτή ήταν η εγκατάσταση…

Μετά από εδώ μπορούμε να πειραματιστούμε με HTTPS - SSL ή απλά αν θέλουμε μόνο έμεις πρόσβαση, το tailscale, μπόρει να βοηθήσει…

Θα τα πούμε στην επόμενη στάση που θα σκεφτώ…

Καλή συνέχεια και καλή οπτικοακουστική χαλάρωση…

4 «Μου αρέσει»

Τι διαφορά έχει το streaming απο το κατέβασμα δεδομένων από P2P,torrent
Είναι λιγότερο/περισσοτερό νόμιμό??
Μας έχει τρελανεί η χουντα μητσοτακη ότι αν κατεβάσουμε μια ταινια με torrent θα μας έρθει πρόστιμο 700 ευρω

2 «Μου αρέσει»

Δεν ειναι πιο νομιμο αλλα δεν αφήνει πίσω σημαδια, όπως αρχεια κτλ…

Σιγουρα στα πάντα θέλει VPN πλεον… απο καιρο ηθελε αλλα οσο στενευει ο κλυος, τόσο θα ξεφευγουμε… πιστευω ειμαστε πολυ κοντα στο Tor πλεον…

Νομίζω, πλεον ειναι χρέος μας προς την κοινωνια να μην αφήνουμε τα δεδομενα μας απο εδω και απο εκει…

1 «Μου αρέσει»

“Για τα λεφτα τα κανεις ολα” οπως λεει και το τραγουδι. Business as Usual :slight_smile: και αφηστε τον λαουτζικο να ψαχνεται να βρει 700αρια για κατι που θα επρεπε να ειναι τσαμπα :slight_smile:

-----------Αρχη rant-----------
Εδω στον Καναδα για να δεις ΕΡΤ1 πρεπει να κανεις συνδεση μεσω network-manager σε SSH serverακο στην Ελλαδα μπας και σταματησουν τις geolock παπαριες τους.

Ρε ποιος ξενος θα θελησει να δει ΕΡΤ; Μονο οι ξενιτεμενοι του εξωτερικου που θελουμε να ακουσουμε λιγα ελληνικα το θελουμε απο εδω και δεν γινεται νομιμα. Για αλλα καναλια ουτε κουβεντα… το μεγα χαος.

Η απολυτη τρελα με το streaming. Λες και θα τους φαμε το φαι αν δεν μας χρεωνουν τα τρελα τους ποσά για ενα TCP connection το κεφαλι τους μεσα για να δουμε λιγη ΕΡΤ ρε παιιδια… και μετα μας λενε και πειρατες. Οχι ρε νταβατζιδες των Ερντζιανων… ξενητεμενοι ειμαστε. Μας λοιπει η πατριδα ρε… δεν ειμαστε βοιδια. Ελληνες ειμαστε. Οχι προιοντα.
-----------Τελος rant-----------

6 «Μου αρέσει»

Ωραία υποστηρίζουμε τους απανταχού Έλληνες.

Ευχαριστούμε πολύ @giannisjv για τον ωραίο οδηγό!!!

4 «Μου αρέσει»

btw, υποστηρίζει αρκετά άλλα vpn ως client, ακόμα και mullvad, περισσότερα παραθέτω απάντηση από perlpexity :


Η εικόνα Docker qmcgaw/gluetun συνεργάζεται πολύ καλά με το Mullvad VPN. Υποστηρίζει τόσο το πρωτόκολλο WireGuard όσο και το OpenVPN. Για να τη χρησιμοποιήσεις, χρειάζεται να ορίσεις μερικές βασικές μεταβλητές περιβάλλοντος, όπως:

  • VPN_SERVICE_PROVIDER=mullvad

  • VPN_TYPE=wireguard (αν θέλεις WireGuard)

  • Τα κλειδιά WireGuard που σου δίνει το Mullvad (WIREGUARD_PRIVATE_KEY, WIREGUARD_PUBLIC_KEY)

  • Τις διευθύνσεις IP που θα χρησιμοποιούνται (WIREGUARD_ADDRESSES)

  • Το IP και το port του endpoint (VPN_ENDPOINT_IP, VPN_ENDPOINT_PORT)

  • Την τοποθεσία του server (π.χ. SERVER_CITIES=stockholm)

Αυτή η ρύθμιση επιτρέπει στην εικόνα να συνδεθεί με το Mullvad μέσω του WireGuard και να δρομολογήσει την κυκλοφορία που τρέχει μέσα στο container με ασφάλεια. Επιπλέον, μπορείς να χρησιμοποιήσεις μαζί υπηρεσίες proxy που παρέχει η Gluetun, όπως HTTP ή Shadowsocks, αν θέλεις να μοιράζεσαι την σύνδεση VPN με άλλα containers ή εφαρμογές.

Συνοπτικά, το Gluetun με Mullvad είναι μια σταθερή και ευέλικτη λύση για VPN μέσα σε Docker περιβάλλον.


Και να παραθέσω ελαφρά παραλαγμένο docker compose script για χρήση με mullvad

version: "3.7"
services:
  gluetun:
    image: qmcgaw/gluetun
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    environment:
      # Ρύθμιση για Mullvad VPN με WireGuard
      - VPN_SERVICE_PROVIDER=mullvad
      - VPN_TYPE=wireguard
      # Εδώ βάζεις το WireGuard private key από Mullvad
      - WIREGUARD_PRIVATE_KEY=*****
      # Επιλογή χώρας / διακομιστή Mullvad, π.χ. Sweden, Germany, κλπ.
      - SERVER_COUNTRIES=Sweden
      - FIREWALL=on
      # Παράδειγμα ανοιχτών ports για stremio
      - FIREWALL_VPN_INPUT_PORTS=11470,12470
      # Ρύθμιση ζώνης ώρας
      - TZ=Europe/Athens
    ports:
      - 11470:11470
      - 12470:12470
    restart: unless-stopped

  stremio-server:
    image: stremio/server:latest
    container_name: stremio-server
    network_mode: "container:gluetun"
    volumes:
      - ./stremio-data:/root/.stremio-server
    restart: unless-stopped

Αν και θα πρότεινα τη χρήση portainer και σε stack αλλά αυτά είναι γραμμένα σε άλλο νήμα :face_savoring_food:

2 «Μου αρέσει»

Nice…. Φαντάζομαι καθε VPN μπορεί να παιξει… και αυτό ειναι το όμορφο κομματι…Έμενα πάντως με έχει βολέψει με το Proton αλλα θα ήθελα να το δοκιμάσω και με VPN φίλων ΚΤΛ…

1 «Μου αρέσει»

Καλημερα σας. Να ρωτησω εγω ο ασχετος με την πληροφορικη, εχω το proton vpn το απλο, απο 300 αρα που εχω μου την κατεβαζει στα 50. Οταν ανοιγω το kodi δεν με καλυπτει? Χρειαζετε να κανω κατι αλλο? Ευχαριστω εκ τον προτερων

Καλησπέρα φιλε, όταν λές το απλό εννοείς χωρίς πληρωμή?

Καλησπερα φιλε το δωρεαν

@Vas

Και εγώ 300 έχω ενεργοποιημένη. Επίσης χρησιμοποιώ protonvpn free.

Η πτώση με τη χρήση vpn -αν είναι ακριβής η μέτρηση- απολύτως εξωφρενική.

Οι ενδείξεις που έχω είναι 310-337 χωρίς vpn και 270-292 με vpn ενεργοποιημένο.

Σε τι μπορεί να οφείλεται η μεγάλη πτώση στην περίπτωσή σου; Πολλοί οι παράγοντες που επηρεάζουν την απόδοση. Με τυχαία σειρά, συνδυαστικά ή μεμονωμένα:

Ρύθμιση τοπικού δικτύου, ρούτερ, ρυθμίσεις υπολογιστή, σύνδεση στο protonvpn με wireguard ή openvpn, πάροχος, ενσύρματη ή ασύρματη σύνδεση και βελτιστοποίηση αυτών κ.α.

Τι μπορείς να κάνεις; Τίποτα γιατί δηλώνεις άσχετος με πληροφορική (πόσο μάλλον με δίκτυα) και μπράβο που το θέτεις εξ αρχής.

Τι σε συμβουλεύω να κάνεις; Τίποτα. Άστο όπως είναι.

Αν είσαι ικανοποιημένος με το stream μέσω kodi, δεν έχεις κανένα λόγο να αρχίσεις το σκάλισμα.

1 «Μου αρέσει»

Στο Free plan του Proton VPN βλέπω αυτά:

  • 333 servers in 5 countries

  • No ads

  • Unlimited volume/bandwidth

Για αρχή, δοκίμασε να αλλάξεις χώρα, στο VPN, από την λίστα με τους διαθέσιμους servers.

2 «Μου αρέσει»

Οι servers του free plan “καργάρουν” πολύ γρήγορα. Γιαυτό και είναι σε ένα μόνιμο roll-phase.

Φάση του τύπου now you see me now you don’t.

Σίγουρα όμως είναι μια καλή ιδέα. Μέχρι να μην είναι.

1 «Μου αρέσει»

Ευχαριστω για τον χρονο σας να μου απαντησετε οταν ειμαι στον υπολογιστη εχω 303 χωρις vpn και 250 χωρις. Οταν παω στο tv box στην tv εχω 130 χωρις και 50 με vpn ενσυρματα απο το ρουτερ. Στο ρουτερ πανω εχει μια εξοδος με 300 που παει στον υπολογιστη και αλλες 3 με 100. Παντως για streaming που το θελω μια χαρα μου ειναι

2 «Μου αρέσει»

Νομίζω γενικά είναι θέμα υπερφόρτωσης του σερβερ τους, δοκίμασε κάποιον άλλον… Εγώ αποφάσισα να το πληρώσω γιατί με το ζόρι έβλεπα 720p και έχω 300 ταχύτητα και WIFI 6

1 «Μου αρέσει»