This repository has been archived on 2024-10-26. You can view files and clone it, but cannot push or open issues or pull requests.
staxman-old/README.md
2023-11-30 10:42:14 +01:00

81 lines
No EOL
2.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# staxman (ski-ba-bop-ba-dop-bop)
[**Fuck you YAML!**](https://www.youtube.com/watch?v=U1dUk8x2XkA)
If you're dumb enough to play stax at your LGS you're a bigenoughschmuck to cometo try out staxman!
Bad design! Apps that break down! Errors!
If you think you're going to fix up your server good: You can kiss my nix!
It's our belief that you're such a stupid noob sysadmin, you'll fall for this bullshit—guaranteed!
If you find a better tool: Shove it up your ugly ass!
You heard us right! Shove it up your ugly ass!
Bring your configs!
Bring your containers!
Bring your waifu!
We'll fuck her! That's right!
We'll fuck your waifu!
Because here at staxman your server's down six ways from Sunday!
## Usage
Important disclaimer: **It doesn't work!!**
### Nix flake
- Run once: `nix run`
- Cute shell with cargo-watch: `nix develop`
Add these lines to your flake.nix, I dare you:
```nix
modules = [
...
staxman.nixosModules.default
({ config, pkgs, ... }: {
services.staxman = {
enable = true;
stackDir = "/path/to/stacks";
bindAddress = "1.2.3.4:3000";
};
})
];
```
### Manual (cringe) install
You'll need:
- [arion](https://github.com/hercules-ci/arion)
- [Docker](https://www.youtube.com/watch?v=y8OnoxKotPQ) (podman-socket works)
- [rust](https://rust.fandom.com/wiki/Rust_Wiki)
then `cargo run` (you want packages? who do you think you are??)
## License
`AGPL-3.0-only`
## Questions never asked
### Why
I maintain a single box with 30+ services and I refuse to let Kubernetes make my life miserable so I stick with Docker Compose. YAML is a pain in the butt and most of my docker-compose.yml files are full of the same stuff like tons of Traefik tags. Nix is a powerful language that can replace most of the bloat with function calls. It's like [Jsonnet](https://jsonnet.org) or [Dhall](https://dhall-lang.org) except harder to learn but [someone](https://github.com/hercules-ci/arion) already put all the work into making it work with Compose so that's why I picked it (also NixOS is dope).
The other part is that using Portainer is handy but it's kinda bloated and full of multi-node mumbo jumbo I really don't care about, staxman focuses on single-node and is a traditional multipage app that loads instantly even without a complex bundling/minimizing pipeline.
Goal for this is to manage docker compose stacks from a web UI with glue code to enable gitops.
### Should I use this?
Probably not! This is MY project, built for my needs only, if you haven't been scared off the memey readme and terrible commit message quality, this is your warning that I'm not gonna add features if people ask for them.
If you think you're just as brainrot as me and wanna join my adventure in trying to create a cozy way to manage a remote box and get some services up with all the pain and lack of support it entails, give it a shot I guess??
### But kubernetes is awesome!
[:)](https://youtu.be/UVB25P3upm0)