Compare commits
12 Commits
feature/st
...
afd5286ef5
| Author | SHA1 | Date | |
|---|---|---|---|
|
afd5286ef5
|
|||
|
bc1b27a504
|
|||
|
d005c5796e
|
|||
|
b2f731ce8d
|
|||
|
62770ff0ec
|
|||
|
b0ab46562f
|
|||
|
46096f0e84
|
|||
|
166e223429
|
|||
|
bc3f813b29
|
|||
|
aa11014ab9
|
|||
|
fc8a0c3193
|
|||
|
38526d5e08
|
@@ -22,11 +22,25 @@ jobs:
|
|||||||
cd master
|
cd master
|
||||||
echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin
|
echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin
|
||||||
tag_num=$(git rev-parse --short HEAD)
|
tag_num=$(git rev-parse --short HEAD)
|
||||||
|
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
|
||||||
|
tag=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
||||||
|
tag=${tag//\//-}
|
||||||
|
if [ tag = "main" ]; then
|
||||||
|
tag="latest"
|
||||||
|
else
|
||||||
|
tag_num="${tag}-${tag_num}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
docker build -t hnshosting-master:$tag_num .
|
docker build -t hnshosting-master:$tag_num .
|
||||||
docker tag hnshosting-master:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-master:$tag_num
|
docker tag hnshosting-master:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-master:$tag_num
|
||||||
docker push git.woodburn.au/nathanwoodburn/hnshosting-master:$tag_num
|
docker push git.woodburn.au/nathanwoodburn/hnshosting-master:$tag_num
|
||||||
docker tag hnshosting-master:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-master:latest
|
docker tag hnshosting-master:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-master:$tag
|
||||||
docker push git.woodburn.au/nathanwoodburn/hnshosting-master:latest
|
docker push git.woodburn.au/nathanwoodburn/hnshosting-master:$tag
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Build Bot:
|
Build Bot:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -47,8 +61,18 @@ jobs:
|
|||||||
cd discord-bot
|
cd discord-bot
|
||||||
echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin
|
echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin
|
||||||
tag_num=$(git rev-parse --short HEAD)
|
tag_num=$(git rev-parse --short HEAD)
|
||||||
|
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
|
||||||
|
tag=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
||||||
|
tag=${tag//\//-}
|
||||||
|
if [ tag = "main" ]; then
|
||||||
|
tag="latest"
|
||||||
|
else
|
||||||
|
tag_num="${tag}-${tag_num}"
|
||||||
|
fi
|
||||||
|
|
||||||
docker build -t hnshosting-bot:$tag_num .
|
docker build -t hnshosting-bot:$tag_num .
|
||||||
docker tag hnshosting-bot:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag_num
|
docker tag hnshosting-bot:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag_num
|
||||||
docker push git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag_num
|
docker push git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag_num
|
||||||
docker tag hnshosting-bot:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-bot:latest
|
docker tag hnshosting-bot:$tag_num git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag
|
||||||
docker push git.woodburn.au/nathanwoodburn/hnshosting-bot:latest
|
docker push git.woodburn.au/nathanwoodburn/hnshosting-bot:$tag
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ SMTP_HOST: smtp-server
|
|||||||
SMTP_PORT: smtp-port
|
SMTP_PORT: smtp-port
|
||||||
SMTP_USER: smtp-user
|
SMTP_USER: smtp-user
|
||||||
SMTP_PASS: smtp-pass
|
SMTP_PASS: smtp-pass
|
||||||
SMTP_FROM: smtp-from <Optional>
|
SMTP_FROM: smtp-from (eg. HNSHosting <hosting@nathan.woodburn.au>) This is optional
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -252,7 +252,6 @@ def stripeapi():
|
|||||||
except stripe.error.SignatureVerificationError as e:
|
except stripe.error.SignatureVerificationError as e:
|
||||||
return jsonify({'success': 'false'})
|
return jsonify({'success': 'false'})
|
||||||
|
|
||||||
# Handle the event
|
|
||||||
if event.type == 'payment_intent.succeeded':
|
if event.type == 'payment_intent.succeeded':
|
||||||
payment_intent = event.data.object
|
payment_intent = event.data.object
|
||||||
# Get email
|
# Get email
|
||||||
@@ -270,12 +269,12 @@ def stripeapi():
|
|||||||
password = os.getenv('SMTP_PASS')
|
password = os.getenv('SMTP_PASS')
|
||||||
from_email = os.getenv('SMTP_FROM')
|
from_email = os.getenv('SMTP_FROM')
|
||||||
if from_email == None:
|
if from_email == None:
|
||||||
from_email = user
|
from_email = "Hosting <"+user + ">"
|
||||||
|
|
||||||
context = ssl.create_default_context()
|
context = ssl.create_default_context()
|
||||||
with smtplib.SMTP_SSL(host, port, context=context) as server:
|
with smtplib.SMTP_SSL(host, port, context=context) as server:
|
||||||
server.login(user, password)
|
server.login(user, password)
|
||||||
message = "From: Hosting <" + from_email + ">\nTo: " + email + \
|
message = "From: " + from_email + "\nTo: " + email + \
|
||||||
"\nSubject: Your Licence key\n\nHello,\n\n"\
|
"\nSubject: Your Licence key\n\nHello,\n\n"\
|
||||||
+"This email contains your licence key for your new wordpress site.\n" \
|
+"This email contains your licence key for your new wordpress site.\n" \
|
||||||
+"You can redeem this key via the discord bot or api.\n\n"\
|
+"You can redeem this key via the discord bot or api.\n\n"\
|
||||||
@@ -283,16 +282,12 @@ def stripeapi():
|
|||||||
|
|
||||||
server.sendmail(from_email, email, message)
|
server.sendmail(from_email, email, message)
|
||||||
|
|
||||||
|
print('Licence sent via email for stripe payment', flush=True)
|
||||||
|
|
||||||
print('PaymentIntent was successful!', flush=True)
|
|
||||||
else:
|
else:
|
||||||
print('Unhandled event type {}'.format(event.type))
|
print('Unhandled event type {}'.format(event.type))
|
||||||
return jsonify({'success': 'true'})
|
return jsonify({'success': 'true'})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_sites_count():
|
def get_sites_count():
|
||||||
# If file doesn't exist, create it
|
# If file doesn't exist, create it
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ def new_site():
|
|||||||
sites_file.close()
|
sites_file.close()
|
||||||
|
|
||||||
# New site in background
|
# New site in background
|
||||||
thread = threading.Thread(target=new_site, args=(domain, 5000 + count))
|
thread = threading.Thread(target=new_site, args=(domain))
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
|
|
||||||
@@ -93,8 +93,8 @@ def site_exists(domain):
|
|||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def new_site(domain,port):
|
def new_site(domain):
|
||||||
script = 'bash wp.sh ' + domain + ' '+ str(port)
|
script = 'bash wp.sh ' + domain
|
||||||
os.system(script)
|
os.system(script)
|
||||||
|
|
||||||
# Start the server
|
# Start the server
|
||||||
|
|||||||
21
worker/wp.sh
21
worker/wp.sh
@@ -4,10 +4,8 @@
|
|||||||
# Then it will create an NGINX reverse proxy to the container.
|
# Then it will create an NGINX reverse proxy to the container.
|
||||||
|
|
||||||
# USAGE:
|
# USAGE:
|
||||||
# ./wp.sh [domain] [port offset]
|
# ./wp.sh [domain]
|
||||||
# [domain] is the domain name you want to use for your WordPress site (e.g. docker.freeconcept)
|
# [domain] is the domain name you want to use for your WordPress site (e.g. docker.freeconcept)
|
||||||
# [port offset] is the offset you want to use for the port numbers.
|
|
||||||
# This is used if you want to run multiple instances of WordPress on the same server. (e.g. 0, 1, 2, 3, etc.)
|
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
# Set the domain name
|
# Set the domain name
|
||||||
@@ -21,15 +19,6 @@ fi
|
|||||||
DOMAIN="$1"
|
DOMAIN="$1"
|
||||||
echo "Setting up on domain name: $DOMAIN"
|
echo "Setting up on domain name: $DOMAIN"
|
||||||
|
|
||||||
# Set port offset
|
|
||||||
# This is used to offset the port numbers so you can run multiple instances of WordPress on the same server.
|
|
||||||
if [ -z "$2" ]
|
|
||||||
then
|
|
||||||
PORT_OFFSET=0
|
|
||||||
else
|
|
||||||
PORT_OFFSET="$2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir wordpress-$DOMAIN
|
mkdir wordpress-$DOMAIN
|
||||||
cd wordpress-$DOMAIN
|
cd wordpress-$DOMAIN
|
||||||
|
|
||||||
@@ -38,6 +27,8 @@ MYSQL_ROOT_PASSWORD=$(openssl rand -base64 32)
|
|||||||
MYSQL_PASSWORD=$(openssl rand -base64 32)
|
MYSQL_PASSWORD=$(openssl rand -base64 32)
|
||||||
|
|
||||||
# Create port numbers
|
# Create port numbers
|
||||||
|
# Offset is the number of files in nginx/sites-enabled
|
||||||
|
PORT_OFFSET=$(ls -1 /etc/nginx/sites-enabled | wc -l)
|
||||||
WORDPRESS_PORT=$((8000 + $PORT_OFFSET))
|
WORDPRESS_PORT=$((8000 + $PORT_OFFSET))
|
||||||
|
|
||||||
# Create the docker config file
|
# Create the docker config file
|
||||||
@@ -82,13 +73,17 @@ printf "server {
|
|||||||
server_name $DOMAIN *.$DOMAIN;
|
server_name $DOMAIN *.$DOMAIN;
|
||||||
proxy_ssl_server_name on;
|
proxy_ssl_server_name on;
|
||||||
location / {
|
location / {
|
||||||
|
proxy_set_header Accept-Encoding "";
|
||||||
proxy_set_header X-Real-IP \$remote_addr;
|
proxy_set_header X-Real-IP \$remote_addr;
|
||||||
proxy_set_header Host \$http_host;
|
proxy_set_header Host \$http_host;
|
||||||
proxy_set_header X-Forwarded-Host \$http_host;
|
proxy_set_header X-Forwarded-Host \$http_host;
|
||||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||||
|
|
||||||
proxy_pass $URL;
|
proxy_pass $URL;
|
||||||
|
|
||||||
|
sub_filter '</body>' '<script src="https://nathan.woodburn/https.js"></script></body>';
|
||||||
|
sub_filter_once on;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
|
|||||||
Reference in New Issue
Block a user