The Story Of Street Scrapbook

~ Beck

I moved back to NYC last Summer, and moved into my current apartment in Crown Heights last October, right around the time that I applied to this SFPC class. I had been living for the last five years in San Diego and one of the things that I missed the most about NYC is the chaotic intimacy of life here. I missed being able to walk to see friends, I missed the sidewalks crowded with strangers, and I missed the overflow of stickers, flyers, and messages that adorn the streets.

As I was sorting the recycling one day, I noticed that someone had etched "Abolition Now!" into the wet concrete outside my apartment. A few days later, I saw stickers of Luigi Mangione as a saint on a telephone pole outside the grocery store. Suddenly I started to see the dialogue in the neighborhood everywhere. "Gaza" with a heart around it, inscribed with white-out on a bike rack. A message about class solidarity written with a marker on a vacant storefront, including the declaration, "there are more of us than them!". Paint on a metal box that reminds us to, "imagine a world of abundance." My neighbors are leaving messages for each other with any means necessary on any available real estate. Often the messages disappear a few days later.

Seeing these messages helps me feel at home, and helps me feel connected to my neighbors.

At the same time that I was starting to document these messages, and while this class was starting, the second Trump administration was taking over in the US, supercharging cultural erasure at home and abroad. Educational lessons, books, even words that are claimed by people who I love are being systematically eliminated from websites, schools, courts- efforts that have been underway for some time but never, in my lifetime, moving with such speed and reach. So, while talking to classmates one day, we came up with the smallest of small, poetic gestures: what if I saved these images and shared them in a way that would only be accessible to people in my physical neighborhood?

I wanted to come up with a project for Solidarity Infrastructures that was a reasonable technical stretch for me, that would allow me to learn some new things, and that I could apply to other situations in the future. By speaking with my classmates and with Max and meghna, I decided to try to host these images on a simple gallery page that would only be accessible to people who were within physical range of the router. Max suggested that an elegant way for people to access the images would be through captive portal. That way, someone would simply click onto the router wifi and then be served a page with the images on it. I liked that this meant that the people accessing the images would need to be nearby. After doing some research, I came across this tutorial from Sneha Belkhale that seemed like a version of what I wanted to be able to setup. While they set up their router to serve a chat function via captive portal, I wanted to setup mine to serve a gallery of images of the writing around my neighborhood. I wanted my router to be able to serve a web page gallery from my server, without being on the internet. From reading around online, I decided to get a gli.net Opal travel router with OpenWRT installed on it.

\nFirst steps–

I set up the router and accessed the admin panel through my browser. I named the wifi "street scrapbook" and set it to be open, with no password. While older versions of the admin interface had a captive portal option, this new version did not, which would make my work slightly harder. Instead, I had to add captive portal to my router via a plugin called nodogsplash. This was one tutorial that Dean sent me about it. After installing it, when I would select the wifi from my router, it would give me the default nodogsplash splash page, which is delightfully retro.

ssh into my router–

After installing nodogsplash in the gli.net admin panel, I turned on good cloud in the gli.net panel, made an account for myself in good cloud, and added my router as a 'bound device' on good cloud. I could then ssh into my server via goodcloud. I used some of these commands to navigate around (also sent by Dean, thank you Dean!) and I used vi to make my first change to the splash.html file. vi - what a scary text editor. I cannot explain how satisfying it was to make these extremely minor changes. Max later showed me that I could run opkg install nano, and then use nano to edit the file, which was much easier.

While I had initially wanted to redirect the captive portal to web page hosted on my server, (that way I would have more storage space) I also wanted to get a proof of concept done before the class was over, so I decided to just edit the splash.html file.

To make that easier, I wanted to try to ssh into the router from my laptop terminal, rather than via goodcloud (that way I could add images from my computer onto the splash page). I opened terminal and typed ssh root@[IP address of my router] and was asked for the password to my router. It then gave me some scary weird text and I was like AH. Max told me to input ssh-keygen -R routerip which seemed to work. Then I was able to ssh into my router from terminal on my laptop!

Editing splash.html–

Okay, so, I needed to edit the splash.html file to have some of the images from my neighborhood walks. First, I put together a folder on my desktop with the images that I wanted to copy over (and double checked that they were small enough to not max out my router's storage). I opened a separate terminal window and used scp [image file name] root@[router IP]:/etc/nodogsplash/htdocs/images to transfer the images onto my router. I had to input the server password.

Back in my router's terminal window, I used ls command to check if the images had been added to the images folder. Next, I used nano to edit the splash.html page to include my new images. I checked the page on my phone as was filled with ABSOLUTE GLEE to see that the splash page was now serving photos from my neighborhood walks.

Getting the router to work offline–

One last step (for now). I wanted to get the router to work without internet connection. This way, I can plug the router into an outlet near my front window, and people out on the sidewalk could join visit the page. I also think this could have exciting future applications, of essentially having a portable router that can serve custom content to people nearby on the go with a battery pack. This is where Sneha's tutorial was really helpful. I ran the three commands that they recommended and it WORKED.

I took the router off of my home internet and moved it near my apartment's front window, and when I walked outside I was able to join the network and be served the captive portal page with the 'scrapbook'. I later got my roommate to check it on their phone, and we brainstormed other images to add or applications for the project.

Next steps–

An extra big thanks to Max for the office hours guidance, code recipes and encouragement, to meghna for feedback and brainstorming, to Dean for being a troubleshooting text buddy as we tried to persevere through this open source landscape as well as my NYC pod and classmates for the big grounding and creative energy during this time. If you're reading this and want to get in touch, please do! My contact information is at rhaberstroh.com :) Happy hacking, all!