8 Commits

Author SHA1 Message Date
494a7e28a6 main: Test using templates
All checks were successful
Build Docker / Build Bot (push) Successful in 23s
Build Docker / Build Master (push) Successful in 28s
2023-08-25 23:26:44 +10:00
076303d475 worker: Revert using tmfs 2023-08-25 23:22:42 +10:00
ac054156ef main: Cleaned up public page
All checks were successful
Build Docker / Build Bot (push) Successful in 25s
Build Docker / Build Master (push) Successful in 28s
2023-08-25 22:57:11 +10:00
2bc34c1aca main: Fixed html a tag
All checks were successful
Build Docker / Build Bot (push) Successful in 25s
Build Docker / Build Master (push) Successful in 26s
2023-08-25 22:53:35 +10:00
490176ab04 main: Fixed quote escaping
All checks were successful
Build Docker / Build Bot (push) Successful in 20s
Build Docker / Build Master (push) Successful in 26s
2023-08-25 22:50:51 +10:00
01b4ee9fd5 main: Updated home page to have site links
All checks were successful
Build Docker / Build Bot (push) Successful in 25s
Build Docker / Build Master (push) Successful in 28s
2023-08-25 22:47:19 +10:00
1bafb844f2 worker: Set the default storage size to 5gb
All checks were successful
Build Docker / Build Bot (push) Successful in 25s
Build Docker / Build Master (push) Successful in 27s
2023-08-25 22:35:18 +10:00
f23f361ceb worker: Set docker to use HNSProxy to allow for HNS resolution 2023-08-25 22:34:50 +10:00
5 changed files with 71 additions and 29 deletions

View File

@@ -0,0 +1,7 @@
html {
background-color: black;
color: white;
font-family: 'Roboto', sans-serif;
font-size: 16px;
text-align: center;
}

View File

@@ -1,4 +1,4 @@
from flask import Flask, make_response, redirect, request, jsonify from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory
import dotenv import dotenv
import os import os
import requests import requests
@@ -459,34 +459,15 @@ def home():
pass pass
# Create html page # Create html page
html = "<h1>Welcome</h1><br>" workerhtml = ""
html += "<h2>Create a site</h2>"
html += "<form action='/add-site' method='POST'>"
html += "<p>Domain: <input type='text' name='domain'></p>"
html += "<p>Licence key: <input type='text' name='licence'></p>"
html += "<input type='submit' value='Create site'>"
html += "</form>"
html += "<br><h2>Stats</h2><br>"
html += "<h2>Workers</h2>"
html += "<p>Number of workers: " + str(len(workers)) + "</p>"
html += "<p>Workers:</p>"
html += "<ul>"
for worker in workers: for worker in workers:
html += "<li>Name: " + worker.split(':')[0] + " | IP " + worker.split(':')[2].strip('\n') + "</li>" workerhtml += "<li>Name: " + worker.split(':')[0] + " | IP: " + worker.split(':')[2].strip('\n') + "</li>"
html += "</ul>" sitehtml = ""
html += "<h2>Sites</h2>"
html += "<p>Number of sites: " + str(len(sites)) + "</p>"
html += "<p>Sites:</p>"
html += "<ul>"
for site in sites: for site in sites:
html += "<li>Domain: " + site.split(':')[0] + " | Worker: " + site.split(':')[1].strip('\n') + "</li>" sitehtml += "<li>Domain: <a href=\"https://" + site.split(':')[0] + "\" target=\"_blank\">"+site.split(':')[0]+"</a> | Worker: " + site.split(':')[1].strip('\n') + "</li>"
html += "</ul>"
html += "<h2>Licences</h2>"
html += "<p>Number of licences: " + str(len(licences)) + "</p>"
html += "<h2><a href='/admin'>Admin</a></h2>"
return html return render_template('index.html', workers=workerhtml, site_count = str(len(sites)), sites = sitehtml, licences = str(len(licences)))
# Admin page # Admin page
@app.route('/admin') @app.route('/admin')
@@ -780,7 +761,10 @@ def login():
def failed_login(): def failed_login():
return "<h1>Failed login</h1><br><form action='/login' method='POST'><input type='password' name='password'><input type='submit' value='Login'></form>" return "<h1>Failed login</h1><br><form action='/login' method='POST'><input type='password' name='password'><input type='submit' value='Login'></form>"
# Assets
@app.route('/assets/<path:path>')
def send_report(path):
return send_from_directory('assets', path)

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en-au">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HNS Hosting Wordpress</title>
<link rel="stylesheet" href="/assets/css/index.css">
</head>
<body>
<h1>HNS Hosting Wordpress</h1>
<p>Intro blurb</p>
<br>
<div id="new">
<h2>Create a new site</h2>
<form action='/add-site' method='POST'>
<p>Domain: <input type='text' name='domain'></p>
<p>Licence key: <input type='text' name='licence'></p>
</form>
</div>
<br>
<div id="stats">
<h2>Stats</h2>
<h3>Workers</h3>
<ul>{{workers}}</ul>
<h3>Sites</h3>
<p>Total sites: {{site_count}}</p>
<ul>{{sites}}</ul>
<br>
<h3>Unclaimed licences: {{licences}}</h3>
</div>
<br>
<h2><a href="/admin">Admin</a></h2>
</body>
</html>

View File

@@ -24,6 +24,21 @@ python3 -m pip install -r requirements.txt
cp .env.example .env cp .env.example .env
chmod +x wp.sh tlsa.sh chmod +x wp.sh tlsa.sh
# Add proxy to docker
mkdir ~/.docker
echo """{
\"proxies\": {
\"default\": {
\"httpProxy\": \"http://proxy.hnsproxy.au:80\",
\"httpsProxy\": \"https://proxy.hnsproxy.au:443\",
\"noProxy\": \"localhost\"
}
}
}""" > ~/.docker/config.json
# Restart docker
sudo systemctl restart docker
# Pull docker images to save time later # Pull docker images to save time later
docker pull mysql:5.7 & docker pull mysql:5.7 &
docker pull wordpress:latest & docker pull wordpress:latest &

View File

@@ -56,9 +56,11 @@ services:
WORDPRESS_DB_PASSWORD: $MYSQL_PASSWORD WORDPRESS_DB_PASSWORD: $MYSQL_PASSWORD
WORDPRESS_DB_NAME: WordPressDatabase WORDPRESS_DB_NAME: WordPressDatabase
volumes: volumes:
[\"./:/var/www/html\"] - data:/var/www/html
volumes: volumes:
mysql: {} mysql:
data:
""" > docker-compose.yml """ > docker-compose.yml
# Start the containers # Start the containers