{"id":37600491,"url":"https://github.com/psyb0t/safe-stremio","last_synced_at":"2026-01-17T23:37:36.692Z","repository":{"id":241973208,"uuid":"805155606","full_name":"psyb0t/safe-stremio","owner":"psyb0t","description":"Safe-Stremio is your gateway to running Stremio Server and Stremio Web within a Docker container, wrapped in layers of security, anonymity, and badassery. This ain't your grandma's streaming setup—this is for digital pirates and cyberpunks who value privacy and control.","archived":false,"fork":false,"pushed_at":"2026-01-12T19:08:00.000Z","size":15,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-13T00:18:19.006Z","etag":null,"topics":["docker","docker-compose","media-center","movies-online","pirate","raspberry-pi","remote-stremio","stremio","stremio-server","stremio-ui","stremio-web","watch-movies-online","watch-series"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psyb0t.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-24T01:58:00.000Z","updated_at":"2026-01-12T19:07:43.000Z","dependencies_parsed_at":"2024-05-31T00:33:29.530Z","dependency_job_id":"0a2b1a05-48e7-4406-8b74-eb5f457d9be2","html_url":"https://github.com/psyb0t/safe-stremio","commit_stats":null,"previous_names":["psyb0t/safe-stremio"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/psyb0t/safe-stremio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psyb0t%2Fsafe-stremio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psyb0t%2Fsafe-stremio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psyb0t%2Fsafe-stremio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psyb0t%2Fsafe-stremio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psyb0t","download_url":"https://codeload.github.com/psyb0t/safe-stremio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psyb0t%2Fsafe-stremio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","media-center","movies-online","pirate","raspberry-pi","remote-stremio","stremio","stremio-server","stremio-ui","stremio-web","watch-movies-online","watch-series"],"created_at":"2026-01-16T10:02:41.274Z","updated_at":"2026-01-16T10:02:41.378Z","avatar_url":"https://github.com/psyb0t.png","language":"Shell","funding_links":[],"categories":["docker"],"sub_categories":[],"readme":"# Safe-Stremio: Your Secure, Pirate-Friendly Streaming Solution\n\nWelcome to the future of secure, decentralized streaming! Safe-Stremio is your gateway to running Stremio Server and Stremio Web within a Docker container, wrapped in layers of security, anonymity, and badassery. This ain't your grandma's streaming setup—this is for digital pirates and cyberpunks who value privacy and control.\n\n**Note:** If you encounter the \"Streaming Server is not available\" error, make sure to check the [Final Steps](#final-steps) section for instructions on how to resolve it.\n\n## Table of Contents\n\n1. [Features](#features)\n2. [Get Up and Running](#get-up-and-running)\n   - [Docker Pull Command](#docker-pull-command)\n   - [Example Docker Compose](#example-docker-compose)\n   - [Basic Docker Run Command](#basic-docker-run-command)\n3. [Configuration](#configuration)\n   - [OpenVPN Setup](#openvpn-setup)\n   - [Environment Variables](#environment-variables)\n   - [Ports](#ports)\n4. [Final Steps](#final-steps)\n5. [Nginx Configuration](#nginx-configuration)\n6. [Logging and Monitoring](#logging-and-monitoring)\n7. [Entrypoint Script: run.sh](#entrypoint-script-runsh)\n8. [License](#license)\n\n## Features\n\n- **Basic Authentication:** Protect your streaming kingdom with simple but effective access control.\n- **Rate Limiting:** Keep the brute force attacks at bay. Ain't nobody breaking in here!\n- **VPN Integration:** Your IP is your identity—keep it hidden from the prying eyes of the net with seamless OpenVPN integration.\n- **Self-Hosted Awesomeness:** Your server, your rules. Stream what you want, when you want.\n\n## Get Up and Running\n\n### Docker Pull Command\n\n```sh\ndocker pull psyb0t/safe-stremio:latest\n```\n\n### Example Docker Compose\n\nSpin up your secure streaming fortress with the following Docker Compose file:\n\n```yaml\nservices:\n  safe-stremio:\n    image: psyb0t/safe-stremio:latest\n    cap_add:\n      - NET_ADMIN\n    environment:\n      - WITH_OPENVPN=true\n      - USERNAME=user\n      - PASSWORD=pass\n    volumes:\n      - ./openvpn/config.ovpn:/vpn-config.ovpn\n      - ./openvpn/auth.txt:/vpn-auth.txt\n    restart: always\n\n  # Proxy for LAN/external access.\n  # When VPN is enabled, the safe-stremio container routes all traffic through\n  # the VPN tunnel. This breaks LAN access because responses to incoming\n  # requests try to route back through the VPN instead of the local network.\n  # This proxy runs outside the VPN container but on the same Docker network,\n  # so container-to-container traffic bypasses VPN routing entirely.\n  proxy:\n    image: nginx:alpine\n    ports:\n      - \"8080:80\"\n    configs:\n      - source: proxy_conf\n        target: /etc/nginx/nginx.conf\n    depends_on:\n      - safe-stremio\n    restart: always\n\nconfigs:\n  proxy_conf:\n    content: |\n      events { worker_connections 1024; }\n      http {\n          server {\n              listen 80;\n              location / {\n                  proxy_pass http://safe-stremio:80;\n                  proxy_http_version 1.1;\n                  proxy_set_header Host $$host;\n                  proxy_set_header Upgrade $$http_upgrade;\n                  proxy_set_header Connection \"upgrade\";\n                  proxy_set_header X-Real-IP $$remote_addr;\n                  proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;\n                  proxy_set_header X-Forwarded-Proto $$scheme;\n              }\n          }\n      }\n```\n\n### Basic Docker Run Command\n\nIf you prefer running the containers without Docker Compose (why tho?), here's how:\n\n```sh\n# Create a network for the containers\ndocker network create stremio-net\n\n# Run safe-stremio\ndocker run -d \\\n  --name safe-stremio \\\n  --network stremio-net \\\n  --cap-add=NET_ADMIN \\\n  -e WITH_OPENVPN=true \\\n  -e USERNAME=user \\\n  -e PASSWORD=pass \\\n  -v $(pwd)/openvpn/config.ovpn:/vpn-config.ovpn \\\n  -v $(pwd)/openvpn/auth.txt:/vpn-auth.txt \\\n  --restart always \\\n  psyb0t/safe-stremio:latest\n\n# Create nginx proxy config\ncat \u003e /tmp/proxy.conf \u003c\u003c 'EOF'\nevents { worker_connections 1024; }\nhttp {\n    server {\n        listen 80;\n        location / {\n            proxy_pass http://safe-stremio:80;\n            proxy_http_version 1.1;\n            proxy_set_header Host $host;\n            proxy_set_header Upgrade $http_upgrade;\n            proxy_set_header Connection \"upgrade\";\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_set_header X-Forwarded-Proto $scheme;\n        }\n    }\n}\nEOF\n\n# Run the proxy for LAN access\ndocker run -d \\\n  --name stremio-proxy \\\n  --network stremio-net \\\n  -p 8080:80 \\\n  -v /tmp/proxy.conf:/etc/nginx/nginx.conf:ro \\\n  --restart always \\\n  nginx:alpine\n```\n\n### Configuration\n\n1. **OpenVPN Setup:**\n\n   - Place your OpenVPN configuration file at `./openvpn/config.ovpn`.\n   - If your VPN requires credentials, save them in `./openvpn/auth.txt`.\n\n2. **Environment Variables:**\n\n   - `WITH_OPENVPN=true`: Enable VPN for anonymous streaming.\n   - `USERNAME` and `PASSWORD`: Set these for HTTP basic authentication.\n\n3. **Ports:**\n   - The container exposes port 80. Map it to any port on your host, e.g., `8080:80`.\n\n### Final Steps\n\nAfter firing up your container, head over to your Stremio Web UI and navigate to Settings. Under Streaming, set your server URL to `http://yourdomain:8080/stremio-server/`. This ensures your Stremio Web client talks to your self-hosted server. Now you're ready to stream like a true digital pirate.\n\n## Nginx Configuration\n\nSafe-Stremio comes pre-configured with Nginx to handle HTTP requests, including:\n\n- **Proxying Requests:** Routes `/stremio-server/` to the Stremio server.\n- **Serving Static Files:** Direct access to the Stremio Web UI.\n- **Auth and Rate Limiting:** Only legit users allowed. No spamming!\n\n## Logging and Monitoring\n\nThe container continuously monitors public IP and running processes. If your VPN drops, the container shuts down to prevent exposing your real IP. Logs are your friend; they tell you exactly what's happening.\n\n## Entrypoint Script: run.sh\n\nThe entrypoint script orchestrates everything, ensuring all services start correctly and remain protected. If anything goes south, it gracefully shuts everything down.\n\n## License\n\nThis project is licensed under the WTFPL. Do whatever the fuck you want.\n\nStay secure. Stay anonymous. Happy streaming!\n\n---\n\nThis is **Safe-Stremio**—streaming for the free spirits of the digital age. Hack the planet, one stream at a time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsyb0t%2Fsafe-stremio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsyb0t%2Fsafe-stremio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsyb0t%2Fsafe-stremio/lists"}