97 lines
4.4 KiB
Markdown
97 lines
4.4 KiB
Markdown
# Reddit launch post
|
||
|
||
For `r/vibecoding`, use the **Vibe-Coded Projects** category/flair and retain the
|
||
build-process section below. The community's current self-promotion guidance says
|
||
project posts need educational detail about tools, workflow and lessons rather
|
||
than only a link. Recheck its rules immediately before posting. Add sanitized
|
||
screenshots if available; never show real users, domains, libraries, service URLs
|
||
or credentials.
|
||
|
||
## Suggested title
|
||
|
||
I vibe-coded Magent: a self-hosted request, stats and issue portal for Jellyfin stacks
|
||
|
||
## Alternative titles
|
||
|
||
- Magent is ready for testers — Docker, Portainer and native installs
|
||
- Sharing Magent: one place for media requests, viewing stats and issue follow-up
|
||
|
||
## Post
|
||
|
||
Hey everyone,
|
||
|
||
I’ve been vibe-coding a self-hosted project called **Magent**, and its first
|
||
public preview is ready for people to inspect, install and break:
|
||
|
||
https://git.amslabs.net/Rephl3x/Magent-Public
|
||
|
||
Magent is the user-facing layer I wanted around a Jellyfin media stack. It brings
|
||
requests, request progress, viewing stats and issue follow-up into one place,
|
||
while Jellyfin, Seerr, Sonarr, Radarr and the other connected apps keep doing the
|
||
jobs they already do.
|
||
|
||
What it currently includes:
|
||
|
||
- Search for and submit movie or TV requests through Seerr
|
||
- A plain-English request timeline across approval, Arr, downloads and Jellyfin
|
||
- “Watch now” links when something is available
|
||
- Issue reporting and repair follow-up
|
||
- Personal Jellystat viewing insights and monthly reports
|
||
- Local/Jellyfin sign-in, invitations and per-user feature controls
|
||
- Encrypted backup and restore for configuration and the SQLite database
|
||
|
||
It does **not** provide, store or stream media. You need to operate and connect
|
||
your own services.
|
||
|
||
Docker Compose is the recommended setup, but the repository also documents
|
||
Portainer, plain `docker run`, source-built containers, native Linux/systemd and
|
||
foreground Windows/macOS/Linux installs. A fresh managed Docker install creates
|
||
its own private keys and setup token, then walks you through the administrator
|
||
and app connections in the browser.
|
||
|
||
Docker image: https://hub.docker.com/r/rephl3xnz/magent
|
||
|
||
This is deliberately labelled a public preview. The container is currently
|
||
validated on Linux/amd64, Magent expects one writable SQLite instance, and it is
|
||
not presented as an HA/Kubernetes deployment. The repo documents HTTPS, reverse
|
||
proxies, origins/cookies, backups, upgrades and rollback rather than pretending
|
||
those details disappear.
|
||
|
||
The project grew through an iterative AI-assisted/vibe-coding workflow, followed
|
||
by regression tests, isolated container smoke tests and a separate sanitization
|
||
pass for the public repository. I’m sharing the source under MIT because I want
|
||
the implementation to be inspectable, not just the result.
|
||
|
||
### How I built it
|
||
|
||
My workflow was much closer to directing a small engineering loop than writing
|
||
one giant prompt. I described a user problem, had Codex work across the FastAPI,
|
||
Next.js and Docker layers, then reviewed the result in a running Beta instance.
|
||
Screenshots and real failure reports became the next round of requirements.
|
||
|
||
The useful discipline was making every vibe pass leave evidence behind. Backend
|
||
behavior got regression tests, interface changes got browser checks, and the
|
||
container got a disposable smoke harness covering fresh setup, login, security
|
||
headers, assets, encrypted backup/restore, restart and recreation. I also used
|
||
the ECC Codex plugin as a structured security/release review rather than treating
|
||
“it works on my stack” as a release gate.
|
||
|
||
The biggest release lesson was that a Git branch is not a privacy boundary. My
|
||
first idea was a sanitized public branch alongside private Beta/Prod branches.
|
||
Before launch I caught that every branch and old tag in a public repository is
|
||
still public, so I split the three-commit sanitized export into its own repository.
|
||
That was more valuable than another round of UI polish.
|
||
|
||
The most useful early feedback would be:
|
||
|
||
- where setup assumes too much knowledge
|
||
- installation steps that are unclear or wrong on your platform
|
||
- integrations that behave differently on another stack
|
||
- request, stats or issue flows that confuse real users
|
||
- backup or restore problems
|
||
|
||
Please use synthetic examples and sanitized logs in public reports—no tokens,
|
||
databases, backup files or private service details.
|
||
|
||
Repository: https://git.amslabs.net/Rephl3x/Magent-Public
|