I know Alpine Linux uses IRC for development. https://alpinelinux.org/community/
I go there from time to time when I have an issue I can't figure out myself.
It's mature and simple which is why I believe it's used more often by developers.
I know Alpine Linux uses IRC for development. https://alpinelinux.org/community/
I go there from time to time when I have an issue I can't figure out myself.
It's mature and simple which is why I believe it's used more often by developers.
Strength sometimes takes a lot of patience to help a person fuck up in front of the wrong line of people.
That's very much what I did. While causing noise with management, I made friends with someone who worked for corporate HR. My first email to her basically predicated what would happen if I raised a complaint to management. I gained her trust by focusing on changing the work culture and not looking for retribution.
I got terminated, lawyers got involved and in the end I got a my severance and banned from working with that international corporate. The HR manager of my company was forced into leaving the company before her retirement. If I didn't play nice with corporate HR, the company HR manager would have probably worked until retirement like nothing happened.
I now have a new hate for bureaucracy that's on a deep and personal level but at least I came out with some wins at the cost of some sanity.
The trades are the same way, unfortunately. When the first woman apprentice showed up, all these guys started acting like they've never seen a woman before.
The quiet guy who I thought was one of the nicest people there told the apprentice that she belonged in an office. Others wouldn't let her do anything "dangerous" or over explained all the simple shit to her. Others would just hang around her for uncomfortable periods of time. It was truly bizarre to witness.
She ended up only coming to me for work related questions because I was one of the few people who treated her like a person and not like a little girl. That's how I found out all the gross and fucked up things the guys were saying to her. She didn't last long and left for another company which already had women working there. I worked until I got terminated for bringing up issues with the work culture.
During the fight about work culture with management, the vast majority of my coworkers turned their backs on me. Treated me like an idiot and isolated me. They were all so fragile and scared they would have to change their awful ways.
I ended up quitting my apprenticeship and decided to never return to the trades. I can't stand the culture and I no longer have the energy to fight alone.
Any woman that can remain in the trades or STEM is way stronger than I'll ever be. I couldn't imagine myself dealing with that shit daily for an entire life.
I was building an automation line that was going to be used to manufacture the battery tray for Hummers. When I found out in 2020 that my workplace was considered essential service during the covid lockdowns, I pretty much lost my mind. Stupidest fucking thing I ever heard.
There's nothing essential about an electric Hummer.
I don't work there anymore.
I don't have any answer but I feel your pain. Years ago I wanted to learn C++ for Arduino and asking questions always seemed to have answers that talked down to me and made me feel stupid for asking.
I even tried proving that I made an effort to learn before asking. That didn't work either. People were still rude.
I gave up.
Years later I got into into Linux and started learning POSIX scripting and self-hosting. I again tried asking questions but still received mostly rude answers but this time there were people in the mix of replies that did try to help. It was slightly better.
I tried showing off a script I was proud of but I did something wrong and people rudely let me know about my mistake. They took no effort to educate me on why it was wrong. I asked for a reason to understand what I did wrong but was left with silence.
I didn't give up this time but I stopped asking for help and I'm still afraid to show off my projects.
It's the exact same bullshit I experienced in the trades. I quit my apprenticeship and left the trades because people refused to understand that someone else with less experience won't instinctively know all the basics. Starting something new is overwhelming and it's hard to retain all that information the first time learning it all.
I feel like rudeness towards beginners is one of the biggest hypocrisies when so much of progress is built on sharing knowledge.
One lesson I learned from a this is that I either take the time to answer a question fully or don't. I can at least feel good about the few times I spent answering a question. The people that asked the question were always appreciative of the time and effort I took to help them understand what they wanted to know.
Permanently Deleted
I got a work/travel visa for Germany and spent a year living in Berlin with a bit of travel here and there. Early in my year, I stayed at a hostel in Kreuzberg.
I stayed there long enough to get to know one of the receptionists there. One day she adds me on Facebook. A few days later she told me she was creeping my page when she noticed a familiar hostel that I mentioned in a post. It was a hostel in Sydney, Australia where I also stayed for two years on a similar work/holiday visa. This was a couple years before my stay in Germany.
We got to talking more and it turns out we both were in the same hostel in Australia at the same time. It's possible we saw each other at some point but neither of us remember. She did mention a specific weather event that happened during the time we were in Sydney so seems our time lines match up too.
We ended up staying friends for my time in Germany and even hitch hiked together to Warsaw and back at one point. One of the nicest people I've met in my travels, hope she's doing well these days.
I had a website that was set up for only my personal use. According to the logs the only activity I ever saw was my own. However, it involves a compromise. Obscurity at the cost of accessibility and convenience.
First, when I set up my SSL cert, I chose to get a wildcard subdomain cert. That way I could use a random subdomain name and it wouldn't show up on https://crt.sh/
Second, I use an uncommon port. My needs are very low so I don't need to access my site all the time. The site is just a fun little hobby for myself. That means I'm not worried about accessing my site through places/businesses that block uncommon ports.
Accessing my site through a browser looks like: https//randomsubdomain.domainname.com:4444/
I'm going on the assumption that scrapers and crawlers are going to be searching common ports to maximize the number of sites they can access over wasting their time on searching uncommon ports.
If you are hosting on common ports (80, 443) then this isn't going to be helpful at all and would likely require some sort of third party to manage scrapers and crawlers. For me, I get to enjoy my tiny corner of the internet with minimal effort and worry. Except my hard drive died recently so I'll pick up again in January when I am not focused on other projects.
I'm sure given time, something will find my site. The game I'm playing is seeing how long it would take to find me.
True, but there's far more to this story than a few paragraphs can explain. She's also very cruel and I spent far too many years in therapy because of her actions.
At least I have validation from my cousin's recent interactions with her. He's been unfortunate enough to see her other side and has shared those experiences with me.
He now understands why I have distanced myself from her throughout my life.
My sister has done a lot of good things for other people but I have an extremely hard time appreciating her actions. She spends so much time telling people on social media and real life all the good she has done. To me it seems like she is doing good to be seen doing good. As if attention to herself is a currency.
I rarely share the stories of when I help people because often when I do, I'm reminded of the privileges I have in life. That's not something I feel comfortable bragging about. It feels like I'm using the situation to make myself look better than I actually am if I brag about helping another person.
I think one of the many reason's she doesn't like me is because I refuse her help. I deny her the ability to brag about helping her little brother. Doing good to bring attention to herself is far more important to my sister than doing good because it's the nice thing to do.
There's a few things I backup from my phone.
I have an Android phone so I use Termux as a terminal emulator. I use ssh and passwordless keys to make transfers simpler and quicker.
Although this is closer to a backup process and not like SyncThing where it's syncing a folder between two devices. I don't believe rsync is capable of acting like SyncThing but I'm tempted to dig into rsync more and see if I can put something basic together one day.
I do something similar using only rsync. I've had nothing but headaches whenever I used automated file syncing programs. The bare bones aspect of just using rsync has made it a much more consistent experience.
I found using automated file syncing programs have too much complexity under the hood that just seems to lead to more time troubleshooting issues.
I've been writing POSIX scripts as a sort of hobby and don't really have any Bash experience but I think I can still give some insight. Hopefully what I say is accurate but this is what I've learned so far.
POSIX is a standard, to say it as simple as possible, it sets the minimum requirements for environment, programs, commands and options for those commands with the purpose of having those commands be as portable as possible. That way a POSIX script will work on any POSIX compliant system. For example a POSIX script could work on Arch, Debian, on a Raspberry Pi or even Mac products. In theory if could work on windows too. If an Operating System ships with a POSIX compliant shell, you are very likely able to run a POSIX script.
Bash is a shell but it has a bunch of features that expand beyond the basic features set by the POSIX standard. Bash also has more features and flexibility for scripting which is why it's so common to see Bash scripts. Those scripting features are usually referred to as "bashisms." Since it expands on POSIX scripting, it can look similar to a POSIX script but would not work as intended if you ran a Bash script outside of a Bash shell.
With a lot of modern OS's, they would likely have Bash installed and you most likely don't need to worry about anything. However, Bash is not a standard and not required to be installed on every system.
If you care about your script working on as many systems as possible without the worry about what shell is being used, you will probably prefer writing a sh shell, POSIX compliant script.
Since POSIX shells and scripts work on a much more basic level, it can lack some depth and finding work arounds for issues can start to look unreadable/insane. A good example is how arrays are handled. POSIX is limited to one array where Bash has much better support for arrays.
There are advantages to using either but with the popularity of Bash, it's not really that big of a deal in the end.
I have two systems that sort of work together.
The first system involves a bunch of text files for each task. OS installation, basic post OS installation tasks and a file for each program I add (like UFW, apparmor, ddclient, docker and so on). They basically look like scripts with comments. If I want to I can just copy/paste everything into a terminal and reach a a specific state that I want to be at.
The second system is a sort of "skeleton" file tree that only contains all the files that I have added or modified.
.
├── etc
│ ├── crontabs
│ │ └── root
│ ├── ddclient
│ │ └── ddclient.conf
│ ├── doas.d
│ │ └── doas.conf
│ ├── fail2ban
│ │ ├── filter.d
│ │ │ └── alpine-sshd-key.conf
│ │ └── jail.d
│ │ └── alpine-ssh.conf
│ ├── modprobe.d
│ │ ├── backlist-extra.conf
│ │ └── disable-filesystems.conf
│ ├── network
│ │ └── interfaces
│ ├── periodic
│ │ └── 1min
│ │ └── dynamic-motd
│ ├── profile.d
│ │ └── profile.sh
│ ├── ssh
│ │ └── sshd_config
│ ├── wpa_supplicant
│ │ └── wpa_supplicant.conf
│ ├── fstab
│ ├── nanorc
│ ├── profile
│ └── sysctl.conf
├── home
│ └── pi-user
│ ├── .config
│ │ └── ash
│ │ ├── ashrc
│ │ └── profile
│ ├── .ssh
│ │ └── authorized_keys
│ ├── .sync
│ │ ├── file-system-backup
│ │ │ ├── .sync-server-fs_01_root
│ │ │ └── .sync-server-fs_02_boot
│ │ └── .sync-caddy_certs_backup
│ ├── .nanorc
│ └── .tmux.conf
├── root
│ ├── .config
│ │ └── mc
│ │ └── ini
│ ├── .local
│ │ └── share
│ │ └── mc
│ │ └── history -> /dev/null
│ ├── .ssh
│ │ └── authorized_keys
│ ├── scripts
│ │ ├── automated-backup
│ │ └── maintenance
│ ├── .ash_history -> /dev/null
│ └── .nanorc
├── srv
│ ├── caddy
│ │ ├── Caddyfile
│ │ ├── Dockerfile
│ │ └── docker-compose.yml
│ └── kiwix
│ └── docker-compose.yml
└── usr
└── sbin
├── containers-down
├── containers-up
├── emountman
├── fs-backup-quick
└── rtransfer
This is useful to me because I can keep track of every change I make. I even have it set up so I can use rsync to quickly chuck all the files into place after a fresh install or after adding/modifying files.
I also created and maintain a "quick install" guide so I can install a fresh OS, rsync all the modified files from my skeleton file tree into place, then run through all the commands in my quick install guide to get myself back to the same state in a minimal amount of time.
I actually started with RPi's. The first one, a used Pi 4b, is dedicated only to HomeAssistant. I don't tinker with it anymore because it does what I want and I don't want unexpected downtime when I have to use the bathroom or use the lights in my room.
I bought a used Pi5 with the intention of upgrading later. In life I am quite minimal and find a joy in using what little tools and material I have to create something new. That seems to hold true to technology and scripting too. The RPi5 with an old USB3 HDD is actually way more power than I can currently use and can imagine using for a long time. The extra room to work is convenient though.
I'll have a look into some of the places you suggested, those seem like the places to draw good inspiration from, thank you.
I started out rewriting my network backup scripts only to realize I was adding functionality to a previous script I wrote to automatically mount and dismount luks encrypted volumes. I still want to type in my luks passphrase because I don't want everything automated and prefer to include inconvenience as an additonal security measure in securing some of my data.
I also came to the realization recently that the reason I don't relate strongly to other self hosters is because I've unknowingly been trying to create a minimal self hosted system that is more beneficial to small, low powered devices.
I've been using Alpine Linux, I install only the bare, older but well established tools and have been creating scripts soley based off those tools instead of seeking out bigger, more complicated modern tools. For example creating workflows by only using rsync or using https://github.com/RayCC51/BashWrite to create a blog that only uses bash and GNU sed to create a static blog site.
At least now that I'm aware of this, I can keep an eye out for such projects or communities and would hopefully be able to contribute something in that direction.
Shellcheck is a great tool for scripting.
When I'm building a new script, I usually add the following function to the script and run the function before anything else. The script will exit immediately if any issues are found so I have a chance to correct things. If no issues are found, the script will simply continue.
It's small and simple so it's easy to remove when I'm done building a script.
script_check() {
if ! shellcheck "${0}"; then
exit 1
fi
}
script_check
Shellcheck has helped me learn a lot about scripting and I strongly recommend using it too.
I've experienced gatekeeping issues long before I got into self-hosting specifically. Years ago I wanted to learn C++ for Arduino and I was constantly talked down for asking questions.
"Why don't you just do ..." in response to a question feels very rude as a newcomer because it feels like I am being talked down to for not knowing what others already know. Even when I made an effort to show I was making an effort to learn on my own, I was still belittled.
I'm all for hearing different ways of approaching my issue but from the replies, it often feels like other people insist there is only one true specific way to handle an issue.
When I first got into self-hosting, people kept pushing Cloudflare on me. When I expressed concern over a large centralized corporation having that much control and how they might have service issues, I was mocked really hard. Half a year later and there was a significant outage and suddenly there's all this talk about how centralized the internet is and how that is bad.
After that I took it upon myself to find alternative ways to protect myself without Cloudflare's services but every step of the way has been an isolating experience. Every step of the way has been full of people saying that my efforts are pointless and that the bots will win anyways so I shouldn't bother.
I decided to try to secure myself through multiple layers of obscurity and every question in that direction has been full of people saying that obscurity is not security, the bots will find you anyways!
I've stopped myself from asking too many questions now. I still keep learning in my direction. I feel like I've managed to find multiple solutions that both obscure and protect myself. I've constantly check my logs for months now and the bot is less than I expected in places I expect them to be and completely zero in other places I thought there would be some activity.
I want to share what I have learned and my experiences but I know I will receive backlash for deviating from the norm.
I've spent a lot of my self-hosting efforts trying to find ways to protect myself with minimal use of third party services, documenting as much as I could only feel afraid to share what I have learned.
This comment may not be about learning self-hosting as a beginner specifically but the vibe has been pretty damn consistent throughout me learning C++, self-hosting, linux and shell scripting. All things I enjoy but all so full of people ready to talk down to someone who wants to learn.
I have three backups. One is my laptop where all the backups initially start. Then that gets copied to a plugin USB SSD. Then another copy goes to my server which has another USB SSD. That means I don't have an off site backup.
I don't have a place to host an off site backup and I'm not comfortable or interested in using cloud services. Instead I just decided that if it all goes up in flames. So be it.
It's just data and backups are just nice a convenience. I'll be upset but there's more important things in life to worry about.
I've always lived a life of minimalism and to me stuff is stuff. None of it mattered before I was born and none of it will matter after I die. That happiest and most free feeling I ever experienced was when I spent years travelling with only a 34 litre backpack and that's kind of been my baseline for happiness ever since.
I've seen a massive huntsman spider in Australia. I was trimming palm fronds with a saw on an extended pole and one palm frond hit the tree trunk on the way down. The huntsman managed to safety land on the tree trunk while the frond fell to the ground.
That spider was way bigger than my hand and demonically fast. Was super cool to see such a big one.
It's nice that they are generally chill around people. I had a much smaller one living in my room's air conditioning unit. It always came out at night and chilled on the wall while I slept and disappeared during the day.
I never handled a huntsman but I was never really bothered by them during my time in Australia.