Skip to content

About

Gestor local de tu stack: Apache, Nginx, PHP-FPM, MariaDB, MySQL, PostgreSQL, MongoDB, Redis y Memcached · CLI + panel estilo terminal ASCII

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

crystalctl — your local stack, one panel

Linux Python systemd License

One panel and one command for your whole local stack: web servers, SQL and NoSQL databases.

Formerly Lamp_ControlPanel. Running ./install.sh again removes the old lamp commands.

crystalctl panel with its animated ASCII background

Screenshots

All taken with crystalctl-gui --demo, which shows sample services and changes nothing on your system.

Dark Light
Dark theme with running services Light theme
Logs from the journal, per service Install shows the exact commands first
Journal dialog Install confirmation

Console: every action prints the command it ran and how it ended.

Console after restarting everything

Try it without installing anything

git clone https://github.com/taddheotorres/crystalctl.git
crystalctl/bin/crystalctl-gui --demo

What it manages

Group Services Install with crystalctl install
Web Apache, Nginx, PHP-FPM apt · dnf · pacman · zypper
SQL MariaDB, MySQL, PostgreSQL MySQL: apt and dnf only (not in Arch/openSUSE repos)
NoSQL & cache MongoDB, Redis / Valkey, Memcached MongoDB is manage-only: no distro ships it
Admin panels phpMyAdmin, Adminer Adminer: apt only

It only shows what you have installed, and it finds it by its real systemd unit (apache2 or httpd, php8.3-fpm, redis-server or valkey…). Aliases such as Fedora's mysql.service → mariadb are not counted twice.

Features

  • Terminal-style panel: ASCII block-letter banner, monospace everywhere, [ command ] buttons and an animated ASCII field in the background, in black and red with a light theme too. It remembers your choice and holds the background still if your system asks for reduced motion.
  • Start, stop, restart each service or all of them, and switch start at boot on or off.
  • Live state: running or not, systemd sub-state, main PID and which default ports are listening.
  • Logs from the journal, and one click to open each service's config file.
  • Installs services through your package manager, including the first-run steps some distros need (postgresql-setup --initdb on Fedora, initdb on Arch, mariadb-install-db on Arch).
  • Safe by design: the panel listens on 127.0.0.1 only and every request needs a secret token that changes on each launch, so a web page cannot drive it. Root actions go through pkexec, which shows your desktop's password prompt.
  • No dependencies beyond Python 3.8+ and systemd.

Install

git clone https://github.com/taddheotorres/crystalctl.git
cd crystalctl
./install.sh

The installer copies crystalctl and crystalctl-gui to /usr/local/bin, the shared code to /usr/local/lib/crystalctl, the panel to /usr/local/share/crystalctl, and adds a desktop launcher.

Usage

Panel

Open crystalctl from your app menu, or run crystalctl gui. It opens as an app window in Chromium, Chrome, Brave or Edge if you have one, otherwise in your default browser. It closes itself about 45 seconds after you close the window.

Terminal

crystalctl status                  live state, boot, PID and listening ports
crystalctl list                    every supported service and how to install it
crystalctl start|stop|restart [s]  act on the named services, or all installed ones
crystalctl enable|disable <s>      start at boot (and now) / stop and remove from boot
crystalctl logs <s> [lines]        recent journal entries
crystalctl install <s> [-y]        install with apt, dnf, pacman or zypper
crystalctl gui                     open the graphical panel
crystalctl web | crystalctl dir    open http://localhost | the web root
crystalctl db                      open phpMyAdmin
$ crystalctl status
CRYSTAL//CTL web · sql · nosql

SERVICE         UNIT            STATE       BOOT   PID      PORTS
Apache          httpd           ● running   yes    1204     80, 443
PostgreSQL      postgresql      ● running   no     1388     5432
Redis / Valkey  valkey          ○ inactive  no     -        -

Notes

  • Ports are matched against each service's default ports. Without root, Linux does not say which process owns a socket, so a service on a custom port shows no port.
  • Reading the journal may need your user in the systemd-journal group; crystalctl logs runs it through sudo.
  • MariaDB and MySQL usually cannot be installed side by side; your package manager will refuse.

Development

python3 -m unittest discover -s tests   # no root and no services needed
bin/crystalctl-gui --no-window                # prints the panel URL instead of opening a window
bin/crystalctl-gui --demo                     # sample services, nothing is changed

Uninstall

./uninstall.sh

License

MIT

About

Gestor local de tu stack: Apache, Nginx, PHP-FPM, MariaDB, MySQL, PostgreSQL, MongoDB, Redis y Memcached · CLI + panel estilo terminal ASCII

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages