Skip to content

How to: install ezXSS

elyesa edited this page Feb 3, 2024 · 16 revisions

ezXSS offers a straightforward installation process with several deployment options, accommodating both traditional web servers running Apache/NGINX and containerized environments using Docker.

Prerequisites for Installation

Ensure you have the following prerequisites met before proceeding with the installation of ezXSS:

  • A domain name - shorter names are generally preferable;
  • A server with either Docker or hosting environment running PHP version 7.1 or higher;
  • An SSL Certificate for secure, encrypted connections on HTTPS websites. Free SSL certificates can be obtained from services like Cloudflare or Let's Encrypt. Notably, Docker installations can automate this process.

Recommendations

For a seamless installation experience:

  • It is advisable to have your domain already pointing to the intended web root directory where ezXSS will be installed.
  • Ensure that an SSL certificate is pre-installed or arrange for its installation concurrently with ezXSS.

Installing ezXSS with Apache

  • Clone/download the repository and put the files in the document root (e.g. /var/www/html/)
  • Rename .env.example to .env
  • Create an empty database and provide your database information in .env
  • Visit /manage/install in your browser and setup your account
  • Done! That was ez right?

If you have any problems with the panel not showing up make sure you have headers, rewrite and curl modules enabled

  • a2enmod rewrite headers
  • apt-get install curl php-curl

Also check that .htaccess is also uploaded in your webroot, and AllowOverride All is present in your Apache config, most cases somewhere in /etc/apache2/apache2.conf.

Installing ezXSS with Docker

Utilize Docker for an easy installation of ezXSS, inclusive of an automatically configured LetsEncrypt certificate. For Docker installation instructions, refer to the Docker Documentation: https://docs.docker.com/engine/install/.

1. Clone the Repository

Begin by cloning the ezXSS repository and navigating into the directory:

git clone https://github.com/ssl/ezXSS
cd ezXSS

2. Configure the environment

The configuration file can be edited to your liking and needs some small edits to work for you.

  • Copy the example environment file to create your own .env configuration file:
cp .env.example .env
  • Edit the .env file using your preferred text editor (e.g., vim, nano). With Docker, modify the following essential settings:
dbPassword=changeme # Assign a securely generated password
autoInstallCertificate=true # Enables automatic certificate generation and installation
domain=example.ezxss.com # Designate the serving domain for ezXSS and corresponding certificate
  • To operate ezXSS locally without SSL, adjust the following option:
httpmode=true # Activates ezXSS in non-SSL mode
  • For email notifications, configure SMTP details in the msmtprc file. To disable mail alerts:
useMailAlerts=false # Disables email alert setup

3. Launch the Docker Container

Initiate the ezXSS container with Docker Compose:

docker compose up -d

After Docker is done, ezXSS will be accessible within a minute. For troubleshooting, inspect the container logs:

docker ps
docker logs <container id of ezxss>

4. Complete the Installation

Finalize the setup by:

  • Navigating to /manage/install in your web browser.
  • Completing the installation with the creation of an admin account, specifying a username and password.

Installing ezXSS with nginx

  • Clone the repository and put the files in the document root
  • Setup your config (e.g. /etc/nginx/sites-enabled/default) like the example: nginx-rewrite.conf
  • Rename .env.example to .env
  • Create an empty database and provide your database information in .env
  • Visit /manage/install in your browser and setup your account
  • Done! That was ez right?
Clone this wiki locally