wordpress-deploy
Install | Deploy a site | Configuration options | FAQs
Use this to setup blogs for your family or landing pages for your side-projects. (Hint: Gutenberg editor Full Site Editing is ๐ฅ)
- ๐ Easy to configure
- ๐ฐ Budget-friendly setup. Stuff as many sites as you can on your $5 server.
- โป๏ธ Automated weekly backups by email + daily backups on server (docs)
- ๐ช Firewall protection with
ufw
- โก๏ธ Pre-installs WP Super Cache for speed optimization
- ๐งช Tested on DigitalOcean
- โ Wordpress update email alerts
- ๐ฎโโ๏ธ Server monitoring with email alerts (๐จโ๐ป Coming soon)
You still need to enable disk backups with your cloud provider.
Install
Install python3 and clone this repository.
git clone https://github.com/HashNuke/wordpress-deploy.git wordpress-deploy
cd wordpress-deploy
# ๐๐๐ Start a python virtual environment
python3 -m venv venv && source venv/bin/activate
# ๐๐๐ Ensure to run the above command.
# Install ansible. This project only needs ansible.
# Else your terminal will not find the "ansible-playbook" command.
pip3 install ansible
Deploy a site
Please follow the same order of instructions to avoid issues.
[Step-1] Create a server with Ubuntu 22.04 (LTS) on your cloud provider
Ensure to choose SSH key as the authentication method and add the SSH key to your local SSH key agent.
ssh-add ~/.ssh/mykey
[Step-2] Add DNS records for domain/subdomains
- Domain/subdomain for the website.
- Domain/subdomain for email notifications (backup emails, alerts, etc). Add an A-record for this.
These two can be the same domain/subdomain.
[Step-3] Create a config file for the site
cp sites/sample.yml path/to/mysite.yml
The sample config file has details about configuration options. Give it a read.
[Step-4] Deploy
Now let's deploy this site the server example.com
. You can also use an IP address like 1.2.3.4
PLEASE do not ignore the comma. Notice the value is "example.com," in the command below.
ansible-playbook setup.yml \
-i "example.com," \
--extra-vars @/path/to/mysite.yml
๐ Login credentials + New site checklist ๐
The wordpress admin user will receive an email with login credentials for the admin user. This email also includes a checklist for your new site.
[IMPORTANT] If you do not find this email in your inbox, please check your spam folder. And if you still do not find it then check the instructions below the screenshot.
Find default password for admin user
If you do not get an email after setting up a new site, then you can still access the password for the admin user. The default password is stored as a file on the server.
Assuming your site_name
is "mysite", your default wordpress admin password can be found at the following path on the server.
/sites/mysite/config/default-password
More documentation
License
Copyright (C) from 2022 till date: Akash Manohar John
Check the LICENSE file for more info.