Skip to content

UNFINISHED - setup nginx from the configuration file #30

UNFINISHED - setup nginx from the configuration file

UNFINISHED - setup nginx from the configuration file #30

name: UNFINISHED - setup nginx from the configuration file
on:
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Dotenv Action
uses: falti/dotenv-action@v1.1.4
with:
export-variables: true
keys-case: bypass
- name: Check environment variables
run: env
# Doesn't work properly, envsubst replaces all instances of $variable and ${variable}, but we want to keep e.g., $host as nginx variables
# - name: Create temporary nginx config file
# run: envsubst < ./nginx_template.txt > temp_default.conf
# Maybe look at https://www.baeldung.com/linux/envsubst-command to get an idea
- name: Replace Nginx variables with placeholders
run: |
sed 's/\$http_host/__HTTP_HOST__/g' ./nginx_template.txt | \
sed 's/\$remote_addr/__REMOTE_ADDR__/g' | \
sed 's/\$proxy_add_x_forwarded_for/__PROXY_ADD_X_FORWARDED_FOR__/g' > ./nginx_template_placeholder.txt
- name: Substitute environment variables
run: |
envsubst < ./nginx_template_placeholder.txt > temp_default.conf
- name: Restore Nginx variables
run: |
sed -i 's/__HTTP_HOST__/$http_host/g' temp_default.conf
sed -i 's/__REMOTE_ADDR__/$remote_addr/g' temp_default.conf
sed -i 's/__PROXY_ADD_X_FORWARDED_FOR__/$proxy_add_x_forwarded_for/g' temp_default.conf
- name: Copy temporary file to correct place
run: cp -L temp_default.conf /etc/nginx/conf.d/default.conf
- name: Show nginx file
run: cat /etc/nginx/conf.d/default.conf