test/lib/nginx.sh

79 lines
1.9 KiB
Bash

#!/bin/bash
#
# Nginx Service
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
get_appvars
config_nginx() {
echo -ne "\n* Configuring /federated/apps/nginx container.."
if [ ! -d "/federated/apps/nginx" ]; then
mkdir -p /federated/apps/nginx/data/etc/nginx/conf.d
fi
cat > /federated/apps/nginx/docker-compose.yml <<EOF
services:
nginx:
image: nginx:latest
container_name: nginx
hostname: nginx.$DOMAIN
restart: always
networks:
core:
ipv4_address: 192.168.0.40
volumes:
- ./data/etc/nginx/conf.d/matrix.conf:/etc/nginx/conf.d/matrix.conf
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.rule=Host(\`matrix.$DOMAIN\`)"
- "traefik.http.routers.nginx.entrypoints=websecure"
- "traefik.http.routers.nginx.tls.certresolver=letsencrypt"
networks:
core:
external: true
EOF
cat > /federated/apps/nginx/data/etc/nginx/conf.d/matrix.conf <<EOF
server { listen 80 default_server;
server_name matrix.$DOMAIN;
location / {
proxy_pass http://192.168.0.19:8008;
proxy_set_header X-Forwarded-For \$remote_addr;
client_max_body_size 128m;
}
location /_matrix {
proxy_pass http://192.168.0.19:8008;
proxy_set_header X-Forwarded-For \$remote_addr;
client_max_body_size 128m;
}
location /.well-known/matrix/server {
access_log off;
add_header Access-Control-Allow-Origin *;
default_type application/json;
return 200 '{"m.server": "matrix.$DOMAIN:443"}';
}
location /.well-known/matrix/client {
access_log off;
add_header Access-Control-Allow-Origin *;
default_type application/json;
return 200 '{"m.homeserver": {"base_url": "https://matrix.$DOMAIN"}}';
}
}
EOF
echo -ne "done."
}
start_nginx() {
# Start service with command to make sure it's up before proceeding
start_service "nginx" "nc -z 192.168.0.40 80 &> /dev/null" "7"
echo -ne "done."
}