I'm Yassine đź‘‹, your Fullstack Engineer based in Belgium. Navigating the realms of web and mobile innovation, I specialize in architecting optimized and high-quality software solutions. With a passion for unraveling real customer challenges, I am committed to delivering practical, business-aligned solutions.
Let's embark on a journey to build something truly amazing together!
Introduction Ever wished you could route all your devices’ traffic through a single, secure VPN—without jumping through too many hoops? Meet Tailscale, a powerful yet user-friendly VPN service that easily links all your devices under one private network. In this guide, we’ll pair Tailscale with Gluetun on a VPS, creating a robust setup that routes your entire connection securely through another VPN provider. Prerequisites Make sure you have the following on hand before you start: A Tailscale account A VPS running Docker (no worries, we won’t use this VPS as an exit node; it’s just your secure hub) Recommendation: Hetzner offers excellent performance at a great price. (This is an affiliate link.) A VPN provider account (we’ll use Gluetun for this guide) Recommendation: Windscribe is a reliable, privacy-focused VPN provider. (This is an affiliate link.) Step-by-Step Instructions 1. Install Docker and Docker Compose on Your VPS First, install Docker with a handy one-liner, then add your current user to the Docker group: curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER 2. Use This Docker Compose Configuration Create a docker-compose.yml with the following content. This configuration pulls in Gluetun for VPN functionality and Tailscale for seamless, private networking. Tailscale will advertise itself as an exit node, allowing you to route all traffic through it. volumes: ts-data: services: # For additional VPN service providers, see: https://github.com/qdm12/gluetun-wiki gluetun: image: qmcgaw/gluetun restart: unless-stopped container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun environment: - VPN_SERVICE_PROVIDER=${PROVIDER} - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${VPN_PRIVATE_KEY} - WIREGUARD_ADDRESSES=${VPN_ADDRESSES} - WIREGUARD_PRESHARED_KEY=${VPN_PRESHARED_KEY} - SERVER_REGIONS=${SERVER_REGIONS} tailscale-vpn-exit-node: image: tailscale/tailscale:latest container_name: tailscale-vpn-exit-node network_mode: service:gluetun environment: - TS_AUTHKEY=${TAILSCALE_AUTHKEY} - TS_EXTRA_ARGS=--advertise-exit-node # or --advertise-tags=tag:vpn - TS_STATE_DIR=/var/lib/tailscale - TS_HOSTNAME=vpn-${SERVER_REGIONS} volumes: - ts-data:/var/lib/tailscale devices: - /dev/net/tun:/dev/net/tun cap_add: - NET_ADMIN - NET_RAW restart: unless-stopped depends_on: gluetun: condition: service_healthy 3. Spin It All Up Fire up your new setup: docker-compose up -d 4. Connect Your Devices Install Tailscale on each device you want to secure. In the Tailscale admin panel, enable your newly created exit node. Connect to Tailscale—now your traffic will be safely routed through Gluetun. 5. Bask in Secure Browsing That’s it! Your devices are now shielded behind Gluetun’s VPN, with Tailscale delivering a seamless private connection experience. Browse, stream, and work securely on any network. Conclusion By pairing Tailscale and Gluetun, you’ve built a reliable, encrypted path for all your internet traffic. No complicated configurations or manual networks—just straightforward, powerful privacy. Further Reading tailscale hetzner windscribe gluetun-wiki
December 31, 2024 • 2 min read • 399 words
Introduction This article will show you how to monitor a website for changes. This is useful if you want to be notified when a website changes, for example, when a new blog post is published, a black friday sale starts, or an item is back in stock. Prerequisites A Telegram account An ubuntu server with Docker installed Docker compose installed Steps 1. Create a Telegram bot Open Telegram and search for @BotFather Send /newbot to @BotFather Enter a name for your bot Enter a username for your bot Copy the token that @BotFather gives you 2. Create a Telegram chat Open Telegram and search for @userinfobot Send /start to @userinfobot Send /my_id to @userinfobot Copy the chat id that @userinfobot gives you 3. Create a Docker compose file On your ubuntu server, create a file called docker-compose.yml with the following content: version: "3.9" volumes: data: services: changedetection: image: dgtlmoon/changedetection.io:dev container_name: changedetection hostname: changedetection volumes: - data:/datastore environment: - PORT=5000 - PUID=1000 - PGID=1000 - WEBDRIVER_URL=http://browser-chrome:4444/wd/hub - PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000/?stealth=1&--disable-web-security=true - BASE_URL=http://localhost:5000 restart: unless-stopped ports: - 5000:5000 browser-chrome: hostname: browser-chrome image: selenium/standalone-chrome-debug:3.141.59 environment: - VNC_NO_PASSWORD=1 - SCREEN_WIDTH=1920 - SCREEN_HEIGHT=1080 - SCREEN_DEPTH=24 volumes: - /dev/shm:/dev/shm restart: unless-stopped playwright-chrome: hostname: playwright-chrome image: browserless/chrome restart: unless-stopped environment: - SCREEN_WIDTH=1920 - SCREEN_HEIGHT=1024 - SCREEN_DEPTH=16 - ENABLE_DEBUGGER=false - PREBOOT_CHROME=true - CONNECTION_TIMEOUT=300000 - MAX_CONCURRENT_SESSIONS=10 - CHROME_REFRESH_TIME=600000 - DEFAULT_BLOCK_ADS=true - DEFAULT_STEALTH=true 4. Start the Docker containers On your ubuntu server, run the following command to start the Docker containers: docker-compose up -d 5. Add a website to monitor Open a web browser and navigate to http://localhost:5000 Paste the URL of the website you want to monitor in the URL field Click Edit > Watch Under time between checks, select your preferred interval Under the Request tab, set Fetching method to Playwright Chromium/Javascript via 'ws://playwright-chrome:3000/?stealth=1&--disable-web-security=true' and Wait seconds before extracting text to a number higher than 15 Under the Notifications tab, enter the Telegram chat id and token you copied earlier as the following format: tgram://<token>:<chat-id> Click Save You should now receive a notification when the website changes. Conclusion In this article, you learned how to monitor a website for changes. This is useful if you want to be notified when a website changes, for example, when a new blog post is published, a black friday sale starts, or an item is back in stock. Resources changedetection.io
November 28, 2022 • 2 min read • 386 words
Website created by Yassine Fathi © 2024