Add highscores server

This commit is contained in:
Michał Gdula 2023-05-03 23:03:23 +03:00
parent b6dc53dfaa
commit d7be76f435
9 changed files with 29 additions and 33 deletions

View file

@ -1,13 +1,3 @@
<!-- # Expo Website expo.leggy.dev
expo.example.com { reverse_proxy / highscores:5000
reverse_proxy 127.0.0.1:5000 #respond "Hello, World!"
}
# Highscore Server
highscore.example.com {
reverse_proxy 127.0.0.1:6000
} -->
# Highscore Server
expo.leggy.dev:443 {
reverse_proxy localhost:5000
file_server
}

View file

@ -1,8 +1,11 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM python:3.10 FROM python:3.10-alpine
WORKDIR /app RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt COPY requirements.txt /data/requirements.txt
WORKDIR /data
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
RUN mkdir /highscore
COPY /highscore /highscore
WORKDIR /highscore
EXPOSE 5000 EXPOSE 5000
COPY server server CMD ["gunicorn", "-b", "localhost:5000", "server:app"]
CMD ["flask", "run", "--port=5000", "--host=localhost"]

View file

@ -1,7 +1,7 @@
""" """
Database models for the server Database models for the server
""" """
from server.extensions import db from extensions import db
class Scores(db.Model): class Scores(db.Model):

View file

@ -1,6 +1,7 @@
from flask import Flask from flask import Flask
from server.extensions import db, migrate, cache from flask_migrate import init as migrate_init
from server.views import blueprint from extensions import db, migrate, cache
from views import blueprint
app = Flask(__name__) app = Flask(__name__)
app.config.from_pyfile('config.py') app.config.from_pyfile('config.py')
@ -9,6 +10,8 @@ db.init_app(app)
migrate.init_app(app, db) migrate.init_app(app, db)
cache.init_app(app) cache.init_app(app)
db.create_all(app=app) with app.app_context():
db.create_all()
migrate_init()
app.register_blueprint(blueprint) app.register_blueprint(blueprint)

View file

@ -3,8 +3,8 @@ from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField from wtforms import StringField, IntegerField
from wtforms.validators import DataRequired from wtforms.validators import DataRequired
from server.models import Scores, Users from models import Scores, Users
from server.extensions import db, cache from extensions import db, cache
blueprint = Blueprint('views', __name__) blueprint = Blueprint('views', __name__)

View file

@ -3,3 +3,4 @@ Flask-SQLAlchemy
Flask-Migrate Flask-Migrate
Flask-Caching Flask-Caching
Flask-wtf Flask-wtf
Gunicorn

View file

@ -1,14 +1,8 @@
version: "3.8" version: "3.9"
services: services:
highscores:
build: ./Highscore-Server/
# restart: unless-stopped
ports:
- "5000:5000"
caddy: caddy:
hostname: caddy
image: caddy:latest image: caddy:latest
# restart: unless-stopped
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"
@ -18,4 +12,9 @@ services:
- ./Caddy/config:/config - ./Caddy/config:/config
environment: environment:
- ACME_AGREE=true - ACME_AGREE=true
- TZ=Europe/London - TZ=Europe/London
highscores:
hostname: highscores
build: ./Highscore-Server/
ports:
- "5000:5000"