2024-12-22 18:56:32 +01:00
|
|
|
name: inception
|
2024-12-13 18:54:39 +01:00
|
|
|
|
|
|
|
volumes:
|
2024-12-22 18:56:32 +01:00
|
|
|
wp-db:
|
2025-03-05 14:17:13 +01:00
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: none
|
|
|
|
device: /home/adjoly/data/wp-db
|
|
|
|
o: bind
|
2024-12-22 18:56:32 +01:00
|
|
|
wp-site:
|
2025-03-05 14:17:13 +01:00
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: none
|
|
|
|
device: /home/adjoly/data/wp-site
|
|
|
|
o: bind
|
2025-02-22 17:11:06 +01:00
|
|
|
nginx-certs:
|
2025-03-05 14:17:13 +01:00
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: none
|
|
|
|
device: /home/adjoly/data/certs
|
|
|
|
o: bind
|
2025-03-03 21:16:45 +01:00
|
|
|
backup:
|
2025-03-05 14:17:13 +01:00
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: none
|
|
|
|
device: /home/adjoly/data/backup
|
|
|
|
o: bind
|
|
|
|
|
|
|
|
secrets:
|
|
|
|
ftp-pass:
|
2025-03-05 17:57:14 +01:00
|
|
|
file: ../secrets/ftp/pass.txt
|
2025-03-05 14:17:13 +01:00
|
|
|
root-db-pass:
|
2025-03-05 17:57:14 +01:00
|
|
|
file: ../secrets/db/root_pass.txt
|
2025-03-05 14:17:13 +01:00
|
|
|
user-db-pass:
|
2025-03-05 17:57:14 +01:00
|
|
|
file: ../secrets/db/user_pass.txt
|
2025-03-05 14:17:13 +01:00
|
|
|
borg-passphrase:
|
2025-03-05 17:57:14 +01:00
|
|
|
file: ../secrets/borg/passphrase.txt
|
2025-03-05 14:17:13 +01:00
|
|
|
wp-admin-pass:
|
2025-03-05 17:57:14 +01:00
|
|
|
file: ../secrets/wp/admin_pass.txt
|
2024-12-13 18:54:39 +01:00
|
|
|
|
|
|
|
networks:
|
|
|
|
inception:
|
|
|
|
external: false
|
|
|
|
|
|
|
|
services:
|
|
|
|
nginx:
|
|
|
|
container_name: inception-nginx
|
2025-01-07 16:01:49 +01:00
|
|
|
build:
|
|
|
|
context: .
|
2025-01-17 16:49:53 +01:00
|
|
|
dockerfile: docker/nginx/Dockerfile
|
2024-12-13 18:54:39 +01:00
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
environment:
|
2025-01-17 16:49:53 +01:00
|
|
|
- NGINX_PHP_HOST=inception-wordp-php
|
|
|
|
- NGINX_SSL_KEY_FILE=/etc/nginx/ssl/adjoly-wp.key
|
|
|
|
- NGINX_SSL_CERT_FILE=/etc/nginx/ssl/adjoly-wp.crt
|
2024-12-13 18:54:39 +01:00
|
|
|
depends_on:
|
2025-01-17 16:49:53 +01:00
|
|
|
wordpress-php:
|
2025-02-15 19:22:32 +01:00
|
|
|
condition: service_healthy
|
2025-01-17 16:49:53 +01:00
|
|
|
db:
|
2025-02-15 19:22:32 +01:00
|
|
|
condition: service_healthy
|
2024-12-13 18:54:39 +01:00
|
|
|
volumes:
|
2025-02-15 19:22:32 +01:00
|
|
|
- wp-site:/var/www/wordpress
|
2025-01-17 16:49:53 +01:00
|
|
|
- ./configs/nginx/templates:/etc/nginx/templates
|
|
|
|
- ./configs/nginx/entry:/docker-entrypoint.d
|
2025-02-22 17:11:06 +01:00
|
|
|
- nginx-certs:/etc/nginx/ssl
|
2024-12-22 18:56:32 +01:00
|
|
|
ports:
|
2025-03-05 14:17:13 +01:00
|
|
|
- "443:443"
|
2024-12-13 18:54:39 +01:00
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
wordpress-php:
|
2025-01-12 15:17:52 +01:00
|
|
|
container_name: inception-wordp-php
|
2025-01-07 16:01:49 +01:00
|
|
|
build:
|
|
|
|
context: .
|
2025-01-15 22:06:40 +01:00
|
|
|
dockerfile: docker/wordpress/Dockerfile
|
2024-12-13 18:54:39 +01:00
|
|
|
networks:
|
|
|
|
- inception
|
2025-01-17 16:49:53 +01:00
|
|
|
depends_on:
|
|
|
|
db:
|
2025-02-15 19:22:32 +01:00
|
|
|
condition: service_healthy
|
2024-12-13 18:54:39 +01:00
|
|
|
environment:
|
2025-03-05 17:57:14 +01:00
|
|
|
- WP_DB_NAME=${DB_NAME}
|
|
|
|
- WP_DB_USER=${DB_USER}
|
2025-03-05 14:17:13 +01:00
|
|
|
- WP_DB_PASS_FILE=/run/secrets/user-db-pass
|
2025-02-16 17:45:10 +01:00
|
|
|
- WP_DB_HOST=db
|
2025-03-05 17:57:14 +01:00
|
|
|
- WP_ADMIN_EMAIL=${WP_MAIL}
|
2025-02-16 17:45:10 +01:00
|
|
|
- WP_ADMIN_USER=kanel
|
2025-03-05 14:17:13 +01:00
|
|
|
- WP_ADMIN_PASS_FILE=/run/secrets/wp-admin-pass
|
|
|
|
- WP_URL=adjoly.42.fr
|
2025-02-16 17:45:10 +01:00
|
|
|
- WP_TITLE=Kanel Supremacy
|
|
|
|
- WP_SEARCH_ENGINE_VISIBILITY=false
|
2025-01-10 16:57:23 +01:00
|
|
|
- PHP_MEMORY_LIMIT="512M"
|
|
|
|
- PHP_MAX_UPLOAD="50M"
|
2025-01-15 22:06:40 +01:00
|
|
|
- PHP_PORT=9000
|
2025-03-04 10:47:25 +01:00
|
|
|
- REDIS_HOSTNAME=redis
|
|
|
|
- REDIS_PORT=6379
|
2024-12-22 18:56:32 +01:00
|
|
|
volumes:
|
2025-02-15 19:22:32 +01:00
|
|
|
- wp-site:/var/www/wordpress
|
2025-02-16 17:45:10 +01:00
|
|
|
- ./configs/wordpress/entry:/docker-entrypoint.d
|
2025-03-05 14:17:13 +01:00
|
|
|
secrets:
|
|
|
|
- user-db-pass
|
|
|
|
- wp-admin-pass
|
2024-12-13 18:54:39 +01:00
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
db:
|
|
|
|
container_name: inception-db
|
2025-01-07 16:01:49 +01:00
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/mariadb/Dockerfile
|
2024-12-13 18:54:39 +01:00
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
environment:
|
2025-03-05 14:17:13 +01:00
|
|
|
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/root-db-pass
|
|
|
|
- MYSQL_PASSWORD_FILE=/run/secrets/user-db-pass
|
2025-03-05 17:57:14 +01:00
|
|
|
- MYSQL_USER=${DB_USER}
|
|
|
|
- MYSQL_DATABASE=${DB_NAME}
|
2024-12-22 18:56:32 +01:00
|
|
|
volumes:
|
|
|
|
- wp-db:/var/lib/mysql
|
2024-12-13 18:54:39 +01:00
|
|
|
restart: unless-stopped
|
2025-03-02 18:22:11 +01:00
|
|
|
|
|
|
|
static-site:
|
|
|
|
build: docker/bonus/static-site
|
2025-03-04 10:47:25 +01:00
|
|
|
container_name: inception-kanel-supremacy
|
2025-03-02 18:22:11 +01:00
|
|
|
ports:
|
|
|
|
- 8080:443
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
environment:
|
|
|
|
- NGINX_SSL_KEY_FILE=/etc/nginx/ssl/kanel-wp.key
|
|
|
|
- NGINX_SSL_CERT_FILE=/etc/nginx/ssl/kanel-wp.crt
|
2025-03-03 15:18:16 +01:00
|
|
|
restart: unless-stopped
|
2025-03-02 18:22:11 +01:00
|
|
|
|
2025-03-03 15:18:16 +01:00
|
|
|
backup:
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/bonus/borg-backup/Dockerfile
|
2025-03-04 10:47:25 +01:00
|
|
|
container_name: inception-backup
|
2025-03-03 15:18:16 +01:00
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
environment:
|
2025-03-03 21:16:45 +01:00
|
|
|
- CRON_INTERVAL=0 2 * * * # handled by entrypoint
|
2025-03-05 14:17:13 +01:00
|
|
|
- BORG_PASSPHRASE_FILE=/run/secrets/borg-passphrase
|
2025-03-03 15:18:16 +01:00
|
|
|
- BORG_PRUNE_KEEP_DAILY=3
|
|
|
|
- BORG_PRUNE_KEEP_WEEKLY=2
|
|
|
|
- BORG_PRUNE_KEEP_MONTHLY=1
|
|
|
|
- BORG_LOG_LEVEL=info
|
|
|
|
- BORG_CHECK_LAST=3
|
|
|
|
- BORG_CHECK_DATA=1
|
|
|
|
depends_on:
|
|
|
|
nginx:
|
|
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
|
|
- wp-db:/source/db
|
|
|
|
- wp-site:/source/wordpress
|
2025-03-03 21:16:45 +01:00
|
|
|
- backup:/backup
|
2025-03-05 14:17:13 +01:00
|
|
|
secrets:
|
|
|
|
- borg-passphrase
|
2025-03-03 15:18:16 +01:00
|
|
|
restart: unless-stopped
|
2025-03-04 10:47:25 +01:00
|
|
|
|
|
|
|
adminer:
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/bonus/adminer/Dockerfile
|
|
|
|
container_name: inception-adminer
|
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
ports:
|
|
|
|
- 8090:8080
|
|
|
|
depends_on:
|
|
|
|
db:
|
|
|
|
condition: service_healthy
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
redis:
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/bonus/redis/Dockerfile
|
|
|
|
container_name: inception-redis
|
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
ftp:
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/bonus/vsftpd/Dockerfile
|
|
|
|
container_name: inception-ftp
|
|
|
|
networks:
|
|
|
|
- inception
|
|
|
|
environment:
|
2025-03-05 17:57:14 +01:00
|
|
|
- VSFTPD_USER=${FTP_USER}
|
2025-03-05 14:17:13 +01:00
|
|
|
- VSFTPD_PASS_FILE=/run/secrets/ftp-pass
|
2025-03-04 10:47:25 +01:00
|
|
|
volumes:
|
|
|
|
- wp-site:/var/ftp
|
|
|
|
ports:
|
|
|
|
- 21:21
|
|
|
|
- 30000-30100:30000-30100
|
2025-03-05 14:17:13 +01:00
|
|
|
secrets:
|
|
|
|
- ftp-pass
|
2025-03-04 10:47:25 +01:00
|
|
|
restart: unless-stopped
|