This document provides guidance for developers to set up, build, and manage the Inception project locally. The project uses Docker and Docker Compose for containerization, with optional Ansible automation for remote infrastructure provisioning.
- OS: Alpine Linux
- Docker: Version 20.10+ with Docker Compose v2
- Python: 3.12+ (required only on controller machine for Ansible)
- Git: For version control
- OpenSSL: For certificate generation
- Make: For using the Makefile
- uv: Fast Python package installer
Python and Ansible are only required on the controller machine (the one running Ansible playbooks to deploy to remote servers). Local Docker Compose development does not require Ansible.
Check Python version:
python3 --version # Should be 3.12+Install dependencies:
uv syncVerify installation:
ansible --versiongit clone <repository-url> inception
cd inceptionInstall with uv:
uv syncEdit playbooks/group_vars/all.yml:
Secret files are automatically generated by the Makefile on first run:
make secretsThis command creates the following files in the secrets/ directory with secure permissions (600):
db_password.txt- WordPress database passworddb_root_password.txt- MariaDB root passwordftp_password.txt- FTP user passwordgobackup_ui_password.txt- GoBackup web UI passwordwordpress_root_password.txt- WordPress admin password (used by WordPress auto-installation)wordpress_user_lrocca_password.txt- WordPress user "lrocca" password
ansible-playbook playbooks/site.ymlThis playbook configures the environment, generates SSL certificates, and prepares the system for Docker services.
Verify deployment:
ls -la ssl/ # Check SSL certificates exist
ls -la secrets/ # Check secrets were createdThe Makefile provides convenient shortcuts for common tasks:
make up # Start all services (builds if needed)
make down # Stop all services
make build # Build Docker images without starting
make logs # View live logs
make re # Rebuild and restart everythingAfter deploying site.yml, start all services with:
make upThis single command:
- Generates missing secrets files with secure permissions (600)
- Builds Docker images for all services
- Starts all containers
- Automatically installs WordPress with admin user and plugins
- Displays live logs
Press Ctrl+C to exit logs (containers continue running).
First Run WordPress Setup: On first startup, WordPress automatically:
- Creates the database schema
- Installs WordPress core with URL
https://lrocca.42.fr - Creates admin user
rootwith password fromwordpress_root_password.txt - Creates additional contributor user
lroccafor content management - Installs and activates the Redis Object Cache plugin
- Configures Redis connection for performance optimization
On subsequent runs, these setup steps are skipped (WordPress already installed).
To build images without starting services:
make buildThis is useful for:
- Verifying Dockerfiles have no syntax errors
- Pre-building images before deployment
- Updating base images with
docker pull
For more control, use Docker Compose directly. First change to the srcs directory:
cd srcsStart services:
docker compose up -d # Start in background
docker compose up # Start in foreground (shows logs)Stop services:
docker compose down # Stop and remove containers
docker compose stop # Stop without removingView status:
docker compose ps # List containers and status
docker compose logs -f # Follow logs (live update)
docker compose logs nginx # Logs for specific serviceRebuild specific service:
docker compose build nginx
docker compose up -d nginxExecute commands in container:
docker compose exec nginx sh # Interactive shell
docker compose exec nginx ls /etc # Single command
docker compose exec wordpress wp-cli # WordPress CLIList volumes:
docker volume lsExpected volumes:
inception_database- MariaDB datainception_wordpress- WordPress files
Inspect volume:
docker volume inspect inception_databaseRemove volume (
docker volume rm inception_databaseRemove stopped containers:
docker container pruneRemove unused volumes:
docker volume pruneRemove unused images:
docker image pruneFull cleanup (
docker system prune -a