Page MenuHomeGitPull.it

Kiss Libre Hosting Panel
Updated 1,251 Days AgoPublic

Version 3 of 15: You are viewing an older version of this document, as it appeared on Nov 23 2020, 01:44.

KISS Libre Hosting Panel

Welcome in an actively developed keep-it-simple-and-stupid hosting panel designed for GNU/Linux operating systems. This software can be useful to serve everyday shared hosting services.

This panel is designed to respect the freedom of its users. It works without proprietary JavaScript. To be honest, without any line of JavaScript in any form.

This panel is designed to work without any external dependency not written by me. This allow fine-grained control over the software. It integrates with well-known and ultra-secure software packaged inside every GNU/Linux distribution in the world and used by millions of devices.

I would like to thank Giorgio Maone for his project NoScript, for the moral incentive, and Richard Stallman, for The JavaScript Trap paper.

Disclaimer

Do not try to become a system administrator if you do not like responsibilities, if you do not want to understand your infrastructure, if you do not want to have information security paranoia, etc.

Preamble

An hosting panel is just the iceberg summit of a lot of technologies and protocols involved. Do not try to implement such project in production if you do not know what you are doing. You must gain confidence with the technologies involved.

Papers:

  • RFC 5321 - Simple Mail Transfer Protocol
  • RFC 7208 - Sender Policy Framework (SPF)
  • RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures
  • RFC 7489 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)

Software involved:

  • Debian GNU/Linux stable (currently buster)
  • MariaDB / MySQL
  • Postfix
  • Dovecot
  • PureFTPd
  • OpenDKIM
  • Apache HTTP server / nginx
  • PHP

Features

Let me say that I love listening to the whishlist of my costumers. Here are the most important features/TODOs:

  • administration of own mailboxes (thanks to Postfix and Dovecot over MariaDB)
    • list
    • password reset
    • add
    • IMAP/SMTP documentation
    • remove
    • view quota
  • administration of own mail aliases (thanks to Postfix and Dovecot over MariaDB)
    • list
    • change forward destination(s)
    • add
    • remove
  • administration of own FTP accounts (thanks to Pure-FTPd over MariaDB)
    • list
    • add
    • remove
    • password reset
  • administration of own MariaDB databases
    • list own databases
    • list own users
    • change user password
  • administration of User(s)
    • create
    • password reset
    • create a Domain for that User
    • change login
    • change e-mail
  • plans
    • limit number of mailboxes per domain
    • limit number of mail forwardings
  • action log

Installation

Clone these somewhere:

git clone https://gitpull.it/source/boz-libre-hosting-panel.git
git clone https://gitpull.it/source/suckless-php.git

Install a database server and other stuff for the web interface:

# database
apt install mariadb-server

# web server
apt install apache2 libjs-bootstrap

Then create an empty database with a dedicated user (change the password!):

$ sudo mysql

CREATE DATABASE libre_hosting_panel;

CREATE USER libre_hosting_panel@localhost IDENTIFIED BY 'aaaah change me!';

GRANT ALL PRIVILEGES ON libre_hosting_panel.* TO libre_hosting_panel@localhost;

Now edit your panel configuration:

cp kiss-libre-hosting-panel/load-example.php kiss-libre-hosting-panel
/load.php

nano kiss-libre-hosting-panel/load.php

Now install your database:

./kiss-libre-hosting-panel/cli/database-upgrade

Finally eventually install your hosting stuff:

# FTP server
apt install pure-ftpd-mysql

# mailserver
apt install postfix-mysql postfix-policyd-spf-python dovecot-mysql dovecot-imapd dovecot-pop3d spamassassin

Why PHP7

This project is writted in PHP7 because:

  • Node.js is not an hypertext preprocessor
  • Python is not an hypertext preprocessor
  • Ruby is not an hypertext preprocessor
  • Java is not an hypertext preprocessor. Well, Java JSP is an hypertext preprocessor but it's footprint is heavy as hell

This PHP7 application is stateless. Does not have sessions. It's well-designed. It scales. It has a minimal memory footprint. If you do not like it, you are free to implement such project with your favorite programming language, with your 200MB of dependencies and crap.

Report a bug

https://gitpull.it/tag/kiss_libre_hosting_panel/

Report a feature

https://gitpull.it/tag/kiss_libre_hosting_panel/

License

Copyright (C) 2018, 2019, 2020 Valerio Bozzolan - KISS Libre Hosting Panel

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Referenced Files
F1480275: image.png
Apr 17 2021, 22:45
F1480271: image.png
Apr 17 2021, 22:45
F1480265: kiss-libre-mailbox.png
Apr 17 2021, 22:45
F1480269: image.png
Apr 17 2021, 22:45
F1480267: image.png
Apr 17 2021, 22:45
Last Author
valerio.bozzolan
Last Edited
Nov 23 2020, 01:44

Event Timeline

@0iras0r I've tested this guide and it works :)

Tell me if I can do something to further improve or simplify it.

valerio.bozzolan changed the title from Kiss Libre Hosting Panel to KISS Libre Hosting Panel.Mar 23 2021, 15:24