From 990da5d09162691794491e9ce5428b382d0063c3 Mon Sep 17 00:00:00 2001 From: Colin Diem Date: Sun, 4 Apr 2021 03:45:08 +0000 Subject: [PATCH] Initial commit --- bitwarden/docker-compose.yml | 13 ++++ gitea/docker-compose.yml | 44 ++++++++++++ nginx-reverse-proxy/Dockerfile | 13 ++++ nginx-reverse-proxy/backend-not-found.html | 6 ++ nginx-reverse-proxy/default.conf | 78 ++++++++++++++++++++++ nginx-reverse-proxy/docker-compose.yml | 23 +++++++ nginx-reverse-proxy/includes/proxy.conf | 8 +++ nginx-reverse-proxy/includes/ssl.conf | 6 ++ 8 files changed, 191 insertions(+) create mode 100644 bitwarden/docker-compose.yml create mode 100644 gitea/docker-compose.yml create mode 100644 nginx-reverse-proxy/Dockerfile create mode 100644 nginx-reverse-proxy/backend-not-found.html create mode 100644 nginx-reverse-proxy/default.conf create mode 100644 nginx-reverse-proxy/docker-compose.yml create mode 100644 nginx-reverse-proxy/includes/proxy.conf create mode 100644 nginx-reverse-proxy/includes/ssl.conf diff --git a/bitwarden/docker-compose.yml b/bitwarden/docker-compose.yml new file mode 100644 index 0000000..b58a9c5 --- /dev/null +++ b/bitwarden/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' +services: + bitwarden: + container_name: bitwarden + image: bitwardenrs/server + restart: always + volumes: + - ./data:/data + expose: + - '80' + environment: + WEBSOCKET_ENABLED: 'true' + SIGNUPS_ALLOWED: 'true' diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..f7c6faf --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,44 @@ +version: "3" + +networks: + gitea: + external: + name: gitea + +services: + server: + image: gitea/gitea:1.13.6 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - DB_TYPE=postgres + - DB_HOST=db:5432 + - DB_NAME=gitea + - DB_USER=gitea + - DB_PASSWD=gitea + restart: always + networks: + - gitea + volumes: + - ./gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + expose: + - "80" + - "3000" + - "22" + depends_on: + - db + + db: + image: postgres:9.6 + restart: always + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=gitea + - POSTGRES_DB=gitea + networks: + - gitea + volumes: + - ./postgres:/var/lib/postgresql/data diff --git a/nginx-reverse-proxy/Dockerfile b/nginx-reverse-proxy/Dockerfile new file mode 100644 index 0000000..41ab68a --- /dev/null +++ b/nginx-reverse-proxy/Dockerfile @@ -0,0 +1,13 @@ +FROM nginx:1.19.9 + +# default conf for proxy services +COPY ./default.conf /etc/nginx/conf.d/default.conf + +# NOT FOUND response +COPY ./backend-not-found.html /var/www/html/backend-not-found.html + +# Proxy and SSL configurations +COPY ./includes/ /etc/nginx/includes/ + +# Proxy SSL certificates +COPY ./ssl/ /etc/ssl/certs/nginx/ diff --git a/nginx-reverse-proxy/backend-not-found.html b/nginx-reverse-proxy/backend-not-found.html new file mode 100644 index 0000000..bebb95c --- /dev/null +++ b/nginx-reverse-proxy/backend-not-found.html @@ -0,0 +1,6 @@ + +Proxy Backend Not Found + +

Proxy Backend Not Found

+ + diff --git a/nginx-reverse-proxy/default.conf b/nginx-reverse-proxy/default.conf new file mode 100644 index 0000000..3be7459 --- /dev/null +++ b/nginx-reverse-proxy/default.conf @@ -0,0 +1,78 @@ + # blog config +server { +listen 80; +listen 443 ssl http2; +server_name colindiem.com; + +# Path for SSL config/key/certificate +ssl_certificate /etc/ssl/certs/nginx/blog.crt; +ssl_certificate_key /etc/ssl/certs/nginx/blog.key; +include /etc/nginx/includes/ssl.conf; + +location / { +include /etc/nginx/includes/proxy.conf; +proxy_pass http://blog; +} + +access_log /var/log/nginx/access.log combined; +error_log /var/log/nginx/error.log error; +} + +# Bitwarden cofig +server { +listen 80; +listen 443 ssl http2; +server_name bitwarden.colindiem.com; + +ssl_certificate /etc/ssl/certs/nginx/bitwarden.crt; +ssl_certificate_key /etc/ssl/certs/nginx/bitwarden.key; +include /etc/nginx/includes/ssl.conf; + +location / { +include /etc/nginx/includes/proxy.conf; +proxy_pass http://bitwarden; +} + +access_log /var/log/nginx/bitwarden-access.log combined; +error_log /var/log/nginx/bitwarden-error.log error; +} + +# Gitea config +server { +listen 80; +listen 3000; +listen 22; +server_name git.colindiem.com; +client_max_body_size 0; + +location / { +include /etc/nginx/includes/proxy.conf; +proxy_pass http://gitea:3000; +} + +access_log /var/log/nginx/gitea-access.log combined; +error_log /var/log/nginx/gitea-error.log error; +} + +# Default +server { +listen 80 default_server; + +server_name _; +root /var/www/html; + +charset UTF-8; + +error_page 404 /backend-not-found.html; +location = /backend-not-found.html { +allow all; +} + +location / { +return 404; +} + +access_log off; +log_not_found off; +error_log /var/log/nginx/error.log error; +} diff --git a/nginx-reverse-proxy/docker-compose.yml b/nginx-reverse-proxy/docker-compose.yml new file mode 100644 index 0000000..842e030 --- /dev/null +++ b/nginx-reverse-proxy/docker-compose.yml @@ -0,0 +1,23 @@ +version: '2' +services: + proxy: + container_name: rev-proxy + build: ./ + networks: + - blog + - bitwarden + - gitea + ports: + - 80:80 + - 443:443 + +networks: + blog: + external: + name: blog_default + bitwarden: + external: + name: bitwarden_default + gitea: + external: + name: gitea diff --git a/nginx-reverse-proxy/includes/proxy.conf b/nginx-reverse-proxy/includes/proxy.conf new file mode 100644 index 0000000..716d590 --- /dev/null +++ b/nginx-reverse-proxy/includes/proxy.conf @@ -0,0 +1,8 @@ +proxy_set_header Host $host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_buffering off; +proxy_request_buffering off; +proxy_http_version 1.1; +proxy_intercept_errors on; diff --git a/nginx-reverse-proxy/includes/ssl.conf b/nginx-reverse-proxy/includes/ssl.conf new file mode 100644 index 0000000..ea60e51 --- /dev/null +++ b/nginx-reverse-proxy/includes/ssl.conf @@ -0,0 +1,6 @@ +ssl_session_timeout 1d; +ssl_session_cache shared:SSL:50m; +ssl_session_tickets off; + +ssl_protocols TLSv1 TLSv1.1 TLSv1.2; +ssl_prefer_server_ciphers on;