The Inception project is a containerized web infrastructure stack that provides a complete WordPress hosting environment with database management, file transfer capabilities, and caching services. All services run in isolated Docker containers orchestrated by Docker Compose.
The stack includes the following services:
- Reverse proxy and web server serving HTTPS (SSL/TLS encrypted)
- Hosts static website and WordPress application
- Listens on ports 80 (HTTP) and 443 (HTTPS)
- Automatically redirects HTTP to HTTPS for security
- Content management system for website creation and management
- Database-backed application
- Accessible through the Nginx web server
- Requires database connectivity
- Automatically installed and configured on first run with site, users, and performance plugins
- Relational database server (MySQL-compatible)
- Stores WordPress data and website content
- Requires authentication credentials
- Data persists in Docker volumes between restarts
- File Transfer Protocol server for uploading/downloading website files
- Secured with SSL/TLS certificates
- Listens on port 21 for control commands
- Passive mode ports: 21000-21010
- Requires FTP credentials for authentication
- In-memory cache and data store
- Improves application performance
- Used by WordPress for caching
- Automated backup service for database protection
- Web-based UI for monitoring and managing backups
- Scheduled automatic backups of WordPress database
- Backup storage and retention management
- Accessible via web interface on port 2703
- Web-based database management tool
- Graphical interface for MariaDB administration
- Allows direct database queries and data manipulation
- Alternative to command-line database tools
- Docker and Docker Compose installed and running
- SSL certificates generated (see Credentials and SSL Setup section)
- Secrets files created (automatically generated on first start)
To start all services:
make upThis command:
- Generates missing secret files (if needed)
- Builds Docker images (if needed)
- Starts all containers
- Displays live logs from all services
To build without starting:
make buildTo stop all services while preserving data:
make downThis command:
- Gracefully stops all running containers
- Preserves volumes (database and WordPress files remain intact)
- Does not delete data or configurations
To view live logs from running services:
make logsPress Ctrl+C to exit the log view.
To perform a complete rebuild and restart:
make reURL: https://lrocca.42.fr/
- Open your web browser and navigate to the domain
- The site uses HTTPS by default (secure connection)
- Shows WordPress homepage with any custom content you've created
URL: https://lrocca.42.fr/wp-admin/
Default Credentials (automatically configured on first run):
- Admin User:
root - Admin Password: See Credentials section for
wordpress_root_password.txt - Additional User:
lrocca(Contributor role, password: See Credentials section forwordpress_user_lrocca_password.txt)
Features:
- Manage pages, posts, users, themes, and plugins
- Configure WordPress settings
URL: http://localhost:2703/
- Access the GoBackup administration interface
- Username:
lrocca(configured in backup settings) - Password: See Credentials section for
gobackup_ui_password.txt - View backup history and schedule
URL: https://adminer.lrocca.42.fr/
- Alternative direct access if configured
- Log in with database credentials:
- Server:
mariadb(hostname from Docker network) - Username:
rootor application user - Password: See Credentials section
- Database: Select from available databases
- Server:
Adminer Features:
- View and edit database tables
- Execute SQL queries
- Export/import data
- User and privilege management
Connection Details:
- Server:
lrocca.42.fr - Port:
21 - Username:
ftpuser - Password: See Credentials section
- Connection Type: FTPS (FTP with implicit SSL/TLS)
- Root Directory:
/home/ftpuser/(WordPress files)
To connect using FTP client:
- Open your FTP client (Filezilla, WinSCP, etc.)
- Create a new connection with details above
- Set encryption to "Implicit FTPS"
- Browse and manage website files directly
All sensitive credentials are stored in the /secrets/ directory:
secrets/
├── db_password.txt # WordPress database password
├── db_root_password.txt # MariaDB root password
├── ftp_password.txt # FTP user password
├── gobackup_ui_password.txt # GoBackup web UI password
├── wordpress_root_password.txt # WordPress admin password
└── wordpress_user_lrocca_password.txt # WordPress user "lrocca" password
On first run, the Makefile automatically generates random credentials:
- 12-character hexadecimal strings created using OpenSSL
- Credentials are persistent between restarts (saved in files)
- Each service gets its own unique password for security
For the following commands, it's convenient to change into the srcs directory first:
cd srcsThis way, you can run docker compose commands directly without the -f srcs/compose.yml flag.
To see which containers are running:
docker psExpected output should show all containers running.
To get detailed container information:
docker compose psHealthy containers show status: Up N minutes
View logs from all services:
make logsView logs from a specific service:
docker compose logs [service_name]Example: docker compose logs nginx
Test Nginx/Website:
curl -k https://lrocca.42.fr/Should return HTML content (may include warnings about self-signed certificate with -k flag).
Test Database connectivity:
docker compose exec mariadb mysql -u root -p$(cat ../secrets/db_root_password.txt) -e "SELECT 1"Should output 1 if database is responding.
Test Redis:
docker compose exec redis redis-cli pingShould output PONG.
Test FTP:
docker compose exec ftp ps aux | grep vsftpdShould show vsftpd process running.
Monitor container resource consumption:
docker statsShows CPU, memory, and network usage for all containers in real-time.
View detailed container information:
docker inspect [container_name]Example: docker inspect nginx (shows container configuration, network settings, volumes, etc.)