-
NGINX (TLS reverse proxy)
- Web server serving WordPress via HTTPS
- Exposed ports: 443, 80
-
WordPress (php-fpm)
- Purpose: WordPress application backend (PHP execution layer)
- Exposed ports: 9000 (internal only)
-
MariaDB
- Purpose: database for wordpress data
- Exposed ports: 3306 (internal only)
- NGINX → PHP-FPM (WordPress processing)
- WordPress → MariaDB (database queries)
- Docker network: internal bridge network (
inceptionor project network name)
make up # build + run services
make down # stop services
make clean # remove containers and images
make fclean # wipe all data- URL:
https://${DOMAIN_NAME} - Notes:
- Self-signed certificate warning is expected (ignore in browser)
- URL:
https://${DOMAIN_NAME}/wp-admin - Login:
- Username: from /secrets/wp_admin.txt
- Password: from /secrets/wp_admin_password.txt
- File:
.env - What it controls:
- Domain name, ports, and general service configuration
- Required variables:
DOMAIN_NAME=NGINX_HTTP_PORT=80NGINX_HTTP_PORT_HOST=80NGINX_HTTPS_PORT=443NGINX_HTTPS_PORT_HOST=443PHP_FPM_PORT=9000MARIADB_PORT=3306MARIADB_BIND_ADDRESS=0.0.0.0WORDPRESS_TITLE=LOGIN=${USER}
- Required files:
db_name.txtdb_password.txtdb_root_password.txtdb_user.txtwp_admin.txtwp_admin_email.txtwp_admin_password.txtwp_user.txtwp_user_email.txtwp_user_password.txt
docker compose ps
make status [service...]- MariaDB: database is ready to accept connections
- WordPress (PHP-FPM): responds to PHP execution requests via NGINX
- NGINX: responds on HTTPS (443) and serves WordPress page
docker compose logs
make logs [service...]- HTTPS:
sh curl -k https://${DOMAIN_NAME}
- WordPress:
- Visit /wp-admin and verify login works
- Database:
docker execinto MariaDB container and check tables exist (mysql -u ...)
# Enter the MariaDB container shell
docker exec -it srcs-mariadb-1 sh
# Connect to MariaDB using the application database user
mysql -u <db_user> -p
# List all databases on the server
SHOW DATABASES;
# Switch to the WordPress database
USE wordpress_db;
# List all tables inside the WordPress database
SHOW TABLES;
# Show privileges assigned to the database user
SHOW GRANTS FOR '<db_user>'@'%';
# Run a one-liner to list databases without entering the shell
docker exec mariadb mysql -u root -p -e "SHOW DATABASES;"
# Check if MariaDB is listening on port 3306
ss -tulnp | grep 3306