☀️ Light

🎉 Welcome to the Team! 🎉

Super excited to have you onboard! 🙌 This guide breaks down our super-duper automated system for getting code from idea 💡 to our users. We call it the "Eudle Flow" (pretty cool, right?). It helps us ship updates faster than you can say 'Eudle Flow five times fast' 💨 and keeps things running smoothly. Let's dive in!

1. Code Magic Happens ✨

It all begins with a spark of genius (or maybe just fixing a typo 😉). A developer writes some awesome new code for features or squashes some pesky bugs 🐛 using their favorite coding tools.

Developer's Computer 💻

2. Save it to Gitness! 💾

The dev saves ("pushes") their masterpiece to our central code library, Gitness. Think of it like a super-organized digital filing cabinet 🗄️ that tracks every single change. Messed up? No problem, we can always time-travel back! ⏳

3. Jenkins Gets the Bat-Signal! 🦇

Gitness sends a secret signal (okay, it's a webhook 🕸️) to Jenkins, our trusty automation butler 🤖. Jenkins perks up, grabs the new code, and gets ready to work its magic.

4. Build & Check (The CI Shuffle 🕺)

Jenkins follows its recipe (the Jenkinsfile). It builds the software (think LEGO assembly 🧱) and runs a bajillion automated checks – tests for bugs, quality checks, security scans. If anything looks fishy 🐠, it stops right here! This whole "build and check" dance is called Continuous Integration (CI).

Build & Automated Tests

5. Box It Up! 📦 (Docker Image)

If all checks pass (Green lights everywhere! ✅✅✅), Jenkins neatly packages the software into a magic container called a Docker image. This box contains everything needed to run the app, ensuring it behaves the same way everywhere. We store this box in our secure **Container Registry**.

Container Registry

6. Tag! Harness, You're It! 👉

Jenkins taps Harness CD on the shoulder and says, "Hey, got a shiny new software box ready!" 🎁 This kicks off the Continuous Delivery (CD) phase – getting the software out there.

7. Deploy to Pre-Prod (Dress Rehearsal 🎭)

Harness automatically beams the new software box to our internal test stage: the Proxmox Home Lab. This is our safe playground (Pre-Production) to make sure things really work before real users see it. No pressure! 😅

Deploy to Pre-Prod
Proxmox Home Lab (Test Servers)

8. Final Check & Telegram Poll 👍👎

More automatic tests run in Pre-Prod. If they pass, Harness sends a message to a specific Telegram chat asking: "Ready to go live?" 🤔. Key team members can approve (or deny!) the final deployment right from their phones! 📲 How cool is that?!

Verification & Telegram Approval

9. Showtime! Deploy to Production 🚀

Once approved via Telegram (🥳), Harness carefully deploys the exact same software box to our live Production environment – the **VPS** servers that real users are using right now! No sneaky last-minute changes!

Deploy to Production
VPS (Live Servers)

10. Keep an Eye Out! 👀 (Monitoring)

Harness (and other tools) watch the live app like a hawk 🦅. Checking for errors, slowdowns, weirdness. If things go sideways 📉, Harness can automatically hit the UNDO button (Rollback) and switch back to the last good version, often before users even notice! Phew! 😮‍💨

Monitoring & Auto-Rollback

11. High Five! 🙌 (or Red Alert! 🚨)

If everything went smoothly, PARTY! 🎉 Well, okay, maybe just a success message on Telegram. If anything failed during this whole Eudle Flow (build, test, deploy...), Harness immediately sends a failure alert to Telegram with the juicy details, so the team can jump on it ASAP. 🦸‍♀️🦸‍♂️

Telegram Success / Failure Alert

And that's the current Eudle Flow! It's how we keep things moving safely and quickly. Welcome aboard again, don't hesitate to ask if anything's unclear! We're happy to help. 🤗

🔮 Future Plan: Eudle Flow with OneDev! 🔮

We're always looking to improve! Down the road, we might simplify things even more by using OneDev, an awesome all-in-one tool, for almost everything. Here's what that could look like:

1. Code & Save... in OneDev! ✨💾

Same start: Dev writes code 💻. But this time, they push it directly to OneDev, which acts as our code library (like Gitness does now). Fewer tools, yay!

2. OneDev Builds & Tests (CI Shuffle v2.0 🕺)

Saving code in OneDev automatically triggers its built-in CI/CD engine. It builds the code 🧱, runs all the tests 🐠✅, and packages the Docker image 📦, storing it (maybe in its own registry or our existing one). Bye-bye Jenkins! 👋

OneDev CI (Build, Test, Package)

3. OneDev Deploys to Pre-Prod 🎭

If the CI part passes, OneDev's CD features take over. It deploys the new Docker image to our Proxmox Home Lab (Pre-Production) for that final check. Harness CD might take a vacation! 🌴

OneDev CD (Deploy to Pre-Prod)
Proxmox Home Lab

4. OneDev Checks & Asks via Telegram 👍👎

OneDev runs checks in Pre-Prod. If things look good, it would (ideally, with some setup) pause and ping the team on Telegram for the go-ahead 👍. (We'd need to confirm how smooth this Telegram step is in OneDev).

OneDev Verification
Telegram Approval

5. OneDev Deploys to Production! 🚀

Approved! OneDev then pushes the button to deploy the software to the live **VPS** servers (Production). One tool to rule them all? Maybe! 💍

OneDev CD (Deploy to Prod)
VPS (Live Servers)

6. Monitor, Rollback & Alert (OneDev Style!) 👀🚨

OneDev would (again, ideally!) monitor the production deployment. If it spots trouble 📉, it could trigger a rollback 😮‍💨 and definitely needs to send success 🎉 or failure 🚨 alerts to Telegram!

Monitoring & Rollback
Telegram Alerts

This simpler flow using just OneDev is a possible future goal! It would mean learning and setting up OneDev to handle everything smoothly. Exciting stuff! ✨