nixos-machines
How-To-Secure-A-Linux-Serve
nixos-machines | How-To-Secure-A-Linux-Serve | |
---|---|---|
2 | 2 | |
3 | - | |
- | - | |
9.0 | - | |
5 days ago | - | |
Nix | ||
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nixos-machines
-
Aider: AI pair programming in your terminal
Thanks for open sourcing this project! I've packaged it with nix to make it easier for others to use: https://github.com/nixvital/ml-pkgs/blob/main/pkgs/aider/def...
If you are running nixos, an example of using it can be found here: https://github.com/breakds/nixos-machines/blob/main/flake.ni...
-
Ask HN: How can a total beginner start with self-hosting
I have been there. The progress was rather slow until I started to use NixOS. The learning curve is a bit steep but is very rewarding. It is not specific to self-hosting stuff, but as a side effect it makes self hosting super easy (declarative, readable, etc).
For most of the services that you would like, you just write a simple configuration and deploy it. For example, to run the service shiori (https://github.com/breakds/nixos-machines/blob/main/machines...), or to host a game (terraria) server (https://github.com/breakds/nixos-machines/blob/main/machines...), or tailscale (https://github.com/breakds/nixos-machines/blob/main/base/tai...). Since Nix is also a very good package manager, you also do not have to deal with installing packages and managing their dependencies.
With my NixOS server I am running all the services you mentioned, and also my router is just a bunch of services running on a NixOS box.
How-To-Secure-A-Linux-Serve
-
Ask HN: How can a total beginner start with self-hosting
> In short it’s all about control, privacy, and security, in that order.
I am going to strongly urge you to consider changing that order and move *security* to the first priority. I have long run my own servers, it is much easier to setup a server with strong security foundation, than to clean up afterwards.
As a beginner, you should stick to a well known and documented Linux server distribution such as Ubuntu Server LTS or Fedora. Only install the programs you need. Do not install a windowing system on it. Do everything for the server from the command line.
Here are a few blog posts I have bookmarked over the years that I think are geared to beginners:
"My First 5 Minutes On A Server; Or, Essential Security for Linux Servers": An quick walk through of how to do basic server security manually [1]. There was a good Hacker News discussion about this article, most of the response suggests using tools to automate these types of security tasks [2], however the short tutorial will teach you a great deal, and automation mostly only makes sense when you are deploying a number of similar servers. I definitely take a more manual hands-on approach to managing my personal servers compared to the ones I professionally deploy.
"How To Secure A Linux Server": An evolving how-to guide for securing a Linux server that, hopefully, also teaches you a little about security and why it matters. [3]
Both Linode[4] and Digital Ocean[5] have created good sets of Tutorials and documentation that are generally trustworthy and kept up-to-date
Good luck and have fun
[1]: https://sollove.com/2013/03/03/my-first-5-minutes-on-a-serve...
[2]: https://news.ycombinator.com/item?id=5316093
[3]: https://github.com/imthenachoman/How-To-Secure-A-Linux-Serve...
[4]: https://www.linode.com/docs/guides/
[5]: https://www.digitalocean.com/community/tutorials
-
Ask HN: What Linux setup/hardening guide do you use?
I can't claim to have been through it but this is sitting on my bookmarks folder and looks very useful: https://github.com/imthenachoman/How-To-Secure-A-Linux-Serve...
My only tip I haven't seen mentioned here is be very careful using docker with ufw, as by default docker will effectively override ufw port restrictions if it is told to expose a port.
What are some alternatives?
headscale - An open source, self-hosted implementation of the Tailscale control server
provision - Script to setup a new server.
vaultwarden - Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
kernel-hardening-checker - A tool for checking the security hardening options of the Linux kernel
Sandstorm - Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.
Pi-hole - A black hole for Internet advertisements
yunohost - YunoHost is an operating system aiming to simplify as much as possible the administration of a server. This repository corresponds to the core code, written mostly in Python and Bash.
syncthing-android - Wrapper of syncthing for Android.
Self-host-GitLab-CI-for-GitHub - Installs your own GitLab CI and runs it on all your GitHub repos, in a single command.