mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-04 02:46:23 +00:00
made a lot of changes to accomodate running the same app for differnt projects.
This commit is contained in:
@@ -17,9 +17,9 @@ volumes:
|
||||
bookstack-storage:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
@@ -29,11 +29,11 @@ services:
|
||||
volumes:
|
||||
- bookstack-db:/var/lib/mysql
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD: ${BOOKSTACK_MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_USER: bookstack
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_PASSWORD: ${BOOKSTACK_MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: bookstack
|
||||
|
||||
# https://hub.docker.com/r/solidnerd/bookstack
|
||||
@@ -45,16 +45,16 @@ services:
|
||||
- DB_HOST=${PREFIX}_bookstack-db_1:3306
|
||||
- DB_DATABASE=bookstack
|
||||
- DB_USERNAME=bookstack
|
||||
- DB_PASSWORD=${MYSQL_PASSWORD}
|
||||
- APP_URL=https://${DOMAIN_NAME}
|
||||
- DB_PASSWORD=${BOOKSTACK_MYSQL_PASSWORD}
|
||||
- APP_URL=https://${BOOKSTACK_DOMAIN_NAME}
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
volumes:
|
||||
- bookstack-uploads:/var/www/bookstack/public/uploads
|
||||
- bookstack-storage:/var/www/bookstack/storage/uploads
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_bookstack.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_bookstack.rule=Host(`${BOOKSTACK_DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_bookstack.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_bookstack.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_bookstack.loadbalancer.server.port=8080"
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=bookstack.nickyeoman.com
|
||||
BOOKSTACK_DOMAIN_NAME=bookstack.nickyeoman.com
|
||||
|
||||
# Passwords
|
||||
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
MYSQL_PASSWORD=Again2ASecurepass!
|
||||
BOOKSTACK_MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
BOOKSTACK_MYSQL_PASSWORD=Again2ASecurepass!
|
||||
|
||||
# Software versions
|
||||
DB_V=10.4.11
|
||||
BOOKSTACK_V=0.29.0
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# https://hub.docker.com/r/emby/embyserver
|
||||
@@ -13,22 +13,40 @@ version: '3.3'
|
||||
|
||||
volumes:
|
||||
gitea:
|
||||
gitea-db:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
gitea-db:
|
||||
image: mariadb:${DB_V}
|
||||
restart: always
|
||||
volumes:
|
||||
- gitea-db:/var/lib/mysql
|
||||
networks:
|
||||
- admin_web
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${GITEA_MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_USER: gitea
|
||||
MYSQL_PASSWORD: ${GITEA_MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: gitea
|
||||
|
||||
gitea:
|
||||
# https://hub.docker.com/r/gitea/gitea
|
||||
image: gitea/gitea:${GITEA_V}
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- DB_TYPE=mysql
|
||||
- DB_HOST=${PREFIX}_gitea-db:3306
|
||||
- DB_NAME=gitea
|
||||
- DB_USER=gitea
|
||||
restart: always
|
||||
volumes:
|
||||
- gitea:/data
|
||||
@@ -38,7 +56,7 @@ services:
|
||||
- "${GITEA_PORT}:22"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_gitea.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_gitea.rule=Host(`${GITEA_DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_gitea.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_gitea.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_gitea.loadbalancer.server.port=3000"
|
||||
|
||||
+4
-3
@@ -1,10 +1,11 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=gitea.nickyeoman.com
|
||||
GITEA_DOMAIN_NAME=gitea.nickyeoman.com
|
||||
|
||||
# Software versions
|
||||
GITEA_V=1.11.4
|
||||
GITEA_PORT=22
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
#passwords
|
||||
GITEA_MYSQL_ROOT_PASSWORD=changeMe
|
||||
GITEA_MYSQL_PASSWORD=changemeAlso
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# https://hub.docker.com/r/linuxserver/heimdall
|
||||
---
|
||||
version: "2.1"
|
||||
services:
|
||||
heimdall:
|
||||
image: linuxserver/heimdall
|
||||
container_name: heimdall
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/London
|
||||
volumes:
|
||||
- /path/to/appdata/config:/config
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
restart: unless-stopped
|
||||
@@ -1,14 +0,0 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=joomla.nickyeoman.com
|
||||
|
||||
# PASSWORDS
|
||||
MYSQL_PASSWORD=MyNotSecurePassword1234
|
||||
MYSQL_ROOT_PASSWORD=AlsoNotSecure
|
||||
|
||||
# Software versions
|
||||
JOOMLA_V=3.9.16-apache
|
||||
JOOMLADB_V=10.4.11
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
@@ -0,0 +1,21 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName docker
|
||||
ServerAdmin c@nickyeoman.com
|
||||
DocumentRoot /var/www/html
|
||||
#ErrorLog /var/log/apache2/error.log
|
||||
#CustomLog /var/log/apache2/access.log combined
|
||||
# You need to use x-forward
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
|
||||
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
|
||||
CustomLog "/var/log/apache2/access.log" combined env=!forwarded
|
||||
CustomLog "/var/log/apache2/access.log" proxy env=forwarded
|
||||
|
||||
|
||||
<Directory /var/www/html>
|
||||
Options +Indexes +FollowSymLinks -MultiViews
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
@@ -0,0 +1,185 @@
|
||||
[PHP]
|
||||
; Nick Yeoman made this for bionic
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
; Language Options ;
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
engine = On
|
||||
short_open_tag = Off
|
||||
precision = 14
|
||||
output_buffering = Off
|
||||
zlib.output_compression = Off
|
||||
implicit_flush = Off
|
||||
unserialize_callback_func =
|
||||
serialize_precision = 17
|
||||
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
||||
disable_classes =
|
||||
zend.enable_gc = On
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
; Miscellaneous ;
|
||||
;;;;;;;;;;;;;;;;;
|
||||
|
||||
expose_php = Off
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
; Resource Limits ;
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
max_execution_time = 30
|
||||
max_input_time = 60
|
||||
memory_limit = 512M
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Error handling and logging ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
log_errors_max_len = 1024
|
||||
ignore_repeated_errors = Off
|
||||
ignore_repeated_source = Off
|
||||
report_memleaks = On
|
||||
track_errors = Off
|
||||
html_errors = On
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
; Data Handling ;
|
||||
;;;;;;;;;;;;;;;;;
|
||||
|
||||
variables_order = "GPCS"
|
||||
request_order = "GP"
|
||||
register_argc_argv = Off
|
||||
auto_globals_jit = On
|
||||
post_max_size = 99M
|
||||
auto_prepend_file =
|
||||
auto_append_file =
|
||||
default_mimetype = "text/html"
|
||||
default_charset = "UTF-8"
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Paths and Directories ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
doc_root =
|
||||
user_dir =
|
||||
enable_dl = Off
|
||||
|
||||
;;;;;;;;;;;;;;;;
|
||||
; File Uploads ;
|
||||
;;;;;;;;;;;;;;;;
|
||||
|
||||
file_uploads = On
|
||||
upload_max_filesize = 99M
|
||||
max_file_uploads = 20
|
||||
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
; Fopen wrappers ;
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
|
||||
allow_url_fopen = On
|
||||
allow_url_include = Off
|
||||
default_socket_timeout = 60
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
; Module Settings ;
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[CLI Server]
|
||||
cli_server.color = On
|
||||
|
||||
[Pdo_mysql]
|
||||
pdo_mysql.cache_size = 2000
|
||||
pdo_mysql.default_socket=
|
||||
|
||||
[mail function]
|
||||
SMTP = localhost
|
||||
smtp_port = 25
|
||||
mail.add_x_header = On
|
||||
|
||||
[SQL]
|
||||
sql.safe_mode = Off
|
||||
|
||||
[ODBC]
|
||||
odbc.allow_persistent = On
|
||||
odbc.check_persistent = On
|
||||
odbc.max_persistent = -1
|
||||
odbc.max_links = -1
|
||||
odbc.defaultlrl = 4096
|
||||
odbc.defaultbinmode = 1
|
||||
|
||||
[Interbase]
|
||||
ibase.allow_persistent = 1
|
||||
ibase.max_persistent = -1
|
||||
ibase.max_links = -1
|
||||
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
|
||||
ibase.dateformat = "%Y-%m-%d"
|
||||
ibase.timeformat = "%H:%M:%S"
|
||||
|
||||
[MySQLi]
|
||||
mysqli.max_persistent = -1
|
||||
mysqli.allow_persistent = On
|
||||
mysqli.max_links = -1
|
||||
mysqli.cache_size = 2000
|
||||
mysqli.default_port = 3306
|
||||
mysqli.default_socket =
|
||||
mysqli.default_host =
|
||||
mysqli.default_user =
|
||||
mysqli.default_pw =
|
||||
mysqli.reconnect = Off
|
||||
|
||||
[mysqlnd]
|
||||
mysqlnd.collect_statistics = On
|
||||
mysqlnd.collect_memory_statistics = Off
|
||||
|
||||
[PostgreSQL]
|
||||
pgsql.allow_persistent = On
|
||||
pgsql.auto_reset_persistent = Off
|
||||
pgsql.max_persistent = -1
|
||||
pgsql.max_links = -1
|
||||
pgsql.ignore_notice = 0
|
||||
pgsql.log_notice = 0
|
||||
|
||||
[bcmath]
|
||||
bcmath.scale = 0
|
||||
|
||||
[Session]
|
||||
session.save_handler = files
|
||||
session.use_strict_mode = 0
|
||||
session.use_cookies = 1
|
||||
session.use_only_cookies = 1
|
||||
session.name = PHPSESSID
|
||||
session.auto_start = 0
|
||||
session.cookie_lifetime = 0
|
||||
session.cookie_path = /
|
||||
session.cookie_domain =
|
||||
session.cookie_httponly =
|
||||
session.serialize_handler = php
|
||||
session.gc_probability = 0
|
||||
session.gc_divisor = 1000
|
||||
session.gc_maxlifetime = 1440
|
||||
session.referer_check =
|
||||
session.cache_limiter = nocache
|
||||
session.cache_expire = 180
|
||||
session.use_trans_sid = 0
|
||||
session.hash_function = 0
|
||||
session.hash_bits_per_character = 5
|
||||
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
|
||||
|
||||
[Assertion]
|
||||
zend.assertions = -1
|
||||
|
||||
[Tidy]
|
||||
tidy.clean_output = Off
|
||||
|
||||
[soap]
|
||||
soap.wsdl_cache_enabled=1
|
||||
soap.wsdl_cache_dir="/tmp"
|
||||
soap.wsdl_cache_ttl=86400
|
||||
soap.wsdl_cache_limit = 5
|
||||
|
||||
[ldap]
|
||||
ldap.max_links = -1
|
||||
@@ -1,8 +1,6 @@
|
||||
################################################################################
|
||||
# Joomla
|
||||
# Update the .env file
|
||||
# make sure you use the $PREFIX from .env for project_name
|
||||
# docker-compose -p project_name up -d
|
||||
#
|
||||
# Version 1
|
||||
################################################################################
|
||||
@@ -13,37 +11,43 @@ volumes:
|
||||
joomla:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
mariadb:
|
||||
image: mariadb:${JOOMLADB_V}
|
||||
image: mariadb:${LAMPDB_V}
|
||||
restart: always
|
||||
volumes:
|
||||
- mariadb:/var/lib/mysql
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_USER: joomla
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: joomla
|
||||
|
||||
joomla:
|
||||
image: joomla:${JOOMLA_V}
|
||||
memcached:
|
||||
image: memcached:${MEM_V}
|
||||
restart: always
|
||||
networks:
|
||||
- admin_web
|
||||
|
||||
lamp:
|
||||
image: nick/lamp
|
||||
restart: always
|
||||
links:
|
||||
- ${PREFIX}_mariadb_1
|
||||
- mariadb
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
volumes:
|
||||
- joomla:/var/www/html
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_joomla.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_joomla.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_joomla.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_joomla.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.${PREFIX}_lamp.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_lamp.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_lamp.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_lamp.loadbalancer.server.port=80"
|
||||
@@ -0,0 +1,47 @@
|
||||
# BUILD ME:
|
||||
# docker build -t nick/lamp .
|
||||
|
||||
# Dockerfile for ubuntu
|
||||
FROM ubuntu:bionic
|
||||
MAINTAINER Nick Yeoman (c@nickyeoman.com)
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# install apache
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y --no-install-recommends apache2
|
||||
|
||||
RUN a2enmod socache_shmcb ssl expires rewrite headers
|
||||
|
||||
#Install php
|
||||
# each individually makes debuging easier
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q php
|
||||
RUN apt-get install -y php-imagick
|
||||
RUN apt-get install -y php-gd php-curl
|
||||
RUN apt-get install -y php-intl
|
||||
RUN apt-get install -y php-json
|
||||
RUN apt-get install -y php-memcache
|
||||
RUN apt-get install -y php-mbstring
|
||||
RUN apt-get install -y libapache2-mod-php7.2
|
||||
RUN apt-get install -y php7.2-xml
|
||||
RUN apt-get install -y php7.2-zip
|
||||
RUN apt-get install -y php7.2-mbstring
|
||||
RUN apt-get install -y php7.2-mysql
|
||||
|
||||
COPY config/php.ini /etc/php/7.2/apache2/php.ini
|
||||
|
||||
#Configure apache
|
||||
RUN servername="ServerName docker.fbot.co"
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
RUN rm /etc/apache2/sites-available/000-default.conf
|
||||
COPY config/000-default.conf /etc/apache2/sites-available/000-default.conf
|
||||
|
||||
# Cleanup: remove lists
|
||||
RUN rm -r /var/lib/apt/lists/*
|
||||
|
||||
# Default command
|
||||
CMD ["apachectl", "-D", "FOREGROUND"]
|
||||
|
||||
# Ports
|
||||
EXPOSE 80
|
||||
@@ -0,0 +1,15 @@
|
||||
# docker-compose -p <PREFIX> up -d
|
||||
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=p1.nickyeoman.com
|
||||
|
||||
# PASSWORDS
|
||||
MYSQL_PASSWORD=8YDmMw4ePRvBc2Z2
|
||||
MYSQL_ROOT_PASSWORD=5XLvbJ76r3yKREw8
|
||||
|
||||
# Software versions
|
||||
# https://hub.docker.com/_/mariadb
|
||||
LAMPDB_V=10.4.12
|
||||
# https://hub.docker.com/_/memcached/
|
||||
MEM_V=1.6.5
|
||||
@@ -0,0 +1,21 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName docker
|
||||
ServerAdmin c@nickyeoman.com
|
||||
DocumentRoot /var/www/html
|
||||
#ErrorLog /var/log/apache2/error.log
|
||||
#CustomLog /var/log/apache2/access.log combined
|
||||
# You need to use x-forward
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
|
||||
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
|
||||
CustomLog "/var/log/apache2/access.log" combined env=!forwarded
|
||||
CustomLog "/var/log/apache2/access.log" proxy env=forwarded
|
||||
|
||||
|
||||
<Directory /var/www/html>
|
||||
Options +Indexes +FollowSymLinks -MultiViews
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
@@ -0,0 +1,185 @@
|
||||
[PHP]
|
||||
; Nick Yeoman made this for bionic
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
; Language Options ;
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
engine = On
|
||||
short_open_tag = Off
|
||||
precision = 14
|
||||
output_buffering = Off
|
||||
zlib.output_compression = Off
|
||||
implicit_flush = Off
|
||||
unserialize_callback_func =
|
||||
serialize_precision = 17
|
||||
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
||||
disable_classes =
|
||||
zend.enable_gc = On
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
; Miscellaneous ;
|
||||
;;;;;;;;;;;;;;;;;
|
||||
|
||||
expose_php = Off
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
; Resource Limits ;
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
max_execution_time = 30
|
||||
max_input_time = 60
|
||||
memory_limit = 512M
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Error handling and logging ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
log_errors_max_len = 1024
|
||||
ignore_repeated_errors = Off
|
||||
ignore_repeated_source = Off
|
||||
report_memleaks = On
|
||||
track_errors = Off
|
||||
html_errors = On
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
; Data Handling ;
|
||||
;;;;;;;;;;;;;;;;;
|
||||
|
||||
variables_order = "GPCS"
|
||||
request_order = "GP"
|
||||
register_argc_argv = Off
|
||||
auto_globals_jit = On
|
||||
post_max_size = 99M
|
||||
auto_prepend_file =
|
||||
auto_append_file =
|
||||
default_mimetype = "text/html"
|
||||
default_charset = "UTF-8"
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Paths and Directories ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
doc_root =
|
||||
user_dir =
|
||||
enable_dl = Off
|
||||
|
||||
;;;;;;;;;;;;;;;;
|
||||
; File Uploads ;
|
||||
;;;;;;;;;;;;;;;;
|
||||
|
||||
file_uploads = On
|
||||
upload_max_filesize = 99M
|
||||
max_file_uploads = 20
|
||||
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
; Fopen wrappers ;
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
|
||||
allow_url_fopen = On
|
||||
allow_url_include = Off
|
||||
default_socket_timeout = 60
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
; Module Settings ;
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
[CLI Server]
|
||||
cli_server.color = On
|
||||
|
||||
[Pdo_mysql]
|
||||
pdo_mysql.cache_size = 2000
|
||||
pdo_mysql.default_socket=
|
||||
|
||||
[mail function]
|
||||
SMTP = localhost
|
||||
smtp_port = 25
|
||||
mail.add_x_header = On
|
||||
|
||||
[SQL]
|
||||
sql.safe_mode = Off
|
||||
|
||||
[ODBC]
|
||||
odbc.allow_persistent = On
|
||||
odbc.check_persistent = On
|
||||
odbc.max_persistent = -1
|
||||
odbc.max_links = -1
|
||||
odbc.defaultlrl = 4096
|
||||
odbc.defaultbinmode = 1
|
||||
|
||||
[Interbase]
|
||||
ibase.allow_persistent = 1
|
||||
ibase.max_persistent = -1
|
||||
ibase.max_links = -1
|
||||
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
|
||||
ibase.dateformat = "%Y-%m-%d"
|
||||
ibase.timeformat = "%H:%M:%S"
|
||||
|
||||
[MySQLi]
|
||||
mysqli.max_persistent = -1
|
||||
mysqli.allow_persistent = On
|
||||
mysqli.max_links = -1
|
||||
mysqli.cache_size = 2000
|
||||
mysqli.default_port = 3306
|
||||
mysqli.default_socket =
|
||||
mysqli.default_host =
|
||||
mysqli.default_user =
|
||||
mysqli.default_pw =
|
||||
mysqli.reconnect = Off
|
||||
|
||||
[mysqlnd]
|
||||
mysqlnd.collect_statistics = On
|
||||
mysqlnd.collect_memory_statistics = Off
|
||||
|
||||
[PostgreSQL]
|
||||
pgsql.allow_persistent = On
|
||||
pgsql.auto_reset_persistent = Off
|
||||
pgsql.max_persistent = -1
|
||||
pgsql.max_links = -1
|
||||
pgsql.ignore_notice = 0
|
||||
pgsql.log_notice = 0
|
||||
|
||||
[bcmath]
|
||||
bcmath.scale = 0
|
||||
|
||||
[Session]
|
||||
session.save_handler = files
|
||||
session.use_strict_mode = 0
|
||||
session.use_cookies = 1
|
||||
session.use_only_cookies = 1
|
||||
session.name = PHPSESSID
|
||||
session.auto_start = 0
|
||||
session.cookie_lifetime = 0
|
||||
session.cookie_path = /
|
||||
session.cookie_domain =
|
||||
session.cookie_httponly =
|
||||
session.serialize_handler = php
|
||||
session.gc_probability = 0
|
||||
session.gc_divisor = 1000
|
||||
session.gc_maxlifetime = 1440
|
||||
session.referer_check =
|
||||
session.cache_limiter = nocache
|
||||
session.cache_expire = 180
|
||||
session.use_trans_sid = 0
|
||||
session.hash_function = 0
|
||||
session.hash_bits_per_character = 5
|
||||
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
|
||||
|
||||
[Assertion]
|
||||
zend.assertions = -1
|
||||
|
||||
[Tidy]
|
||||
tidy.clean_output = Off
|
||||
|
||||
[soap]
|
||||
soap.wsdl_cache_enabled=1
|
||||
soap.wsdl_cache_dir="/tmp"
|
||||
soap.wsdl_cache_ttl=86400
|
||||
soap.wsdl_cache_limit = 5
|
||||
|
||||
[ldap]
|
||||
ldap.max_links = -1
|
||||
@@ -0,0 +1,31 @@
|
||||
################################################################################
|
||||
# Joomla
|
||||
# Update the .env file
|
||||
#
|
||||
# Version 1
|
||||
################################################################################
|
||||
version: '3.3'
|
||||
|
||||
volumes:
|
||||
lap:
|
||||
|
||||
networks:
|
||||
admin_web:
|
||||
external:
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
lap:
|
||||
image: nick/lamp
|
||||
restart: always
|
||||
networks:
|
||||
- admin_web
|
||||
volumes:
|
||||
- lap:/var/www/html
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_lap.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_lap.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_lap.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_lap.loadbalancer.server.port=80"
|
||||
@@ -0,0 +1,47 @@
|
||||
# BUILD ME:
|
||||
# docker build -t nick/lamp .
|
||||
|
||||
# Dockerfile for ubuntu
|
||||
FROM ubuntu:bionic
|
||||
MAINTAINER Nick Yeoman (c@nickyeoman.com)
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# install apache
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y --no-install-recommends apache2
|
||||
|
||||
RUN a2enmod socache_shmcb ssl expires rewrite headers
|
||||
|
||||
#Install php
|
||||
# each individually makes debuging easier
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q php
|
||||
RUN apt-get install -y php-imagick
|
||||
RUN apt-get install -y php-gd php-curl
|
||||
RUN apt-get install -y php-intl
|
||||
RUN apt-get install -y php-json
|
||||
RUN apt-get install -y php-memcache
|
||||
RUN apt-get install -y php-mbstring
|
||||
RUN apt-get install -y libapache2-mod-php7.2
|
||||
RUN apt-get install -y php7.2-xml
|
||||
RUN apt-get install -y php7.2-zip
|
||||
RUN apt-get install -y php7.2-mbstring
|
||||
RUN apt-get install -y php7.2-mysql
|
||||
|
||||
COPY config/php.ini /etc/php/7.2/apache2/php.ini
|
||||
|
||||
#Configure apache
|
||||
RUN servername="ServerName docker.fbot.co"
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
RUN rm /etc/apache2/sites-available/000-default.conf
|
||||
COPY config/000-default.conf /etc/apache2/sites-available/000-default.conf
|
||||
|
||||
# Cleanup: remove lists
|
||||
RUN rm -r /var/lib/apt/lists/*
|
||||
|
||||
# Default command
|
||||
CMD ["apachectl", "-D", "FOREGROUND"]
|
||||
|
||||
# Ports
|
||||
EXPOSE 80
|
||||
@@ -0,0 +1,5 @@
|
||||
# docker-compose -p <PREFIX> up -d
|
||||
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=p1.nickyeoman.com
|
||||
@@ -0,0 +1,8 @@
|
||||
version: '3'
|
||||
services:
|
||||
# https://hub.docker.com/r/mailtrain/mailtrain
|
||||
mailtrain:
|
||||
environment:
|
||||
- URL_BASE_TRUSTED
|
||||
- URL_BASE_SANDBOX
|
||||
- URL_BASE_PUBLIC
|
||||
@@ -1,54 +1,48 @@
|
||||
################################################################################
|
||||
# Nextcloud
|
||||
# make sure you use the $PREFIX from .env for project_name
|
||||
# docker-compose -p project_name up -d
|
||||
#
|
||||
# Version 1
|
||||
################################################################################
|
||||
version: '3.3'
|
||||
|
||||
volumes:
|
||||
mariadb:
|
||||
nextcloud-db:
|
||||
nextcloud:
|
||||
document_data:
|
||||
document_log:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
mariadb:
|
||||
nextcloud-db:
|
||||
image: mariadb:${DB_V}
|
||||
restart: always
|
||||
volumes:
|
||||
- mariadb:/var/lib/mysql
|
||||
- nextcloud-db:/var/lib/mysql
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD: ${NEXTCLOUD_MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_USER: nextcloud
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: nextcloud
|
||||
MYSQL_PASSWORD: ${NEXTCLOUD_MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: db_nextcloud
|
||||
|
||||
nextcloud:
|
||||
image: nextcloud:${NEXTCLOUD_V}
|
||||
stdin_open: true
|
||||
tty: true
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
restart: always
|
||||
depends_on:
|
||||
- ${PREFIX}_mariadb_1
|
||||
links:
|
||||
- ${PREFIX}_mariadb_1
|
||||
- nextcloud-db
|
||||
volumes:
|
||||
- nextcloud:/var/www/html
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_nextcloud.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_nextcloud.rule=Host(`${NEXTCLOUD_DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_nextcloud.entrypoints=websecure"
|
||||
- "traefik.http.routers.${PREFIX}_nextcloud.tls=true"
|
||||
- "traefik.http.services.${PREFIX}_nextcloud.loadbalancer.server.port=80"
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=nextcloud.nickyeoman.com
|
||||
PHPDB_DOMAIN_NAME=bookstack-db.nickyeoman.com
|
||||
NEXTCLOUD_DOMAIN_NAME=nextcloud.nickyeoman.com
|
||||
|
||||
# Passwords
|
||||
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
MYSQL_PASSWORD=Again2ASecurepass!
|
||||
NEXTCLOUD_MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
NEXTCLOUD_MYSQL_PASSWORD=Again2ASecurepass!
|
||||
|
||||
# Software versions
|
||||
DB_V=10.4.11
|
||||
NEXTCLOUD_V=18.0.3-apache
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#https://hub.docker.com/_/odoo
|
||||
version: '2'
|
||||
services:
|
||||
web:
|
||||
image: odoo:12.0
|
||||
depends_on:
|
||||
- mydb
|
||||
ports:
|
||||
- "8069:8069"
|
||||
environment:
|
||||
- HOST=mydb
|
||||
- USER=odoo
|
||||
- PASSWORD=myodoo
|
||||
mydb:
|
||||
image: postgres:10
|
||||
environment:
|
||||
- POSTGRES_DB=postgres
|
||||
- POSTGRES_PASSWORD=myodoo
|
||||
- POSTGRES_USER=odoo
|
||||
@@ -8,9 +8,9 @@
|
||||
version: '2'
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
@@ -20,12 +20,13 @@ services:
|
||||
image: phpmyadmin/phpmyadmin:${PHPMYADMIN_V}
|
||||
environment:
|
||||
- PMA_ARBITRARY=1
|
||||
- UPLOAD_LIMIT=200M
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${PREFIX}_phpmyadmin.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.${PREFIX}_phpmyadmin.rule=Host(`${PHPMYADMIN_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"
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=phpmyadmin.nickyeoman.com
|
||||
PHPMYADMIN_DOMAIN_NAME=phpmyadmin.nickyeoman.com
|
||||
|
||||
# Software versions
|
||||
PHPMYADMIN_V=5.0
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
|
||||
@@ -13,28 +13,25 @@ volumes:
|
||||
portainer:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
portainer:
|
||||
# https://hub.docker.com/r/portainer/portainer
|
||||
image: portainer/portainer:${PORTAINER_V}
|
||||
container_name: portainer
|
||||
hostname: portainer
|
||||
command: -H unix:///var/run/docker.sock
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer:/data
|
||||
command: -H unix:///var/run/docker.sock
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.portainer.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.portainer.rule=Host(`${PORTAINER_DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer.tls=true"
|
||||
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Domains & Project
|
||||
DOMAIN_NAME=passbolt.nickyeoman.com
|
||||
PORTAINER_DOMAIN_NAME=portainer.nickyeoman.com
|
||||
|
||||
# Software versions
|
||||
PORTAINER_V=1.23.2
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
# https://hub.docker.com/r/portainer/portainer
|
||||
PORTAINER_V=1.23.2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# https://hub.docker.com/r/opensuse/portus/
|
||||
@@ -0,0 +1 @@
|
||||
# https://hub.docker.com/_/silverpeas
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/bin/#!/usr/bin/env bash
|
||||
|
||||
#Variables
|
||||
path="${PWD}/static/videos"
|
||||
path_content="${PWD}/content/blog"
|
||||
dt=`date +'%Y-%m-%d'`
|
||||
|
||||
#setup
|
||||
mkdir ${path}/meta
|
||||
|
||||
#get filename var
|
||||
for i in $(ls $path/*mp4);
|
||||
do
|
||||
# filename with no ext
|
||||
filename="${i##*/}"
|
||||
filename="${filename%.mp4}"
|
||||
|
||||
# Get the resolution
|
||||
res=`ffmpeg -i $i 2>&1 | grep Stream | grep -oP ', \K[0-9]+x[0-9]+'`;
|
||||
name=`echo $i | sed 's/\(.*\)\..*/\1/'`; #remove extension
|
||||
echo "res: $res"
|
||||
|
||||
#Get the number of frames
|
||||
#frames=`ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 $i`
|
||||
#half frames
|
||||
#z=$(($frames / 2))
|
||||
#Create thumb
|
||||
#ffmpeg -i $i -y -vf scale=300:-1,"select=gte(n\,${z})" -vframes 1 ${path}/thumbs/${filename}.png
|
||||
|
||||
#create a gif
|
||||
ffmpeg -i $i -y -r 15 -vf scale=300:-1 -ss 00:00:03 -to 00:00:06 ${path}/thumbs/${filename}.gif
|
||||
|
||||
# get metadata
|
||||
ffmpeg -i $i -y -f ffmetadata ${path}/meta/${filename}.txt
|
||||
|
||||
#title
|
||||
title=`grep title ${path}/meta/${filename}.txt`
|
||||
title=${title##*=}
|
||||
|
||||
#alias/slug
|
||||
alias=${title// /_}
|
||||
alias=${alias,,}
|
||||
|
||||
#artist
|
||||
artist=`grep title ${path}/meta/${filename}.txt`
|
||||
|
||||
#tags
|
||||
echo "tags:" > ${path}/meta/${filename}-tags.txt
|
||||
tags=`grep genre ${path}/meta/${filename}.txt`
|
||||
tags=${tags##*=}
|
||||
for value in $tags
|
||||
do
|
||||
#Work here
|
||||
echo " - $value" >> ${path}/meta/${filename}-tags.txt
|
||||
done
|
||||
tags=`cat ${path}/meta/${filename}-tags.txt`
|
||||
|
||||
# create or replace file
|
||||
cat << EOF > ${path_content}/${filename}-${alias}.md
|
||||
---
|
||||
title: "${filename} - ${title}"
|
||||
cover: "${filename}"
|
||||
date: "${dt}"
|
||||
description: "Here is video${filename} which is ${res} and starting ${artist}"
|
||||
${tags}
|
||||
---
|
||||
|
||||
Here is video${filename} which is ${res} and starting ${artist}.
|
||||
|
||||
{{< vids "${filename}" >}}
|
||||
|
||||
EOF
|
||||
|
||||
done;
|
||||
|
||||
rm -rf ${path}/meta
|
||||
@@ -0,0 +1,15 @@
|
||||
FROM openjdk:8-jre-slim
|
||||
|
||||
WORKDIR /app/streama
|
||||
|
||||
RUN apt-get -y update && \
|
||||
apt-get -y install curl && \
|
||||
apt-get -y clean && \
|
||||
apt-get -y autoremove && \
|
||||
URL_DOWNLOAD_LATEST_RELEASE=$(curl -L https://api.github.com/repos/streamaserver/streama/releases | grep -i browser_download_url | head -n 1 | cut -d '"' -f 4) && \
|
||||
curl -o streama.jar -L $URL_DOWNLOAD_LATEST_RELEASE && \
|
||||
chmod u+x streama.jar
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT [ "java", "-jar", "streama.jar" ]
|
||||
@@ -0,0 +1,60 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
restart: always
|
||||
container_name: mysql
|
||||
hostname: mysql
|
||||
networks:
|
||||
- traefik_web
|
||||
expose:
|
||||
- 3306
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: streama_root_password
|
||||
MYSQL_USER: streama
|
||||
MYSQL_DATABASE: streama
|
||||
MYSQL_PASSWORD: streama_password
|
||||
|
||||
streama:
|
||||
image: streama
|
||||
build: .
|
||||
restart: always
|
||||
container_name: streama
|
||||
hostname: streama
|
||||
depends_on:
|
||||
- mysql
|
||||
networks:
|
||||
- traefik_web
|
||||
expose:
|
||||
- 8080
|
||||
volumes:
|
||||
- movies:/data/streama # Change to your video folder
|
||||
- app_data:/app/streama
|
||||
environment:
|
||||
ACTIVE_PROFILE: mysql
|
||||
MYSQL_HOST: mysql
|
||||
MYSQL_PORT: 3306
|
||||
MYSQL_DB: streama
|
||||
MYSQL_USER: streama
|
||||
MYSQL_PASSWORD: streama_password
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.nixflix.rule=Host(`nixflix.com`)"
|
||||
- "traefik.http.routers.nixflix.entrypoints=websecure"
|
||||
- "traefik.http.routers.nixflix.tls=true"
|
||||
- "traefik.http.services.nixflix.loadbalancer.server.port=8080"
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
external:
|
||||
name: traefik_web
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
app_data:
|
||||
proxy_reverse_data:
|
||||
proxy_reverse_data_log:
|
||||
movies:
|
||||
@@ -0,0 +1,3 @@
|
||||
FROM nginx:alpine
|
||||
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
@@ -0,0 +1,35 @@
|
||||
user nginx;
|
||||
worker_processes auto;
|
||||
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events { worker_connections 512; }
|
||||
|
||||
http {
|
||||
|
||||
sendfile on;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
client_max_body_size 128g; # allows larger files (like videos) to be uploaded.
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Port $server_port;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
||||
#WebSocket Support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://streama:8080;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
version: '3.3'
|
||||
|
||||
networks:
|
||||
${NETWORK_NAME}:
|
||||
web:
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
@@ -16,7 +16,6 @@ services:
|
||||
traefik:
|
||||
# https://hub.docker.com/_/traefik
|
||||
image: "traefik:${TRAEFIK_V}"
|
||||
container_name: "traefik"
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- --entrypoints.web.address=:80
|
||||
@@ -29,15 +28,15 @@ services:
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- web
|
||||
labels:
|
||||
# Dashboard
|
||||
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN_NAME}`)"
|
||||
- "traefik.http.routers.traefik.service=api@internal"
|
||||
- "traefik.http.routers.traefik.tls.certresolver=leresolver"
|
||||
- "traefik.http.routers.traefik.entrypoints=websecure"
|
||||
- "traefik.http.routers.traefik.middlewares=authtraefik"
|
||||
- "traefik.http.middlewares.authtraefik.basicauth.users=${TRAEFIK_USER}:${TRAEFIK_PASS}"
|
||||
- "traefik.http.middlewares.authtraefik.basicauth.users=<USER>:<PASSWORD>"
|
||||
# global redirect to https
|
||||
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
|
||||
- "traefik.http.routers.http-catchall.entrypoints=web"
|
||||
|
||||
+1
-4
@@ -1,6 +1,6 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=traefik.nickyeoman.com
|
||||
TRAEFIK_DOMAIN_NAME=traefik.nickyeoman.com
|
||||
|
||||
# Passwords
|
||||
# https://medium.com/@techupbusiness/add-basic-authentication-in-docker-compose-files-with-traefik-34c781234970
|
||||
@@ -11,6 +11,3 @@ TRAEFIK_PASS=M@keASecureOne
|
||||
# Software versions
|
||||
# https://hub.docker.com/_/traefik
|
||||
TRAEFIK_V=2.2.0
|
||||
|
||||
# Network
|
||||
NETWORK_NAME=traefik_web
|
||||
|
||||
+12
-12
@@ -13,9 +13,9 @@ volumes:
|
||||
yourls-db:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
admin_web:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
name: admin_web
|
||||
|
||||
services:
|
||||
|
||||
@@ -24,13 +24,13 @@ services:
|
||||
image: mariadb:${DB_V}
|
||||
restart: always
|
||||
volumes:
|
||||
- yourls-mariadb:/var/lib/mysql
|
||||
- yourls-db:/var/lib/mysql
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: yourls
|
||||
MYSQL_ROOT_PASSWORD: ${YOURLS_MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_PASSWORD: ${YOURLS_MYSQL_PASSWORD}
|
||||
MYSQL_DATABASE: db_yourls
|
||||
MYSQL_USER: yourls
|
||||
|
||||
yourls:
|
||||
@@ -40,18 +40,18 @@ services:
|
||||
volumes:
|
||||
- yourls:/var/www/html
|
||||
networks:
|
||||
- ${NETWORK_NAME}
|
||||
- admin_web
|
||||
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_DB_PASS: ${YOURLS_MYSQL_PASSWORD}
|
||||
YOURLS_DB_NAME: db_yourls
|
||||
YOURLS_SITE: https://${YOURLS_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.rule=Host(`${YOURLS_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"
|
||||
|
||||
+3
-6
@@ -1,15 +1,12 @@
|
||||
# Domains & Project
|
||||
PREFIX=p1
|
||||
DOMAIN_NAME=yourls.nickyeoman.com
|
||||
YOURLS_DOMAIN_NAME=yourls.nickyeoman.com
|
||||
|
||||
# Passwords
|
||||
MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
MYSQL_PASSWORD=Again2ASecurepass!
|
||||
YOURLS_MYSQL_ROOT_PASSWORD=ChangeMe2ASecurepass!
|
||||
YOURLS_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