Our site accesses
Published: 2024-08-19
Just out of curiosity, this is a plot of connections to the domains hosted here:Some considerations: the numbers represent succesfull connections to my server, that is a TLS handshake.
Welcome to this great block of text that organicaly fills your screen, but do not see it as an opaque, solid and hard wall. This is a way to present ideas, and thus is ephemeral, transparent and always changing. For a world where thoughts run free, with less boundaries, a wallless world.
Yet, this is just another blog on the internet, this one is brought to you by Brian Mayer. I hope you find something interesting or funny. Posts receive responses by email, you can find their reply link on a post's dedicated page on the archive. Check my portfolio for more info about me or to see my other projects: terminal.pink.
See all in our RSS feed: archive.
All work found here is licensed under CC BY 4.0.Published: 2024-08-19
Just out of curiosity, this is a plot of connections to the domains hosted here:Some considerations: the numbers represent succesfull connections to my server, that is a TLS handshake.
Published: 2024-07-08
Published: 2024-04-22
Just wanted to share that a project of mine, astro, has reached 50 stars! That's my project with most stars at this moment, I'd like to thank all contributors, stargazers and people that helped the project reach this cool milestone.I'd like to reiterate that the astro project is under development, and well maintained by me and open source contributors. Looking ahead I plan to add more features such as:
And of course, listen to users' feedback and implement desired features. So if you want a feature feel free to open an issue and comment.
Thank you!
Published: 2024-02-26
Another adventure have started: I'm builing my own distro! I'm not sure about the motivations as it started naturally from my fidlings with OSs. Some of the things I remember are:Turns out there is a cool project called buildroot that makes building a minimal linux system very easy. So I used it to create the linux kernel and userspace programs for a RPi 3B+ I had lying arround.
The result was a system that does the minimum: boots the linux kernel without initrd directly from the RPi bootloader, it then runs a simple shell script as init and drops to a shell.This system is taking only 22MiB of RAM, which 14 are cache, and 500MiB of disk, which 470MiB are for git binaries. I am very happy. Obviously there are drawbacks: no module hotplugging, this gave me a headache as my keyboard needed a kernel module, it took me a day to figure this out. I tought this was the kernel's job.
So far I'm having a great time learning, turns out there is a lot of details we usually don't need to know. For example, firmware, which for the RPi is a must: in order to load the brcmfmac module its firmware must be present in the correct place. If not whenever you modprobe it you'll get a subtle timeout error.
Luckly buildroot also facilitates this, just select the corresponding option in firmware section. The next steps are now building sbase, ubase and sdhcp. I also included a tiny c compiler so I can compile the rest of the system.
So far this is the init script:
#!/bin/dash echo "Init started" export PATH=/usr/bin:/bin:/sbin:/usr/sbin mount -n -o remount,rw / mount -t devfs /dev /dev mount -t proc /proc /proc mount -t sysfs /sysfs /sys mount -t tmpfs /tmpfs /run modprobe hid-apple modprobe brcmfmac agetty -n --login-program /bin/dash tty1 shutdown -h
There is too much to do, still. I'll keep you posted.
Published: 2024-01-21
A friend of mine is launching, according to his words:The #1 Underground & Vendor Neutral Security Conference in Brazil, which will host a conference this year!
These are the links:
Looking forward to it.Published: 2023-12-19
Published: 2023-11-05
Bytes is a new series os posts that are starting today. sometimes I notice or think funny things, so I decided to publish them. Here it is for today:I was watching Monk and there is one scene that a boy coughts near Monk. The funny part is that this boy only shows up in that scene, so I wanted to watch the episode's credits just to see that.
This is the scene the coughing boy shines on his participation:
and the credits screen:
another great episode.
Published: 2023-10-19
It is usable 97% of the time, this 3% is related to a weird bug with the keyboard, the touchpad and screen sharing, video calls; but I'll explain. My current setup is Arch linux with DWM. Here are some points:please if you know how to solve any issue i found please reply this post. thanks!
Published: 2023-10-13
this time i'll add descriptions, per my last feedback.
Published: 2023-03-31
here we go again...
Published: 2023-03-30
In this post I will talk a little about my workflow for publishing content. I find it quite simple and therefore decided to share it with you.
The first part is to know the infrastructure that I built for my server. My blog and homepage resides on my Raspberry Pi Zero W which is connected to my router with a small USB cable to receive power. And the router is connected to a UPS. This part was done this way because I wanted to venture into the world of hosting. And I liked the results, but it is much easier to pay for a VM in any cloud.
Some optional things that I decided to have, and with great difficulty, were:
In the server, I decided to use static pages, so servrian only works for that case. For the articles, I just write them in HTML.
The code part is not complicated and can be even easier when using ready-made projects or pre-configured Docker images. Here I wanted to do everything from scratch for two reasons: 1. to learn how the many parts work internally, and 2. to create a lighter version than current projects.
It's this second point that I'm most proud of, everything is very light and efficient: the blog's homepage has 2700 bytes and loads in 80ms, it's valid and simple HTML, my portfolio, the page above the blog, has 575 bytes; this allows the project to be served from my Raspberry Pi Zero W, which only needs 5V to operate. In addition, it still loads other projects like my Git and email server.
These are the difficulties you may encounter if you decide to venture down this path, at least here in Brazil. I hope I've helped in some way. I say it's worth it if you value extreme simplicity, like to do things your way, and want to get away from the dependence of the infamous big techs, libraries or frameworks, and above all, learn a lot.
Published: 2023-02-21
Setting up a git server is easy, and involves only common shell commands, this post will show you how I started my very first self-hosted git server. find one extra computer and set up a SSH connection to it, then you are ready to start. here I used my raspiberry pi, which is always up [1].
To setup the git server you should do the following on the server machine:
This step is just sudo useradd -m git, no secret here. now log in this user.
This part is the creation of the authorized_keys, so you can SSH in with this user. Basically you just add the allowed public keys here. In my case I just copied from my main user, but the ideal case is creating another key and adding that to the git server.
mkdir .ssh cat new-key.pub > .ssh/authorized_keys chmod 600 .ssh/authorized_keys
Now you should be able for SSH into your git machine using the key you added.
This step is optional but I like creating a dedicated folder for my projects, so I ran: mkdir git, and entered it.
Another cool thing to do is to change the default git branch:
git config --global init.defaultBranch main
This is the command that creates a repo on the server, so you can push to this repo. To create it first create a folder, and then issue the init command:
mkdir project cd project git init --bare
At this stage you have a fully functional git repository, to use it you proceed as you do for new repos.
Now in your other machine you can init a repo and push:
cd project git init git add . git commit -m 'Initial commit' git remote add origin git@:git/project git push origin main
You can stop here if you want, but in this state there are some anoying things on the server that can drive you nuts, for example:
The next section will deal with these issues using the git shell and some configurations.
First thing to improve is to remove port forwarding, so add this to the start of each entry in the ~/.ssh/authorized_keys file:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
Now SSH users cannot get a login shell, only the non-interactive shell we are going to configure will be available.
The we must set the git shell to be used on login. so log in your server machine, now check if the git-shell is listed on the /etc/shells file with: cat /etc/shells, if you do not see git-shell there, you can add it:
sudo echo "$(which git-shell)" >> /etc/shells
But I advise you to use an editor. Now make it the login shell for the git user:
sudo chsh git -s $(which git-shell)
Now you will not be able to get a shell on a log in. So this user is useless for anything else than git stuff. You can only run git commands like pull, push and clone, plus the commands we created on git-shell-commands.
The git-shell can be customized by creating the folder git-shell-commands on the git home, the first and funnier thing to do it to just show a message when a login is atempted.
You can present a greeting to users connecting via SSH by creating a file named no-interactive-login in the folder we just created. It's funny, e.g.:
#!/bin/sh echo "welcome to your git server!"
So when git tries to log in your server this message is shown.
Adding programs to this folder will let users run them. There are some convenient commands to add, for example, creating a new repository, deleting one and listing all repos. To make them available don't forget to let them be executable:
chmod +x git-shell-commands/program
A good starting point is [2].
I think this is a good configuration, it is safe and let's you fully interact with git, even creating and deleting repos.
At the same time this configuration is flexible as you can keep adding new commands. But there is room for improvements, for example, your repositories have zero visibility, there is no colaboration.
Adding public access can be done using git-daemon, or setting up the git HTTP. But those are subjects for other articles.
Some links we like:
,_. ,.eo-ee, .e.e, e_/e0^o, .,;-o-e.. ,/ee^ ,e0\o /-o0__ee,._ ee 0_/e e\o_/__\-e,o^e ,,o0o\ ,|v/ee. ^"e- ,ee_e._, \ // \ V | _.e. | /_-ee,_. /\ \-__ _/ / \ \ \_ .,wW'^^^//;^-^;^;w_← derelict garden webring →