Πώς αντικατέστησα τη ρύθμιση procfile + supervisord με μία εφαρμογή macOS
Procfiles, ρυθμίσεις supervisord και ένα νεκροταφείο από shell scripts για τη διαχείριση dev υπηρεσιών. Να γιατί σταμάτησα να τα συντηρώ όλα αυτά και τι χρησιμοποιώ τώρα.
Articles and insights about Agata Stack.
Procfiles, ρυθμίσεις supervisord και ένα νεκροταφείο από shell scripts για τη διαχείριση dev υπηρεσιών. Να γιατί σταμάτησα να τα συντηρώ όλα αυτά και τι χρησιμοποιώ τώρα.
Το log triage είναι επίπονο επειδή τα σφάλματα έρχονται ως ροή, όχι ως ιστορία. Το timeline στο Agata Stack μετατρέπει κάθε συμβάν που ταιριάζει σε κανόνα σε μια καταχώριση με χρωματική κωδικοποίηση που διαβάζεται σαν χρονολόγιο — εδώ είναι πώς λειτουργεί και γιατί ο χρωματικός σχεδιασμός μετράει περισσότερο απ’ όσο φαίνεται.
Το τοπικό HTTP API του Agata Stack σας επιτρέπει να ξεκινάτε, να σταματάτε, να επανεκκινείτε και να παρακολουθείτε logs από οποιαδήποτε υπηρεσία στο Mac σας με μια απλή εντολή curl — από CI, από ένα shell alias ή από ένα AI εργαλείο. Χωρίς ρύθμιση daemon, χωρίς υπηρεσία τρίτου μέρους.
Το να κάνεις SSH σε ένα staging box κάθε φορά που θέλεις να ελέγξεις ένα log είναι DevOps του 2010. Να πώς οι απομακρυσμένες υπηρεσίες μπορούν να βρίσκονται δίπλα στις τοπικές στο ίδιο view κατάστασης, με τους ίδιους ελέγχους υγείας, streams logs και κανόνες αυτοματοποίησης.
Τώρα μπορείς να δείχνεις στον Claude Code ή στο Cursor το iOS Simulator ή τον Android emulator που τρέχει, να βγάζεις screenshots, να εκτελείς εντολές adb shell και να εγκαθιστάς builds — όλα από ένα AI prompt, όλα από τη menubar σου, χωρίς ποτέ να αλλάζεις εφαρμογές.
Οι περισσότεροι MCP servers χρειάζονται ξεχωριστή διεργασία, ένα cloud relay ή καλύπτουν μόνο ένα πράγμα. Το Agata Stack τρέχει το MCP endpoint μέσα στο ίδιο το menubar app — καλύπτοντας computer-use, mobile QA, διαχείριση υπηρεσιών και streaming logs από μία localhost διεύθυνση.
Ο AI βοηθός σου μπορεί να δει τον κώδικά σου. Δεν μπορεί όμως να δει αν ο dev server σου τρέχει πραγματικά. Δες πώς ένα τοπικό HTTP API και ένα MCP endpoint αλλάζουν εντελώς αυτή την εξίσωση.
Η εναλλαγή μεταξύ dev, staging και production περιβαλλόντων είναι αργή και εύθραυστη. Τα environment profiles στο Agata Stack αλλάζουν τα πάντα με ένα κλικ — και το API σημαίνει ότι μπορούν να το κάνουν και τα scripts σου.
Ένας αποτυχημένος health check δεν είναι διάγνωση. Δες πώς το Agata Stack διαβάζει τις τελευταίες 20 γραμμές logs, ταιριάζει γνωστά μοτίβα σφαλμάτων και σου δίνει μια εκτελέσιμη εντολή διόρθωσης πριν καν ανοίξεις terminal.
Οι περισσότερες ομάδες καταφεύγουν σε μια τρίτη υπηρεσία διαθεσιμότητας τη στιγμή που χρειάζονται ελέγχους υγείας. Ήδη έχεις όλα όσα χρειάζεσαι στο Mac σου — και δεν κοστίζει τίποτα παραπάνω.
Μπορείτε να εντοπίζετε αργές αποκρίσεις API από το dev stack σας σε πραγματικό χρόνο, χωρίς να αγγίξετε ούτε μία γραμμή code ή να προσθέσετε middleware. Δείτε πώς οι stream rules στο Agata Stack λειτουργούν πάνω στα υπάρχοντα logs σας.
Οι κρασαρίσματα κάνουν θόρυβο. Οι σιωπηλές αποτυχίες όχι. Δες πώς να πιάνεις το χειρότερο είδος διακοπής — όταν η υπηρεσία απλώς σταματά σιγά-σιγά — πριν από τους χρήστες σου.
Κάθε developer έχει χάσει πέντε λεπτά από ένα σφάλμα port-in-use στην εκκίνηση. Εδώ είναι ο stream rule που εντοπίζει το EADDRINUSE στα logs σου, σκοτώνει την πόρτα που μπλοκάρει και κάνει επανεκκίνηση της υπηρεσίας σου — αυτόματα, χωρίς terminal.
Το Agata Stack τρέχει έναν τοπικό HTTP server στη θύρα 19877. Παρακολούθησε live logs μέσω SSE, διαχειρίσου υπηρεσίες και χρησιμοποίησε ένα αυτοπεριγραφόμενο OpenAPI spec — όλα από ένα shell script, ένα CI job ή ένα AI εργαλείο.
Μια γραμμή σφάλματος που επαναλαμβάνεται 400 φορές μοιάζει με θόρυβο. Αλλά είναι μοτίβο — και ο σωστός κανόνας μπορεί να το πιάσει στις πρώτες 5 γραμμές, να ενεργοποιηθεί μία φορά και να μείνει σιωπηλός μετά από αυτό. Να πώς λειτουργεί το log fingerprinting στο Agata Stack.
Τα περισσότερα εργαλεία για dev δείχνουν μόνο τα logs για διεργασίες που ξεκίνησαν τα ίδια. Το Agata Stack μπορεί να συνδεθεί σε οποιαδήποτε διεργασία χρήστη που τρέχει στο Mac σου — με PID — και να κάνει stream το output της σε πραγματικό χρόνο, χωρίς επανεκκίνηση.
Ένα service που κατέρρευσε και δεν το πιάνει κανείς μέχρι να παραπονεθεί χρήστης είναι ήδη λυμένο πρόβλημα. Να η ρύθμιση ανίχνευσης crash και αυτόματης επανεκκίνησης που έβαλε τέλος στις εκπλήξεις των 3 π.μ.
Δεκατέσσερις καρτέλες τερματικού, ομάδες παραθύρων με χρωματική κωδικοποίηση, και πάλι δεν μπορούσα να δω με μια ματιά ποια υπηρεσία είχε πεθάνει αθόρυβα. Ιδού τι άλλαξε.