I want to build some type of the chatting website (like telegram or discord) just to learn a bit more about MERN tech stack.
As of right now, I have made a simple chat with socket.io, which works, but there is no chat history or even usernames.
Made the /status page actually useful, showing the time since the start and the number of active tunnels.
btw, this page helped me to detect a memory leak of the http listeners :p
Old listeners weren’t closed when their control connection dropped, so they would accumulate and crash the server.
It has been a long time since the last devlog, but I finally added some quality-of-life features.
PiRouter serves an admin webpage on a standard ip 192.168.50.1 behind the auth (default password is Admin, but don’t tell anyone). It has a number of configurations for the wifi and proxy. It also has a theme switch, but i don’t think that anyone will ever use the light theme ;p
Fixed some bugs and added a bit more configurability during the installation process.
I think that this will be my last devlog, so thanks to anyone watching this. Bye!
Designed a polygonal vector logo that resembles a marten (what a coincidence)
Built a minimalistic landing page with the Astro framework. There’s
not much here for now, but just the basic info.
I want to add http support with random address assignment, so
websites can be served on port 443 with https.
I’ve finally managed to finish the TCP tunnel part.
As always, I overengineered at least something. This time, it was the deployment. Now every push to main starts a GitHub Actions workflow that automatically builds and deploys the server. It was fun, but it took a pretty long time to
figure out CI/CD for the first time :D
Marten is a free reverse tunnel (just like ngrok) that I’m building with Go. It’s my first project in Go, so it’s also a good way to learn the language itself :p
Designed the connection process (for tcp only) and build a simple server and a client that can send messages to each other!
Big thanks to bore for inspiration on how to do this.
From now on, you don’t need an additional USB dongle for Pi Proxy Bridge to work!
Updated the installer. It now starts by asking which mode you want (virtual interface or second adapter). Then, it asks configuration questions like
I also updated the README to better explain how my project works, as well as some setup tips.
Spent two hours cooking my installer to perfection. But now we also have a logo!
The time wasn’t logged, but I spent an hour trying to find free video editing software and blur out my ip address :p
Added Xray Core and the routing rules so everything works together. Checked it with ifconfig.me. Also, I decided to automate the whole configuration process and made a bash installation script, which seems to work.
Learned a bunch of cool little bash things along the way, like set -e (which stops the script if an error occurs) or the difference between > and &>.
Installed and configured hostapd (a tool for creating a hotspot)
After setting up an access point, my phone did not connect and was just saying “Obtaining IP address”. Turns out, I also needed to install a DHCP server (dnsmasq) so it assigns different IP addresses to devices on the network.
Sketched out how my Pi Proxy Bridge works.
Raspberry Pi (4B in my case) connects to my home wifi and shares its own hotspot at the same time. Anything on that hotspot gets routed through a proxy. My separate webcam (which needs a proxy to run, but can’t start one itself) connects to the hotspot and gets a proxied internet connection.
Profit.