├── configuration files
├── info.php
├── 000-default.conf
├── phpmyadmin.conf
└── apache2.conf
├── Media
├── demo.gif
├── demo2.gif
├── icon.png
├── sckde.png
├── scpop.png
├── scut.png
├── scut2.png
├── bitmap.png
├── scfdr4.png
├── sckde2.png
├── sckde4.png
├── scpop2.png
├── scpop3.png
├── scpop4.png
├── demo_0.0.4.gif
├── notif-demo.gif
├── tray-demo.gif
├── functional1.png
├── functional2.png
├── functional3.png
├── install-demo.gif
├── chengeport-demo.gif
├── shortcut-menu.gif
├── Em-nxsdW8AAX8by.jpeg
├── Screenshot_20201115_195724.png
├── Screenshot from 2020-11-15 19-34-52.png
└── WhatsApp Image 2020-11-11 at 01.26.52.jpeg
├── install
├── uninstall.sh
├── Installer
└── install.sh
├── check_release.py
├── LICENSE
├── tray.py
├── CODE_OF_CONDUCT.md
├── README.md
├── main.py
└── interface.glade
/configuration files/info.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Media/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/demo.gif
--------------------------------------------------------------------------------
/Media/demo2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/demo2.gif
--------------------------------------------------------------------------------
/Media/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/icon.png
--------------------------------------------------------------------------------
/Media/sckde.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/sckde.png
--------------------------------------------------------------------------------
/Media/scpop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scpop.png
--------------------------------------------------------------------------------
/Media/scut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scut.png
--------------------------------------------------------------------------------
/Media/scut2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scut2.png
--------------------------------------------------------------------------------
/Media/bitmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/bitmap.png
--------------------------------------------------------------------------------
/Media/scfdr4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scfdr4.png
--------------------------------------------------------------------------------
/Media/sckde2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/sckde2.png
--------------------------------------------------------------------------------
/Media/sckde4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/sckde4.png
--------------------------------------------------------------------------------
/Media/scpop2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scpop2.png
--------------------------------------------------------------------------------
/Media/scpop3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scpop3.png
--------------------------------------------------------------------------------
/Media/scpop4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/scpop4.png
--------------------------------------------------------------------------------
/Media/demo_0.0.4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/demo_0.0.4.gif
--------------------------------------------------------------------------------
/Media/notif-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/notif-demo.gif
--------------------------------------------------------------------------------
/Media/tray-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/tray-demo.gif
--------------------------------------------------------------------------------
/Media/functional1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/functional1.png
--------------------------------------------------------------------------------
/Media/functional2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/functional2.png
--------------------------------------------------------------------------------
/Media/functional3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/functional3.png
--------------------------------------------------------------------------------
/Media/install-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/install-demo.gif
--------------------------------------------------------------------------------
/Media/chengeport-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/chengeport-demo.gif
--------------------------------------------------------------------------------
/Media/shortcut-menu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/shortcut-menu.gif
--------------------------------------------------------------------------------
/Media/Em-nxsdW8AAX8by.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/Em-nxsdW8AAX8by.jpeg
--------------------------------------------------------------------------------
/Media/Screenshot_20201115_195724.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/Screenshot_20201115_195724.png
--------------------------------------------------------------------------------
/Media/Screenshot from 2020-11-15 19-34-52.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/Screenshot from 2020-11-15 19-34-52.png
--------------------------------------------------------------------------------
/Media/WhatsApp Image 2020-11-11 at 01.26.52.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleoMenezesJr/LAMPP-Manager/HEAD/Media/WhatsApp Image 2020-11-11 at 01.26.52.jpeg
--------------------------------------------------------------------------------
/install/uninstall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sudo apt purge --remove mariadb-server -y
4 | sudo apt purge --remove mariadb-client -y
5 | sudo apt purge --remove php* -y
6 | sudo apt purge --remove phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
7 | sudo apt purge --remove vsftpd -y
8 | sudo apt purge --remove apache2 apache2-bin -y
9 | sudo apt autoremove -y
10 | echo
11 | echo 'Restart LAMPP Manager and see you son!'
12 | exit
--------------------------------------------------------------------------------
/check_release.py:
--------------------------------------------------------------------------------
1 | from requests import get
2 |
3 | class CheckRelease:
4 | current_version = 'v0.0.4'
5 |
6 | @classmethod
7 | def _getInformation(cls):
8 | with get('https://api.github.com/repos/CleoMenezes/LAMPP-Manager/releases') as releases:
9 | cls.release = releases.json()[0]['tag_name']
10 |
11 | @classmethod
12 | def checkRelease(cls):
13 | cls._getInformation()
14 | return cls.current_version != cls.release
15 |
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Cleo Menezes
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/install/Installer:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import gi
3 | gi.require_version('Gtk', '3.0')
4 |
5 | from gi.repository import Gtk
6 | from gi.repository import GObject
7 |
8 | import os
9 | from subprocess import Popen, PIPE
10 | import fcntl
11 |
12 | wnd = Gtk.Window()
13 | scroll = Gtk.ScrolledWindow()
14 | wnd.set_default_size(550, 550)
15 | wnd.connect("destroy", Gtk.main_quit)
16 | label = Gtk.Label()
17 | label.set_alignment(0, 0)
18 | wnd.add(scroll)
19 | scroll.add(label)
20 | wnd.show_all()
21 | sub_proc = Popen("sudo ./install.sh", stdout=PIPE, shell=True)
22 | sub_outp = ""
23 |
24 | def on_main_window_destroy(self, *args):
25 | Gtk.main_quit()
26 |
27 | def non_block_read(output):
28 | ''' even in a thread, a normal read with block until the buffer is full '''
29 | fd = output.fileno()
30 | fl = fcntl.fcntl(fd, fcntl.F_GETFL)
31 | fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
32 | op = output.read()
33 | if op == None:
34 | return ''
35 | return op.decode('utf-8')
36 |
37 |
38 |
39 | def update_terminal():
40 | label.set_text(label.get_text() + non_block_read(sub_proc.stdout))
41 | return sub_proc.poll() is None
42 |
43 | GObject.timeout_add(100, update_terminal)
44 | Gtk.main()
45 |
--------------------------------------------------------------------------------
/install/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sudo apt update & sudo apt upgrade -y
4 | sudo apt purge --remove apache* php* mariadb* -y
5 | sudo apt autoremove -y
6 | sudo apt install mariadb-server -y
7 | sudo apt install mariadb-client -y
8 | sudo apt install php -y
9 | cd /opt/LAMPP-Manager/configuration\ files
10 | sudo mv -f /opt/LAMPP-Manager/configuration\ files/ info.php /var/www/html/
11 | sudo a2enmod rewrite
12 | sudo service apache2 restartx
13 | cd /opt/LAMPP-Manager/configuration\ files
14 | sudo mv -f 000-default.conf /etc/apache2/sites-available/
15 | sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
16 | cd /opt/LAMPP-Manager/configuration\ files
17 | sudo mv apache2.conf /etc/apache2/
18 | sudo ln -s /usr/share/phpmyadmin /var/www/
19 | sudo chown -R www-data:www-data /usr/share/phpmyadmin
20 | sudo a2enconf phpmyadmin.conf
21 | sudo mkdir -p /var/lib/phpmyadmin/tmp
22 | sudo chown www-data:www-data /var/lib/phpmyadmin/tmp
23 | sudo a2enmod proxy_fcgi setenvif
24 | sudo chmod 777 -R /var/www/html
25 | sudo apt-get install vsftpd
26 | sudo apt install libnotify-bin
27 | sudo apt install apache2-bin -y
28 | sudo a2enconf php*.*-fpm
29 | sudo apt install apache2
30 |
31 | echo
32 | echo 'Restart LAMPP Manager and Enjoy!'
33 | exit
--------------------------------------------------------------------------------
/tray.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import signal
3 | import gi
4 | import os
5 | gi.require_version('Gtk', '3.0')
6 | gi.require_version('AppIndicator3', '0.1')
7 | from gi.repository import Gtk, AppIndicator3
8 |
9 | class Indicator():
10 | def __init__(self):
11 | self.app = 'Lampp Manager'
12 | iconpath = "/home/cleomenezesjr/CODE/LAMPP Manager/Media/bitmap.png"
13 | self.indicator = AppIndicator3.Indicator.new(
14 | self.app, iconpath,
15 | AppIndicator3.IndicatorCategory.OTHER)
16 | self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
17 | self.indicator.set_menu(self.create_menu())
18 |
19 | def create_menu(self):
20 | menu = Gtk.Menu()
21 | # menu item 1
22 | openLM = Gtk.MenuItem('Open Lamp Manager')
23 | openLM.connect('activate', self.openLM)
24 | menu.append(openLM)
25 | # separator
26 | # menu_sep = Gtk.SeparatorMenuItem()
27 | # menu.append(menu_sep)
28 | # quit
29 | item_quit = Gtk.MenuItem('Quit')
30 | item_quit.connect('activate', self.stop)
31 | menu.append(item_quit)
32 |
33 | menu.show_all()
34 | return menu
35 |
36 | def openLM(self, source):
37 | os.popen('pkill -f main.py; python3 main.py')
38 | os.popen('python3 main.py; exit')
39 |
40 | def stop(self, source):
41 | os.popen('pkill -f main.py')
42 | Gtk.main_quit()
43 |
44 | Indicator()
45 | signal.signal(signal.SIGINT, signal.SIG_DFL)
46 | Gtk.main()
--------------------------------------------------------------------------------
/configuration files/000-default.conf:
--------------------------------------------------------------------------------
1 | GNU nano 5.2 /etc/apache2/sites-available/000-default.conf
2 |
3 | # The ServerName directive sets the request scheme, hostname and port that
4 | # the server uses to identify itself. This is used when creating
5 | # redirection URLs. In the context of virtual hosts, the ServerName
6 | # specifies what hostname must appear in the request's Host: header to
7 | # match this virtual host. For the default virtual host (this file) this
8 | # value is not decisive as it is used as a last resort host regardless.
9 | # However, you must set it for any further virtual host explicitly.
10 | #ServerName www.example.com
11 |
12 | ServerAdmin webmaster@localhost
13 | DocumentRoot /var/www/html
14 |
15 | # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
16 | # error, crit, alert, emerg.
17 | # It is also possible to configure the loglevel for particular
18 | # modules, e.g.
19 | #LogLevel info ssl:warn
20 |
21 | ErrorLog ${APACHE_LOG_DIR}/error.log
22 | CustomLog ${APACHE_LOG_DIR}/access.log combined
23 |
24 | # For most configuration files from conf-available/, which are
25 | # enabled or disabled at a global level, it is possible to
26 | # include a line for only one particular virtual host. For example the
27 | # following line enables the CGI configuration for this host only
28 | # after it has been globally disabled with "a2disconf".
29 | #Include conf-available/serve-cgi-bin.conf
30 |
31 |
32 | # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
33 |
34 | AllowOverride All
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/configuration files/phpmyadmin.conf:
--------------------------------------------------------------------------------
1 | # phpMyAdmin default Apache configuration
2 |
3 | Alias /phpmyadmin /usr/share/phpmyadmin
4 |
5 |
6 | Options SymLinksIfOwnerMatch
7 | DirectoryIndex index.php
8 |
9 |
10 |
11 | AddType application/x-httpd-php .php
12 |
13 |
14 | SetHandler application/x-httpd-php
15 |
16 |
17 | php_value include_path .
18 | php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
19 | php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
20 | php_admin_value mbstring.func_overload 0
21 |
22 |
23 |
24 | AddType application/x-httpd-php .php
25 |
26 |
27 | SetHandler application/x-httpd-php
28 |
29 |
30 | php_value include_path .
31 | php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
32 | php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
33 | php_admin_value mbstring.func_overload 0
34 |
35 |
36 |
37 |
38 | # Disallow web access to directories that don't need it
39 |
40 | Require all denied
41 |
42 |
43 | Require all denied
44 |
45 |
46 | Require all denied
47 |
48 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at produtor.junior.menezes@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | LAMPP Manager
7 |
8 |
9 |
10 |
11 |
12 |
13 | A great way to manage and install LAMPP services
14 |
15 |
16 |
17 |
19 |
25 |
26 |
27 | # ⚈ About & How to use
28 | Disclaimer: This project was created in order to facilitate the use of LAMPP. Before it was just a personal project to facilitate my day to day, but I decided to share it. Please enjoy and let me know any issues!
29 |
30 |
31 | LAMPP Manager is a front end of LAMPP services where it will also have resources to facilitate day-to-day use, such as shortcuts to open the server directory, phpmyadmin and etc., and also to install LAMPP in an easy and intuitive way.
32 | I created an interface as clean as possible, without distractions, where you can simply start Apache or stop MySQL or simply with one click stop or start all services.
33 |
34 | Maybe for those who are used to doing everything for the Terminal they won't care much, but believe me, those who are starting in the Linux world sometimes just want to download a program that solves all of this in an easy and intuitive way.
35 |
36 |
37 |
38 | 🚧 Don't forget that it's still going on day by day... 🚧
39 |
40 |
41 |
42 |
43 | # ⚈ How to get started
44 |
45 | LAMPP Manager is now available in DEB and RPM.
46 |
47 | ### Deb installation
48 | To install the deb version it is only necessary to download the file here,install via your package installer probably just by opening the file. Install it as you normally do with any other program.
49 |
50 | ### Rpm installation
51 | Our version in RPM is still experimental and was made through conversion by Alien but all the code was adapted to work in Fedora.
52 | 1. Download the RPM file here
53 | 2. Install Alien: ```sudo yum install alien```
54 | 3. Go to the directory where the lampp-manager _ *. *. *. rpm file is and run ```alien -i lampp-manager _ *. *. *. rpm```
55 |
56 | Install it as you normally do with any other program. When the installation is finished, no other process is necessary.
57 |
58 | ## Installation of LAMPP
59 | After wasting a lot of time setting up a new environment and several times having problems with the installation of LAMPP, I tested several solutions and decided to create a simple script for installing and configuring the entire environment. LAMPP Manager.
60 | I hope you enjoy your time programming.
61 |
62 | To install or uninstall it you just need to access the menu button on the upper left, click on Install LAMPP and choose between the Install Now and Uninstall options. After that, a Terminal window will open asking for your root password in order to execute your script.
63 | Remember, there are settings that must be manual such as configuring MySQL, Phpmyadmin and etc.
64 |
65 |
66 |
67 |
77 |
78 | ## Change port services
79 |
80 | This was certainly the most requested feature. Now you can easily change the service port just by clicking on the corresponding button on the right side, choose the port, click on the Change button, confirm the change and that's it!
81 | By default the FTP used is VSFPd, the port must still be changed manually.
82 |
83 |
84 |
89 |
90 | ## App indicator
91 |
92 | We now have an indicator on the tray that runs in the background so you can access LAMPP Manager more easily. spoiler: in the future they will be able to turn services on and off through there.
93 |
94 | 
95 |
96 |
97 | ## Notifications
98 |
99 | In addition to showing the status and ports of the services, LAMPP Manager now notifies you when these changes occur.
100 |
101 | 
102 |
103 | ## Shortcuts
104 |
105 | Some shortcuts on the menu to facilitate the workflow.
106 |
107 |
108 | 
109 |
110 |
111 |
112 | # ⚈ Some Screenshots
113 |
114 |
115 |
116 |
Pop!_OS
117 |
118 |
Fedora
119 |
120 |
KDE Neon
121 |
122 |
123 |
124 |
125 |
126 | # ⚈ Tech Stack
127 |
128 | The following tools were used in the construction of the project:
129 |
130 | - [Python](https://www.python.org/)
131 | - [GTK](https://www.gtk.org/)
132 | - [Glade](https://glade.gnome.org/)
133 | - [Bash](https://www.gnu.org/software/bash/)
134 |
135 |
⚈ Bugs
136 |
137 | Please report any type of bug. Remember that this is an open source project and will evolve with everyone's help. :)
138 | Make the Linux world a friendlier place.
139 |