Skip to content

A tool for provisioning servers and maintaining WordPress sites.

Notifications You must be signed in to change notification settings

sitepilot/autopilot-ansible

Repository files navigation

Autopilot

Autopilot

Autopilot is a (cloud) webhosting control panel for managing multiple servers, sites and WordPress installations. We use Autopilot at Sitepilot for our managed WordPress webhosting platform. With Autopilot you can:

  • Provision WordPress optimized web servers and load balancers.
  • Monitor server and site health of the provisioned servers and sites.
  • Manage and maintain WordPress sites.

Autopilot is build on top of Laravel and uses Ansible to provision servers, users, databases and sites on Ubuntu 20.04 LTS servers.

Supported Server Providers

Autopilot supports the following server providers:

If your preferred provider is not baked into Autopilot, you can always use the Custom VPS option. There are a few requirements to ensure that this works successfully:

  • The server your connecting to must be running a fresh installation of Ubuntu 20.04 LTS.
  • Your server must be accessible by the Autopilot host.
  • There must be a root user with no password.

Web Server Configuration

Packages & Services

The following packages/services will be installed and configured on web servers (together with dependencies):

Users are isolated and allowed to use SFTP with password authentication (chroot directory /opt/sitepilot/users/%u).

Tools

  • phpMyAdmin: http://<domain.name>/.sitepilot/pma/.
  • Health check: http://<domain.name>/.sitepilot/health/.
  • Node Exporter: http://<domain.name>/.sitepilot/node-exporter/.

Filesystem

  • Users folder: /opt/sitepilot/users.
  • Site public folder: /opt/sitepilot/users/{{ user.name }}/{{ app.name }}/public.
  • Site logs folder: /opt/sitepilot/users/{{ user.name }}/{{ app.name }}/logs.
  • OpenLitespeed service folder: /opt/sitepilot/services/olsws.
  • MySQL service folder: /opt/sitepilot/services/mysql.
  • Redis service folder: /opt/sitepilot/services/redis.
  • Node Exporter service folder: /opt/sitepilot/services/node-exporter.
  • phpMyAdmin service folder: /opt/sitepilot/services/phpmyadmin.

Load Balancer Configuration

Packages & Services

The following packages/services will be installed and configured on load balancer servers (together with dependencies):

Filesystem

  • Caddy vhosts folder: /opt/sitepilot/services/caddy/vhosts.
  • Caddy logs folder: /opt/sitepilot/services/caddy/logs.

Monitoring

Autopilot uses Prometheus, Alertmanager, Blackbox Exporter and Grafana to monitor servers and sites. These services are included in the Autopilot Stack.

Installation & Contributing

Licenses

  • Laravel Nova License: Autopilot uses Laravel Nova for managing resources. A valid Laravel Nova license is required when installing Autopilot. Composer will prompt for the username and password to validate your license while installing packages.

Installation

The recommended way to install Autopilot is using the preconfigured Autopilot Stack. You can find the installation instructions here.

Contributing

Thank you for considering contributing to Autopilot! Follow these steps to install Autopilot on your server:

  • Clone this repository to your web server.
  • Copy the example environment file and modify it to your needs: cp .env.example .env.
  • Install Composer packages with composer install. NOTE: Composer will prompt for your Laravel Nova username and password to validate your license.
  • Generate an application key with php artisan key:generate.
  • Migrate and seed the database with php artisan migrate --seed.
  • Navigate to the application domain and login. Default user: admin@sitepilot.io, default password: supersecret.

Environment Requirements

The following software must be installed on the server in order to manually install Autopilot:

  • PHP7.4
  • Ansible
  • Composer

NOTE: These packages are included in the Autopilot Docker container.

Commands

  • Autopilot uses Laravel Horizon to process Redis queues. To start the configured queue workers run: php artisan horizon.
  • Autopilot uses Laravel Task Scheduling to schedule tasks. To test scheduled tasks run: php artisan schedule:run.

NOTE: These commands are preconfigured to run in the Autopilot Docker container.

Screenshots

screenshot screenshot

License

MIT / BSD

Author

Autopilot was created in 2020 by Nick Jansen.

Releases

No releases published

Packages

No packages published

Languages