feat(release): prepare first public preview
This commit is contained in:
+4
-4
@@ -64,7 +64,7 @@ container in either case, not a native Windows-container or macOS application.
|
||||
### 1. Save the deployment file
|
||||
|
||||
Create a new directory for this installation and save the release branch's
|
||||
[raw compose.yml](https://git.amslabs.net/Rephl3x/Magent/raw/branch/release/compose.yml)
|
||||
[raw compose.yml](https://git.amslabs.net/Rephl3x/Magent-Public/raw/branch/release/compose.yml)
|
||||
there. Keep your customized copy for future operations instead of overwriting
|
||||
it when updating. You need only this file for the prebuilt image.
|
||||
|
||||
@@ -73,7 +73,7 @@ Linux, macOS or WSL:
|
||||
```sh
|
||||
mkdir magent-install
|
||||
cd magent-install
|
||||
curl --fail --location --output compose.yml https://git.amslabs.net/Rephl3x/Magent/raw/branch/release/compose.yml
|
||||
curl --fail --location --output compose.yml https://git.amslabs.net/Rephl3x/Magent-Public/raw/branch/release/compose.yml
|
||||
```
|
||||
|
||||
PowerShell:
|
||||
@@ -81,7 +81,7 @@ PowerShell:
|
||||
```powershell
|
||||
New-Item -ItemType Directory -Path magent-install
|
||||
Set-Location magent-install
|
||||
Invoke-WebRequest -Uri 'https://git.amslabs.net/Rephl3x/Magent/raw/branch/release/compose.yml' -OutFile compose.yml
|
||||
Invoke-WebRequest -Uri 'https://git.amslabs.net/Rephl3x/Magent-Public/raw/branch/release/compose.yml' -OutFile compose.yml
|
||||
```
|
||||
|
||||
Alternatively, open the raw link in your browser and save the plain text as
|
||||
@@ -236,7 +236,7 @@ It requires the full source tree and Docker build support; the prebuilt-image
|
||||
installation does not. Use a separate checkout directory:
|
||||
|
||||
```sh
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent.git Magent-source
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent-Public.git Magent-source
|
||||
cd Magent-source
|
||||
docker compose -f compose.yml -f compose.build.yml -p magent config --quiet
|
||||
docker compose -f compose.yml -f compose.build.yml -p magent build magent
|
||||
|
||||
@@ -238,6 +238,8 @@ consumer; builder values and supervisor values are not user-editable app setting
|
||||
| `PYTHONUNBUFFERED` | Image: `1` | Flush Python stdout/stderr without buffering. |
|
||||
| `MAGENT_UID` | Build argument: `1000` | Image runtime user's UID. Not a runtime environment switch; rebuilding with a different UID also requires matching volume/tmpfs ownership. |
|
||||
| `MAGENT_GID` | Build argument: `1000` | Image runtime user's GID; same ownership caveat as UID. |
|
||||
| `MAGENT_VERSION` | Build argument: `0.1.0-preview.1` | OCI image version label. Release builds set this to their public version; it does not change runtime data. |
|
||||
| `MAGENT_REVISION` | Build argument: `unknown` | OCI image source-revision label. Release builds set this to the full source commit. |
|
||||
|
||||
## Manual Compose and test tooling
|
||||
|
||||
@@ -249,6 +251,8 @@ verification tools, not the zero-input public Compose install.
|
||||
| `MAGENT_IMAGE` | Required by `docker-compose.hub.yml` | Explicit published image tag/digest for manual-secret installations. |
|
||||
| `MAGENT_BIND_ADDRESS` | `127.0.0.1` | Manual template frontend bind address. |
|
||||
| `MAGENT_HTTP_PORT` | `3000` | Manual template frontend host port. |
|
||||
| `MAGENT_COMPOSE_FILE` | `compose.yml` | Optional `setup.sh` Compose filename override. Use a trusted local file. |
|
||||
| `MAGENT_PROJECT_NAME` | `magent` | Optional `setup.sh` Compose project name. Keep it stable to retain the same named volume. |
|
||||
| `PYTHON_BIN` | `python3` | Interpreter used by the backend quality gate. |
|
||||
| `MAGENT_IMAGE_MAX_MB` | `350` | Container smoke-test unpacked image size budget in MiB. |
|
||||
| `MAGENT_SMOKE_MANAGED` | `false` | Test generated managed secrets when true, or synthetic manual keys when false. |
|
||||
|
||||
@@ -15,7 +15,7 @@ connect a development checkout to production credentials/databases.
|
||||
Linux/macOS (Bash/zsh):
|
||||
|
||||
```sh
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent.git magent
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent-Public.git magent
|
||||
cd magent
|
||||
python3.14 -m venv .venv
|
||||
.venv/bin/python -m pip install -r backend/requirements.txt
|
||||
@@ -24,7 +24,7 @@ python3.14 -m venv .venv
|
||||
Windows (PowerShell, with Python's `py` launcher installed):
|
||||
|
||||
```powershell
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent.git magent
|
||||
git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent-Public.git magent
|
||||
Set-Location magent
|
||||
py -3.14 -m venv .venv
|
||||
& .\.venv\Scripts\python.exe -m pip install -r backend\requirements.txt
|
||||
|
||||
@@ -47,7 +47,7 @@ sudo useradd --system --user-group --create-home --home-dir /var/lib/magent --sh
|
||||
sudo install -d -o magent -g magent -m 0755 /opt/magent
|
||||
sudo install -d -o root -g root -m 0700 /etc/magent
|
||||
sudo install -d -o magent -g magent -m 0700 /var/lib/magent/data
|
||||
sudo -u magent git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent.git /opt/magent
|
||||
sudo -u magent git clone --branch release --single-branch https://git.amslabs.net/Rephl3x/Magent-Public.git /opt/magent
|
||||
sudo -u magent git -C /opt/magent rev-parse HEAD
|
||||
sudo -u magent python3.14 -m venv /opt/magent/.venv
|
||||
sudo -u magent /opt/magent/.venv/bin/python -m pip install -r /opt/magent/backend/requirements.txt
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
# 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
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
Reference in New Issue
Block a user