Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam.
-
Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.
-
Don't duplicate the full text of your blog or git here. Just post the link for folks to click.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require your active participation in selfhosting or related communities, or the post will be removed. No more than 10% of your posts or comments may be self-promotional, or your post will be removed. F/LOSS Exception: If your post is about a project that is completely open source & can be self-hosted in full without payment, and your account is at least 30 days old, your post is exempt from this rule as long as you continue to engage in comments.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
I had fail2ban running for several years before switching to CrowdSec late last year. They both work in a similar fashion and watch your logfiles for break in attempts. With the small difference that CrowdSec also lets you use blocklists from the "crowd" to block malicious actors before they even get to try their luck on your machine(s).
I'm using CrowdSec with Traefik and nftables. But there are some bouncer plugins for nginx and OpnSense, too.
I just followed their example configurations for Docker, Docker Compose and then started tinkering with the config until everything worked as desired.
I have traefik running with all config done via the docker compose files and I just couldn't figure out how to get the bouncer middleware to work without causing problems. Doesn't help that most examples seem to be based on the static yaml based config so I'm trying to convert jt. Would appreciate anyone who might know of a resource that explains with docker compose environment tags.
I also have middle ware for things like authentik which complicates things.
In the Traefik static configuration (usually
traefik.yml), add this to load the CrowdSec plugin:(The name for the plugin is defined here as
crowdsec-bouncer-traefik-plugin.)Then, in your dynamic configuration, add this (I've used a separate file
dynamic_conf/050-plugin-crowdsec-bouncer.yml):(The name for this new middleware defined here is
crowdsec-bouncer. It uses thecrowdsec-bouncer-traefik-plugindefined in the previous step. Make sure these names match.)You can get the LAPI key by registering a new bouncer in CrowdSec.
And, finally, make sure all incoming traffic routes through the bouncer plugin. You can do this individually, or in general via the static config:
The middlewares are processed top to bottom.
Any change to the static configuration requires a restart of Traefik to become active.
In addition to the explanation you got from the other user: once you've set up the bouncer middleware in the configs (don't know if there even exists a good way to do that outside of the configs files), you simply assign the middleware in the compose file as usual.
Thanks those links were helpful to get me on the right path. I like that there is a plugin for Opnsense directly and has that central LAPI, because I'd need something similar if I was to use f2b.