#

tollgate

(12 articles)

My weeks (21 + 22) in review

These weeks can be summarized in 2 words. Community building. Monday of the first week me and a Cobrador said our goodbyes to our friends in Prague and made our way towards Oslo. We met up with another contributing cobrador and the hacking was on. We've been toying with the idea of adding multi-wan for a while. In laymen terms that means automatically connecting to another router if one fails. (like how your phone auto-switches to the best available wifi). We worked on some things in parallel and I worked out a way to pay out the router's owner over lightning. First I had to solve the compilation issues i encountered earlier when adding the [gonuts](https://github.com/elnosh/gonuts) library to manage the ecash. Since, i've gained a bit more experience working with go and it was quite easy to solve. I just had to keep the code that uses this library separate from the code that uses [gonostr](https://github.com/nbd-wtf/go-nostr) (which internally uses gonuts) in order to prevent dependency hell. So that worked, and now it's possible to configure a router to do payouts. The router will keep a minimum balance to allow for upstream payments. Config location: `/etc/tollgate/config.json` ```json "profit_share": [ { "factor": 0.70, "lightning_address": "your@lightningprovider.com" }, { "factor": 0.30, "lightning_address": "tollgate@minibits.cash" } ] ``` We've been able to get in the lightning payouts before the freedom forum, something that's been on our wish-list for a long time! ## Oslo Freedom Forum The freedom forum was a unique experience. Speaking with people that don't have the freedoms we take for granted is a sobering experience and a good ego-check. There's many things people in the west do every day that in other places will be punished by destroying you and your family's lives. I mostly took in the stories and experiences of the forum, i was positively surprised with the focus on freedom tech to support human rights from a technical perspective. TollGate got a lot of attention from communities with unreliable internet connectivity which I think is a great application of TollGate. All we need to do is teach people how to build on / or install TollGate and they can without having to rely on our involvement build their own infrastructure. We'd love to get our software running on the most low-cost hardware so that we can scale the network worldwide!

My week (17) in review

![](https://cdn.hzrd149.com/c07faaccdf12cd4799c7d731a79a01e8d166f122c377c553b26aea7f2a58ca40.jpeg) I've been neglecting my weekly updates a bit. I haven't really gotten to them lately because i've been insanely busy frying my brains at #SovEng. And after that i haven't been keeping my weekly notes properly. WHICH I'm planning to pick back up now! This week/ the last couple weeks I've been doing some general planning around @tollGate's appearances on various conferences around Europe! First on the list will be Pizza Day in Prague! And from there I'll be cruising straight to @Oslo Freedom Forum! For TollGate that also means getting us set up with some T-Shirts and Stickers, though not super hard to do, it's the first time I'm doing any 'marketing' like this so I did test my own patience by properly cropping and ordering the designs. So far the stickers came out well Look at our first officially baptized TollGate! :) # TollGate Installer ![](https://cdn.hzrd149.com/15c740e876d2603c957a69981242d198a0f1c12d4c764661628b7cd7197367a1.jpeg) As we're installing versions of TollGateOS on routers quite often now I figured it'd be a good idea to streamline the experience a bit by building a [TollGate Installer](https://github.com/OpenTollGate/tollgate-installer). I've been vibecoding it mostly, and one of the things I discovered is how easy it is to make it replicate the style of another app. To stick with the theme I told it to mirror the style of our [TollGate Captive portal site](https://github.com/OpenTollGate/tollgate-captive-portal-site) and it did it perfectly! Anyway, still a lot of manual engineering is required but at least I can outsource the stuff i'm bad at. What I did improve was the GitHub workflows we use for building and publishing the OS. We publish our releases to Blossom + Nostr ([NIP-94](https://nips.nostr.com/94)). I then use those messages in the installer to get the download links. ## πŸ‘€ But which version!? I quickly ran into the issue that I didn't know which binary to install on the router i hooked up to my computer. I connect the router via lan, then I scan the network and ssh into the router, get some basic info, like the device name. BUT, the format of that device name wouldn't match any of the names we'd use in our release. For example: the router name would be `glinet,mt3000` while our release was called `gl-mt3000`. The difference may seem subtle but I can't match them. So after some discussion with the others I went on and revamped our [OS pipeline](https://github.com/OpenTollGate/tollgate-os) to properly follow the OpenWRT naming of boards/devices. The pipeline is now much more extensible, making it easier for us to add support for more hardware! ## What's next? We're aiming for a v0.0.2 release of TollGate OS by friday, incorporating some of the feedback we've gotten from our test users! Hang on tight guys! πŸ™ I'm hoping to finish an earlier version of the installer in the upcoming week as well.

My weeks (8 + 9) in review

**A couple weeks with a little bit of everything, TollGate marketing, app stability improvements, and some personal matters that needed my attention. Let's get into it:** ## TollGate App For starters, we worked hard to get an early version of the [TollGate](https://tollgate.me) website live. What do we want to communicate about the project, and to whom. We've identified three 'types' of visitor, each requiring its own 'customer journey' through the website. First there's the end-user, someone that just wants access to tollgate, but doesn't care about any of the technichalities. We try to guide those people to downloading our app as soon as possible. Currently that means downloading it straight from the website as an APK file. But we want to quickly move on to publishing it to the [ZapStore](https://zapstore.dev). The past couple weeks I put some efforts into getting the app stable. It was hard to identify what was causing the seemingly random crashes and full reloads (of the web content). After getting some outside help we've identified that we were trying to interact with the android API's on the main thread. Which is bad practice. I first couldn't figure out how to make a web request without having to spawn a seperate thread in the kotlin code, that then we'd have to create some kind of system to bubble up the callback method's result. I then found there's a proper [Tauri (the framework) way](https://tauri.app/develop/plugins/develop-mobile/) of doing this using Kotlin Coroutines, which I wasn't familliar with. But it just executes the entire Tauri 'command' (function call) on a background thread. Problem solved. I haven't had any full app crashes since. Which left me with the random page refreshes, the thing that was behind the demo-effect at Sat's and Facts. I noticed it happened around the moments I would go to settings to hit the 'sign in' button to dismiss the captive portal. That's where I had looked before, but I needed to zoom out. It had to do SOMETHING with moving the app to and from the background. Okay is it some kind of sleep issue? I don't remember where or how I found it but I saw a suggestion to run the Tauri dev build with a --no-watch flag. Which disables hot reloading of the app when I edit one of the TypeScript/HTML files. Somehow the reload would be triggered sometimes on app switching. Why? I don't know, but i'm glad I could pinpoint it. So now the demo part seems stable, finally. Which means I can move on and properly implement the wallet logic and making the download on the website work. ## TollGateOS ![](https://cdn.satellite.earth/384f994a7a8399bb65cd3bbcbef6dc15557259ebbd5958e9e83f236e5ffb1e04.png) The second customer group will be people interested in running a TollGate. We're trying to get them to download our custom build of OpenWRT that includes all the required packages. We 'baptized' this version to be called **TollGateOS** as we say in proper Dutch ;). I think it will help to have these clear distinct names. I really want any moderately technical person to be able to install TollGateOS on a supported router. My vision for this is to have some kind of web installer, akin to what GrapheneOS does with their web-installer. It seems to be possible to do SSH from the browser, but I'll kill that bird when I see it (is that a saying? I think it should be...) By the way, in earlier docs/demo's we talked about a 'herald' module, which would do the advertising of the tollgate. But as we found that the crowsnest already interacts with the hardware antennas, which is needed for 'advertising' the tollgate, we thought it better to merge both of them into the Crowsnest. ## Developers TollGate is fully open source, so anyone looking to either look at or fork the source code is welcome to do so. Developers interested at looking at the code are probably already interested to some degree. For this group we added easy links to navigate to the project's repositories Currently our focus is publishing the Android version, but we're building the app in a cross-platform way. The only thing we have to customize are the system integrations, like scanning for wifi-networks and connecting to them. ## Gearing up for Sovereign Engineering As i'm writing this piece for you i'm at 10km (that's 30.000ft for y'all Americans) in the air on my way to Sovereign Engineering edition #4, SEC-04. I feel ready to go kick ass once again and build beautiful things with a bunch of my favourite plebs! ## A bit of a focus shift If you've been following me you might notice I haven't posted much about Epoxy recently. I found the momentum I see emerge on TollGate and GitHub Actions too good to let go to waste. So those will be my focus for a while, I'm hoping to circle back to Epoxy when these projects have a more steady pace.