mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-04 02:46:23 +00:00
Cleaned up all compose files
cleaned up all the files. they should now all work for multiple projects.
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
|
# Try and prevent passwords:
|
||||||
.env
|
.env
|
||||||
|
|||||||
@@ -1 +1,22 @@
|
|||||||
# docker-compose-cookbooks
|
# Nick Yeoman's Collection of Docker compose files
|
||||||
|
|
||||||
|
Checkout [https://www.nickyeoman.com/](https://www.nickyeoman.com/) to learn more.
|
||||||
|
|
||||||
|
With the exception of traefik and portainer the process is pretty much the same.
|
||||||
|
|
||||||
|
The idea is to run all these services off of one host and they are setup so
|
||||||
|
you can run multiple versions of any software just by changing the .env file
|
||||||
|
|
||||||
|
The process is:
|
||||||
|
|
||||||
|
1. cd ~/Git/docker-cookbooks/app-you-want-to-use
|
||||||
|
1. cp env-sample .env
|
||||||
|
1. vi .env
|
||||||
|
1. PREFIX in .env should the project_name (for example nick_yeoman or ny)
|
||||||
|
1. docker-compose -p project_name up -d
|
||||||
|
|
||||||
|
To create multiple projects is a little bit more tricky as you have to
|
||||||
|
define new directories for the .env file.
|
||||||
|
|
||||||
|
To do this I've just been copying the app folder to a domain-name folder.
|
||||||
|
Which isn't ideal, but I don't know how to do this more elegantly.
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
# use like this: python3 run.py > test.sql
|
# use like this: python3 run.py > test.sql
|
||||||
|
# TODO: you need to change the last comma to a semi colon for it to work in mysql
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -44,5 +45,3 @@ for filename in os.listdir(directory):
|
|||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# TODO: you need to change the last comma to a semi colon for it to work in mysql
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
# Bookstack
|
||||||
# make sure you use the $PREFIX from .env for project_name
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
# docker-compose -p project_name up -d
|
# docker-compose -p project_name up -d
|
||||||
#
|
#
|
||||||
# If you are importing directly using the db you have to do the following in the container:
|
# Importing directly to the db (phpmydadmin)
|
||||||
|
# you have to run the following in the container:
|
||||||
# php artisan bookstack:regenerate-permissions
|
# php artisan bookstack:regenerate-permissions
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
version: '2'
|
version: '2'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
@@ -16,39 +19,26 @@ volumes:
|
|||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
bookstack-db:
|
bookstack-db:
|
||||||
image: mariadb:10.4.11
|
image: mariadb:${DB_V}
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- bookstack-db:/var/lib/mysql
|
- bookstack-db:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_USER: bookstack
|
MYSQL_USER: bookstack
|
||||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
MYSQL_DATABASE: bookstack
|
MYSQL_DATABASE: bookstack
|
||||||
|
|
||||||
# It's only exposed if someone knows the ip
|
|
||||||
bookstack-phpdb:
|
|
||||||
#https://hub.docker.com/r/phpmyadmin/phpmyadmin/tags
|
|
||||||
image: phpmyadmin/phpmyadmin:5.0
|
|
||||||
environment:
|
|
||||||
- PMA_ARBITRARY=1
|
|
||||||
external_links:
|
|
||||||
- bookstack-db
|
|
||||||
depends_on:
|
|
||||||
- bookstack-db
|
|
||||||
networks:
|
|
||||||
- traefik_web
|
|
||||||
|
|
||||||
# https://hub.docker.com/r/solidnerd/bookstack
|
# https://hub.docker.com/r/solidnerd/bookstack
|
||||||
bookstack:
|
bookstack:
|
||||||
image: solidnerd/bookstack:0.29.0
|
image: solidnerd/bookstack:${BOOKSTACK_V}
|
||||||
depends_on:
|
depends_on:
|
||||||
- bookstack-db
|
- bookstack-db
|
||||||
environment:
|
environment:
|
||||||
@@ -58,7 +48,7 @@ services:
|
|||||||
- DB_PASSWORD=${MYSQL_PASSWORD}
|
- DB_PASSWORD=${MYSQL_PASSWORD}
|
||||||
- APP_URL=https://${DOMAIN_NAME}
|
- APP_URL=https://${DOMAIN_NAME}
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
volumes:
|
volumes:
|
||||||
- bookstack-uploads:/var/www/bookstack/public/uploads
|
- bookstack-uploads:/var/www/bookstack/public/uploads
|
||||||
- bookstack-storage:/var/www/bookstack/storage/uploads
|
- bookstack-storage:/var/www/bookstack/storage/uploads
|
||||||
|
|||||||
+12
-2
@@ -1,4 +1,14 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=bookstack.nickyeoman.com
|
||||||
|
|
||||||
|
# Passwords
|
||||||
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||||
MYSQL_PASSWORD=Again2ASecurepass!
|
MYSQL_PASSWORD=Again2ASecurepass!
|
||||||
DOMAIN_NAME=bookstack.nickyeoman.com
|
|
||||||
PREFIX=p1
|
# Software versions
|
||||||
|
DB_V=10.4.11
|
||||||
|
BOOKSTACK_V=0.29.0
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Docker clean up guilde https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430
|
||||||
|
|
||||||
|
# kill all containers
|
||||||
|
docker stop $(docker ps -aq)
|
||||||
|
|
||||||
|
docker system prune
|
||||||
|
|
||||||
|
#remove all containers
|
||||||
|
#docker rm $(docker ps -aq)
|
||||||
|
|
||||||
|
#remove all images
|
||||||
|
#docker rmi $(docker images -q)
|
||||||
|
|
||||||
|
#delete all volumnes
|
||||||
|
#docker volume rm $(docker volume ls -qf dangling=true)
|
||||||
|
#docker volume ls -qf dangling=true | xargs -r docker volume rm
|
||||||
|
|
||||||
|
#remove all networks
|
||||||
|
docker network prune
|
||||||
|
#docker network ls
|
||||||
|
#docker network ls | grep "bridge"
|
||||||
|
#docker network rm $(docker network ls | grep "bridge" | awk '/ / { print $1 }')
|
||||||
@@ -1,3 +1,14 @@
|
|||||||
|
################################################################################
|
||||||
|
# Gitea
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Importing directly to the db (phpmydadmin)
|
||||||
|
# you have to run the following in the container:
|
||||||
|
# php artisan bookstack:regenerate-permissions
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
@@ -6,14 +17,15 @@ volumes:
|
|||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
gitea:
|
gitea:
|
||||||
image: gitea/gitea:latest
|
# https://hub.docker.com/r/gitea/gitea
|
||||||
|
image: gitea/gitea:${GITEA_V}
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
- USER_UID=1000
|
- USER_UID=1000
|
||||||
- USER_GID=1000
|
- USER_GID=1000
|
||||||
@@ -23,11 +35,10 @@ services:
|
|||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
ports:
|
ports:
|
||||||
- "222:22"
|
- "${GITEA_PORT}:22"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.gitea.rule=Host(`gitea.nickyeoman.com`)"
|
- "traefik.http.routers.${PREFIX}_gitea.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
- "traefik.http.routers.gitea.entrypoints=websecure"
|
- "traefik.http.routers.${PREFIX}_gitea.entrypoints=websecure"
|
||||||
- "traefik.http.routers.gitea.tls=true"
|
- "traefik.http.routers.${PREFIX}_gitea.tls=true"
|
||||||
- "traefik.http.services.gite.loadbalancer.server.port=3000"
|
- "traefik.http.services.${PREFIX}_gitea.loadbalancer.server.port=3000"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=gitea.nickyeoman.com
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
GITEA_V=1.11.4
|
||||||
|
GITEA_PORT=22
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
# Joomla
|
||||||
# Update the .env file
|
# Update the .env file
|
||||||
# make sure you use the $PREFIX from .env for project_name
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
# docker-compose -p project_name up -d
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
################################################################################
|
################################################################################
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
@@ -12,17 +15,17 @@ volumes:
|
|||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.4.11
|
image: mariadb:${JOOMLADB_V}
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- mariadb:/var/lib/mysql
|
- mariadb:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_USER: joomla
|
MYSQL_USER: joomla
|
||||||
@@ -30,12 +33,12 @@ services:
|
|||||||
MYSQL_DATABASE: joomla
|
MYSQL_DATABASE: joomla
|
||||||
|
|
||||||
joomla:
|
joomla:
|
||||||
image: joomla:3.9.16-apache
|
image: joomla:${JOOMLA_V}
|
||||||
restart: always
|
restart: always
|
||||||
links:
|
links:
|
||||||
- ${PREFIX}_mariadb_1
|
- ${PREFIX}_mariadb_1
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
volumes:
|
volumes:
|
||||||
- joomla:/var/www/html
|
- joomla:/var/www/html
|
||||||
labels:
|
labels:
|
||||||
|
|||||||
+11
-2
@@ -1,5 +1,14 @@
|
|||||||
# Rename this file to .env
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
DOMAIN_NAME=joomla.nickyeoman.com
|
DOMAIN_NAME=joomla.nickyeoman.com
|
||||||
PREFIX=project_name
|
|
||||||
|
# PASSWORDS
|
||||||
MYSQL_PASSWORD=MyNotSecurePassword1234
|
MYSQL_PASSWORD=MyNotSecurePassword1234
|
||||||
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
JOOMLA_V=3.9.16-apache
|
||||||
|
JOOMLADB_V=10.4.11
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
################################################################################
|
||||||
|
# Nextcloud
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
@@ -9,17 +16,17 @@ volumes:
|
|||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.4.11
|
image: mariadb:${DB_V}
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- mariadb:/var/lib/mysql
|
- mariadb:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_USER: nextcloud
|
MYSQL_USER: nextcloud
|
||||||
@@ -27,21 +34,21 @@ services:
|
|||||||
MYSQL_DATABASE: nextcloud
|
MYSQL_DATABASE: nextcloud
|
||||||
|
|
||||||
nextcloud:
|
nextcloud:
|
||||||
image: nextcloud:18.0.3-apache
|
image: nextcloud:${NEXTCLOUD_V}
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- ${PREFIX}_mariadb_1
|
||||||
links:
|
links:
|
||||||
- mariadb
|
- ${PREFIX}_mariadb_1
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.nextcloud.rule=Host(`${DOMAIN_NAME}`)"
|
- "traefik.http.routers.${PREFIX}_nextcloud.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
- "traefik.http.routers.nextcloud.entrypoints=websecure"
|
- "traefik.http.routers.${PREFIX}_nextcloud.entrypoints=websecure"
|
||||||
- "traefik.http.routers.nextcloud.tls=true"
|
- "traefik.http.routers.${PREFIX}_nextcloud.tls=true"
|
||||||
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
|
- "traefik.http.services.${PREFIX}_nextcloud.loadbalancer.server.port=80"
|
||||||
|
|||||||
+14
-3
@@ -1,4 +1,15 @@
|
|||||||
# Rename this file to .env
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
DOMAIN_NAME=nextcloud.nickyeoman.com
|
DOMAIN_NAME=nextcloud.nickyeoman.com
|
||||||
MYSQL_PASSWORD=MyNotSecurePassword1234
|
PHPDB_DOMAIN_NAME=bookstack-db.nickyeoman.com
|
||||||
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
|
||||||
|
# Passwords
|
||||||
|
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||||
|
MYSQL_PASSWORD=Again2ASecurepass!
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
DB_V=10.4.11
|
||||||
|
NEXTCLOUD_V=18.0.3-apache
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
|
|||||||
+25
-22
@@ -1,57 +1,60 @@
|
|||||||
|
################################################################################
|
||||||
|
# Passbolt
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
pb-mariadb:
|
pb-mariadb:
|
||||||
pb-gpg_volume:
|
pb-gpg:
|
||||||
pb-images_volume:
|
pb-images:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
pb-mariadb:
|
pb-mariadb:
|
||||||
image: mariadb:10.4.11
|
image: mariadb:${DB_V}
|
||||||
container_name: pb-mariadb
|
|
||||||
hostname: pb-mariadb
|
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- pb-mariadb:/var/lib/mysql
|
- pb-mariadb:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: thasdfisIsRoot29837!
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_PASSWORD: p@ssblt!!1NOW
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
MYSQL_DATABASE: db_passbolt
|
MYSQL_DATABASE: passbolt
|
||||||
MYSQL_USER: passbolt
|
MYSQL_USER: passbolt
|
||||||
|
|
||||||
# https://help.passbolt.com/hosting/install/ce/docker.html
|
# https://help.passbolt.com/hosting/install/ce/docker.html
|
||||||
# once it's running you will have to manually create your first user:
|
# once it's running you will have to manually create your first user:
|
||||||
# as www-data user: ./cake passbolt register_user -u <email> -f <firstname> -l <lastname> -r admin
|
# as www-data user: ./cake passbolt register_user -u <email> -f <firstname> -l <lastname> -r admin
|
||||||
passbolt:
|
passbolt:
|
||||||
image: passbolt/passbolt:2.12.0-debian
|
image: passbolt/passbolt:${PASSBOLT_V}
|
||||||
container_name: pb-passbolt
|
|
||||||
hostname: passbolt
|
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
restart: always
|
restart: always
|
||||||
tty: true
|
tty: true
|
||||||
tmpfs:
|
tmpfs:
|
||||||
- /run
|
- /run
|
||||||
depends_on:
|
depends_on:
|
||||||
- pb-mariadb
|
- ${PREFIX}_pb-mariadb_1
|
||||||
env_file:
|
env_file:
|
||||||
- passbolt.env
|
- passbolt.env
|
||||||
command: ["/usr/bin/wait-for.sh", "-t", "0", "pb-mariadb:3306", "--", "/docker-entrypoint.sh"]
|
command: ["/usr/bin/wait-for.sh", "-t", "0", "${PREFIX}_pb-mariadb_1:3306", "--", "/docker-entrypoint.sh"]
|
||||||
volumes:
|
volumes:
|
||||||
- pb-gpg_volume:/var/www/passbolt/config/gpg
|
- pb-gpg:/var/www/passbolt/config/gpg
|
||||||
- pb-images_volume:/var/www/passbolt/webroot/img/public
|
- pb-images:/var/www/passbolt/webroot/img/public
|
||||||
- ./license:/var/www/passbolt/config/license
|
- ./license:/var/www/passbolt/config/license
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.passbolt.rule=Host(`passbolt.nickyeoman.com`)"
|
- "traefik.http.routers.${PREFIX}_passbolt.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
- "traefik.http.routers.passbolt.entrypoints=websecure"
|
- "traefik.http.routers.${PREFIX}_passbolt.entrypoints=websecure"
|
||||||
- "traefik.http.routers.passbolt.tls=true"
|
- "traefik.http.routers.${PREFIX}_passbolt.tls=true"
|
||||||
- "traefik.http.services.passbolt.loadbalancer.server.port=80"
|
- "traefik.http.services.${PREFIX}_passbolt.loadbalancer.server.port=80"
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=passbolt.nickyeoman.com
|
||||||
|
|
||||||
|
# Passwords
|
||||||
|
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||||
|
MYSQL_PASSWORD=Again2ASecurepass!
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
DB_V=10.4.11
|
||||||
|
PASSBOLT_V=2.12.0-debian
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#TODO: I'm not sure if this is still in use or has been implemented, test further.
|
||||||
|
|
||||||
# URL
|
# URL
|
||||||
APP_FULL_BASE_URL=https://passbolt.nickyeoman.com
|
APP_FULL_BASE_URL=https://passbolt.nickyeoman.com
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
################################################################################
|
||||||
|
# phpmyadmin
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_web:
|
||||||
|
external:
|
||||||
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
# It's only exposed if someone knows the ip
|
||||||
|
phpmyadmin:
|
||||||
|
#https://hub.docker.com/r/phpmyadmin/phpmyadmin/tags
|
||||||
|
image: phpmyadmin/phpmyadmin:${PHPMYADMIN_V}
|
||||||
|
environment:
|
||||||
|
- PMA_ARBITRARY=1
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- ${NETWORK_NAME}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.${PREFIX}_phpmyadmin.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
|
- "traefik.http.routers.${PREFIX}_phpmyadmin.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.${PREFIX}_phpmyadmin.tls=true"
|
||||||
|
- "traefik.http.services.${PREFIX}_phpmyadmin.loadbalancer.server.port=80"
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=phpmyadmin.nickyeoman.com
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
PHPMYADMIN_V=5.0
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
|
################################################################################
|
||||||
|
# Portainer
|
||||||
|
# You should only need one instance of this running
|
||||||
|
# Change .env then
|
||||||
|
# docker-compose up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
|
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
@@ -6,25 +15,26 @@ volumes:
|
|||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
portainer:
|
portainer:
|
||||||
image: portainer/portainer
|
# https://hub.docker.com/r/portainer/portainer
|
||||||
|
image: portainer/portainer:${PORTAINER_V}
|
||||||
container_name: portainer
|
container_name: portainer
|
||||||
hostname: portainer
|
hostname: portainer
|
||||||
command: -H unix:///var/run/docker.sock
|
command: -H unix:///var/run/docker.sock
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- portainer:/data
|
- portainer:/data
|
||||||
command: -H unix:///var/run/docker.sock
|
command: -H unix:///var/run/docker.sock
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.portainer.rule=Host(`portainer.nickyeoman.com`)"
|
- "traefik.http.routers.portainer.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||||
- "traefik.http.routers.portainer.tls=true"
|
- "traefik.http.routers.portainer.tls=true"
|
||||||
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Domains & Project
|
||||||
|
DOMAIN_NAME=passbolt.nickyeoman.com
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
PORTAINER_V=1.23.2
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -1,13 +1,16 @@
|
|||||||
|
###############################################################################
|
||||||
|
# Rocket Chat
|
||||||
# Update the .env file
|
# Update the .env file
|
||||||
# make sure you use the $PREFIX from .env for project_name
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
# docker-compose -p project_name up -d
|
# docker-compose -p project_name up -d
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
version: '2'
|
version: '2'
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik_web:
|
traefik_web:
|
||||||
external:
|
external:
|
||||||
name: traefik_web
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
rocketchat:
|
rocketchat:
|
||||||
@@ -16,8 +19,10 @@ volumes:
|
|||||||
rocketchat-scripts:
|
rocketchat-scripts:
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
rocketchat:
|
rocketchat:
|
||||||
image: rocketchat/rocket.chat:latest
|
# https://hub.docker.com/r/rocketchat/rocket.chat
|
||||||
|
image: rocketchat/rocket.chat:${ROCKETCHAT_V}
|
||||||
command: >
|
command: >
|
||||||
bash -c
|
bash -c
|
||||||
"for i in `seq 1 30`; do
|
"for i in `seq 1 30`; do
|
||||||
@@ -30,17 +35,17 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- rocketchat:/app/uploads
|
- rocketchat:/app/uploads
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
environment:
|
environment:
|
||||||
- PORT=3000
|
- PORT=3000
|
||||||
- ROOT_URL=http://chat.nickyeoman.com
|
- ROOT_URL=https://${DOMAIN_NAME}
|
||||||
- MONGO_URL=mongodb://mongo:27017/rocketchat
|
- MONGO_URL=mongodb://${PREFIX}_rc-db_1:27017/rocketchat
|
||||||
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
|
- MONGO_OPLOG_URL=mongodb://${PREFIX}_rc-db_1:27017/local
|
||||||
- MAIL_URL=smtp://smtp.email
|
- MAIL_URL=smtp://smtp.email
|
||||||
# - HTTP_PROXY=http://proxy.domain.com
|
# - HTTP_PROXY=http://proxy.domain.com
|
||||||
# - HTTPS_PROXY=http://proxy.domain.com
|
# - HTTPS_PROXY=http://proxy.domain.com
|
||||||
depends_on:
|
depends_on:
|
||||||
- mongo
|
- rc-db
|
||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
labels:
|
labels:
|
||||||
@@ -50,14 +55,14 @@ services:
|
|||||||
- "traefik.http.routers.${PREFIX}_chat.tls=true"
|
- "traefik.http.routers.${PREFIX}_chat.tls=true"
|
||||||
- "traefik.http.services.${PREFIX}_chat.loadbalancer.server.port=3000"
|
- "traefik.http.services.${PREFIX}_chat.loadbalancer.server.port=3000"
|
||||||
|
|
||||||
mongo:
|
rc-db:
|
||||||
image: mongo:4.0
|
image: mongo:4.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- rocketchat-db:/data/db
|
- rocketchat-db:/data/db
|
||||||
#- ./data/dump:/dump
|
#- ./data/dump:/dump
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
|
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=false"
|
- "traefik.enable=false"
|
||||||
@@ -78,9 +83,9 @@ services:
|
|||||||
sleep 5;
|
sleep 5;
|
||||||
done; (exit $$s)"
|
done; (exit $$s)"
|
||||||
depends_on:
|
depends_on:
|
||||||
- mongo
|
- ${PREFIX}_rc-db_1
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
|
|
||||||
# hubot, the popular chatbot (add the bot user first and change the password before starting this image)
|
# hubot, the popular chatbot (add the bot user first and change the password before starting this image)
|
||||||
hubot:
|
hubot:
|
||||||
@@ -101,7 +106,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- rocketchat-scripts:/home/hubot/scripts
|
- rocketchat-scripts:/home/hubot/scripts
|
||||||
networks:
|
networks:
|
||||||
- traefik_web
|
- ${NETWORK_NAME}
|
||||||
# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier
|
# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier
|
||||||
ports:
|
ports:
|
||||||
- 3001:8080
|
- 3001:8080
|
||||||
|
|||||||
+10
-2
@@ -1,5 +1,13 @@
|
|||||||
# Rename this file to .env
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
DOMAIN_NAME=joomla.nickyeoman.com
|
DOMAIN_NAME=joomla.nickyeoman.com
|
||||||
PREFIX=project_name
|
|
||||||
|
# Passwords
|
||||||
MYSQL_PASSWORD=MyNotSecurePassword1234
|
MYSQL_PASSWORD=MyNotSecurePassword1234
|
||||||
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
ROCKETCHAT_V=3.1.1
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
#not sure what to put here
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
################################################################################
|
||||||
|
# Stash
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
|
version: '3.4'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
stash:
|
||||||
|
stash-metadata:
|
||||||
|
stash-cache:
|
||||||
|
stash-generated:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_web:
|
||||||
|
external:
|
||||||
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
|
services:
|
||||||
|
stash:
|
||||||
|
# https://hub.docker.com/r/stashapp/stash
|
||||||
|
image: stashapp/stash:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-file: "10"
|
||||||
|
max-size: "2m"
|
||||||
|
environment:
|
||||||
|
- STASH_STASH=/data/
|
||||||
|
- STASH_GENERATED=/generated/
|
||||||
|
- STASH_METADATA=/metadata/
|
||||||
|
- STASH_CACHE=/cache/
|
||||||
|
networks:
|
||||||
|
- ${NETWORK_NAME}
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
## Adjust below paths (the left part) to your liking.
|
||||||
|
## E.g. you can change ./config:/root/.stash to ./stash:/root/.stash
|
||||||
|
## Keep configs here.
|
||||||
|
#- ./config:/root/.stash
|
||||||
|
## Point this at your collection.
|
||||||
|
- stash:/data
|
||||||
|
## This is where your stash's metadata lives
|
||||||
|
- stash-metadata:/metadata
|
||||||
|
## Any other cache content.
|
||||||
|
- stash-cache:/cache
|
||||||
|
## Where to store generated content (screenshots,previews,transcodes,sprites)
|
||||||
|
- stash-generated:/generated
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.${PREFIX}_stash.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
|
- "traefik.http.routers.${PREFIX}_stash.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.${PREFIX}_stash.tls=true"
|
||||||
|
- "traefik.http.services.${PREFIX}_stash.loadbalancer.server.port=9999"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Domain and project
|
||||||
|
DOMAIN_NAME=stash.nickyeoman.com
|
||||||
|
PREFIX=p1
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -1,17 +1,21 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
# Traefik
|
||||||
|
#
|
||||||
|
# Should only need one instance of this.
|
||||||
|
# Make sure the .env file is updated
|
||||||
# docker-compose up -d
|
# docker-compose up -d
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
web:
|
${NETWORK_NAME}:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
image: "traefik:v2.1.3"
|
# https://hub.docker.com/_/traefik
|
||||||
|
image: "traefik:${TRAEFIK_V}"
|
||||||
container_name: "traefik"
|
container_name: "traefik"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command:
|
command:
|
||||||
@@ -25,17 +29,15 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
networks:
|
networks:
|
||||||
- web
|
- ${NETWORK_NAME}
|
||||||
labels:
|
labels:
|
||||||
# Dashboard
|
# Dashboard
|
||||||
- "traefik.http.routers.traefik.rule=Host(`proxy.nickyeoman.com`)"
|
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
- "traefik.http.routers.traefik.service=api@internal"
|
- "traefik.http.routers.traefik.service=api@internal"
|
||||||
- "traefik.http.routers.traefik.tls.certresolver=leresolver"
|
- "traefik.http.routers.traefik.tls.certresolver=leresolver"
|
||||||
- "traefik.http.routers.traefik.entrypoints=websecure"
|
- "traefik.http.routers.traefik.entrypoints=websecure"
|
||||||
- "traefik.http.routers.traefik.middlewares=authtraefik"
|
- "traefik.http.routers.traefik.middlewares=authtraefik"
|
||||||
# https://medium.com/@techupbusiness/add-basic-authentication-in-docker-compose-files-with-traefik-34c781234970
|
- "traefik.http.middlewares.authtraefik.basicauth.users=${TRAEFIK_USER}:${TRAEFIK_PASS}"
|
||||||
# echo $(htpasswd -nbB <USER> "<PASS>") | sed -e s/\\$/\\$\\$/g
|
|
||||||
- "traefik.http.middlewares.authtraefik.basicauth.users=nick:encryptedpasswordgoeshere"
|
|
||||||
# global redirect to https
|
# global redirect to https
|
||||||
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
|
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
|
||||||
- "traefik.http.routers.http-catchall.entrypoints=web"
|
- "traefik.http.routers.http-catchall.entrypoints=web"
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=traefik.nickyeoman.com
|
||||||
|
|
||||||
|
# Passwords
|
||||||
|
# https://medium.com/@techupbusiness/add-basic-authentication-in-docker-compose-files-with-traefik-34c781234970
|
||||||
|
# echo $(htpasswd -nbB <USER> "<PASS>") | sed -e s/\\$/\\$\\$/g
|
||||||
|
TRAEFIK_USER=username
|
||||||
|
TRAEFIK_PASS=M@keASecureOne
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
# https://hub.docker.com/_/traefik
|
||||||
|
TRAEFIK_V=2.2.0
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
################################################################################
|
||||||
|
# yourls
|
||||||
|
# make sure you use the $PREFIX from .env for project_name
|
||||||
|
# docker-compose -p project_name up -d
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Version 1
|
||||||
|
################################################################################
|
||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
yourls:
|
||||||
|
yourls-db:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_web:
|
||||||
|
external:
|
||||||
|
name: ${NETWORK_NAME}
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
yourls-db:
|
||||||
|
# https://hub.docker.com/_/mariadb/
|
||||||
|
image: mariadb:${DB_V}
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- yourls-mariadb:/var/lib/mysql
|
||||||
|
networks:
|
||||||
|
- ${NETWORK_NAME}
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
MYSQL_DATABASE: yourls
|
||||||
|
MYSQL_USER: yourls
|
||||||
|
|
||||||
|
yourls:
|
||||||
|
# reference: https://github.com/matomo-org/docker/blob/master/.examples/docker-compose.yml
|
||||||
|
image: yourls
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- yourls:/var/www/html
|
||||||
|
networks:
|
||||||
|
- ${NETWORK_NAME}
|
||||||
|
environment:
|
||||||
|
YOURLS_DB_HOST: ${PREFIX}_yourls-db_1
|
||||||
|
YOURLS_DB_USER: yourls
|
||||||
|
YOURLS_DB_PASS: ${MYSQL_PASSWORD}
|
||||||
|
YOURLS_DB_NAME: yourls
|
||||||
|
YOURLS_SITE: https://${DOMAIN_NAME}
|
||||||
|
YOURLS_USER: ${YOURLS_USER}
|
||||||
|
YOURLS_PASS: ${YOURLS_PASS}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.${PREFIX}_yourls.rule=Host(`${DOMAIN_NAME}`)"
|
||||||
|
- "traefik.http.routers.${PREFIX}_yourls.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.${PREFIX}_yourls.tls=true"
|
||||||
|
- "traefik.http.services.${PREFIX}_yourls.loadbalancer.server.port=80"
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Domains & Project
|
||||||
|
PREFIX=p1
|
||||||
|
DOMAIN_NAME=yourls.nickyeoman.com
|
||||||
|
|
||||||
|
# Passwords
|
||||||
|
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||||
|
MYSQL_PASSWORD=Again2ASecurepass!
|
||||||
|
YOURLS_USER=username
|
||||||
|
YOURLS_PASS=Password4urls
|
||||||
|
|
||||||
|
# Software versions
|
||||||
|
DB_V=10.4.11
|
||||||
|
|
||||||
|
# Network
|
||||||
|
NETWORK_NAME=traefik_web
|
||||||
Reference in New Issue
Block a user